MCPcopy Index your code
hub / github.com/bugy/script-server / Property

Class Property

src/react/properties.py:12–53  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

10
11
12class Property:
13 def __init__(self, value=None):
14 self._value = value
15 self._observers = []
16 self.bound = False
17
18 def subscribe(self, observer):
19 self._observers.append(observer)
20
21 def unsubscribe(self, observer):
22 self._observers.remove(observer)
23
24 def set(self, new_value):
25 if self.bound:
26 raise Exception('Failed to set value to bound property')
27 self._set_internal(new_value)
28
29 def _set_internal(self, new_value):
30 old_value = self._value
31
32 if old_value == new_value:
33 return
34
35 self._value = new_value
36
37 for observer in self._observers:
38 observer(old_value, new_value)
39
40 def get(self):
41 return self._value
42
43 def bind(self, another_property, map_function=None):
44 def binder(old_value, new_value):
45 if map_function:
46 value = map_function(new_value)
47 else:
48 value = new_value
49
50 self._set_internal(value)
51
52 another_property.subscribe(binder)
53 binder(None, another_property.get())
54
55
56class ObservableList(UserList):

Callers 3

__init__Method · 0.90
__get__Method · 0.85
mapped_propertyFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected