Source code for leads.callback

from typing import Self as _Self

from leads.os import _currentframe


[docs] class CallbackChain(object): def __init__(self, chain: _Self | None = None) -> None: self._chain: CallbackChain | None = chain
[docs] def bind_chain(self, chain: _Self | None) -> None: self._chain = chain
[docs] def super(self, *args, **kwargs) -> None: """ Call the superior method if there is one. This must be called directly in the corresponding successor method. """ if not self._chain: return cf = _currentframe().f_back while (cn := cf.f_code.co_name) == "super": cf = cf.f_back getattr(self._chain, cn)(*args, **kwargs)