[docs]def__call__(self,daemon:"Daemon")->None:# pragma: no cover""" Call the daemon callback. """...
[docs]@attr.s(kw_only=True,frozen=True)classCallback:""" Class which "stores" information of a callback. """func:Callable[...,Any]=attr.ib()args:Tuple[Any,...]=attr.ib(default=None)kwargs:Dict[str,Any]=attr.ib(default=None)
[docs]def__str__(self)->str:""" String representation of the class. """returnformat_callback_to_string(self.func,self.args,self.kwargs)
[docs]def__call__(self,*args:Any,**kwargs:Any)->Any:""" Call the callback. """_args=tuple(list(args)+list(self.argsor()))_kwargs=copy.deepcopy(self.kwargs)_kwargs.update(kwargs)log.debug("Running %s",format_callback_to_string(self.func,_args,_kwargs))returnself.func(*_args,**_kwargs)