Source code for simframe.frame.updater

import inspect
from simframe.utils.color import colorize


[docs] class Updater(): """Class that manages how a ``Group`` or ``Field`` is updated.""" __name__ = "Updater" def __init__(self, func=None): """Contains update instructions. Parameter --------- func : callable, optional, default : None Function that is called when update function is called. None is a null operation.""" self._func = func
[docs] def update(self, owner, *args, **kwargs): """Function that is called when ``Group`` or ``Field`` to which ``Updater`` belongs is being updated. Parameters ---------- owner : Frame Parent ``Frame`` object args : additional positional arguments kwargs : additonal keyword arguments""" if self._func is not None: return self._func(owner, *args, **kwargs)
def __str__(self): s = "{}".format(str(self.__name__)) + "\n" s += (len(s)-1)*"-" + "\n" s += "\n" # Signature try: sig = "{}{}".format(self._func.__name__, inspect.signature(self._func)) s += "{} {}".format(colorize("Signature:", color="red"), str(sig)) + "\n" except: pass # Source/Docstring try: source = inspect.getsource(self._func) cat = colorize("Source:", color="red") except: source = self._func.__doc__ cat = colorize("Docstring:", color="red") if source is not None: s += cat + "\n" s += source + "\n" # File try: fn = inspect.getfile(self._func) s += "{} {}".format(colorize("File:", color="red"), fn) + "\n" except: pass # Type cls = self._func.__class__.__name__ s += "{} {}".format(colorize("Type:", color="red"), cls) return s def __repr__(self): return self.__str__()