1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
20
22 self._observers = []
23 self._listeners = []
24
26 self._listeners.append((True, event, function))
27
29 self._listeners.append((False, None, function))
30
32 self._listeners = [x for x in self._listeners if x[2] != function]
33
35 self._observers.append(fn)
36
38 if fn in self._observers:
39 self._observers.remove(fn)
40
41 - def _notify(self, state_change=None):
42 for (listen_for_specific, event, function) in self._listeners:
43 if listen_for_specific:
44 if state_change == event:
45 function()
46 else:
47 function()
48 for fn in self._observers:
49 fn(state_change)
50
51
53
55 self._observable = None
56 self._callback = callback
57
59 self._unlisten()
60 self._observable = observable
61 self._listen()
62
64 if self._observable is not None:
65 self._observable.unlisten(self._listener)
66
68 if self._observable is not None:
69 self._observable.listen_for_any(self._listener)
70 self._listener()
71
73 self._callback(self._observable)
74