Forking what is left of ZeroNet and hopefully adding an AT Proto Frontend/Proxy
at main 23 lines 760 B view raw
1import logging 2 3class Spy: 4 def __init__(self, obj, func_name): 5 self.obj = obj 6 self.__name__ = func_name 7 self.func_original = getattr(self.obj, func_name) 8 self.calls = [] 9 10 def __enter__(self, *args, **kwargs): 11 logging.debug("Spy started") 12 def loggedFunc(cls, *args, **kwargs): 13 call = dict(enumerate(args, 1)) 14 call[0] = cls 15 call.update(kwargs) 16 logging.debug("Spy call: %s" % call) 17 self.calls.append(call) 18 return self.func_original(cls, *args, **kwargs) 19 setattr(self.obj, self.__name__, loggedFunc) 20 return self.calls 21 22 def __exit__(self, *args, **kwargs): 23 setattr(self.obj, self.__name__, self.func_original)