MCPcopy Create free account
hub / github.com/ActiveState/code / ObserverProxy

Function ObserverProxy

recipes/Python/413701_ObserverProxy/recipe-413701.py:1–19  ·  view source on GitHub ↗
(method_names)

Source from the content-addressed store, hash-verified

1def ObserverProxy(method_names):
2 class Proxy:
3 def __init__(self):
4 self._observers = []
5 def add_observer(self, observer):
6 self._observers.append(observer)
7 def remove_observer(self, observer):
8 self._observers.remove(observer)
9
10 def create_method_proxy(method_name):
11 def method_proxy(self, *args, **kwargs):
12 for observer in self._observers:
13 getattr(observer, method_name)(*args, **kwargs)
14 return method_proxy
15
16 for method_name in method_names:
17 setattr(Proxy, method_name, create_method_proxy(method_name))
18
19 return Proxy()
20
21if __name__ == "__main__":
22 # usage example

Callers 1

recipe-413701.pyFile · 0.85

Calls 2

create_method_proxyFunction · 0.85
ProxyClass · 0.70

Tested by

no test coverage detected