DecoratingSetters
- class PlasmaCalcs.quantities.quantity_tools.DecoratingSetters(known_setters=None)
Bases:
objectDecorating functions to put them into a dict (self.known_setters).
known_setters: None or dict
will store known settables; dict of {name: callable}Example: known_setter = DecoratingCalcs(storage_dict)@known_setterdef set_var1(…):…@known_setterdef set_var2(…):…@known_setter(aliases=[‘myalias’])def set_var3(…):…# at this point, we have known_setter.known_setters ==# {‘var1’: set_var1, ‘var2’: set_var2, ‘var3’: set_var3, ‘myalias’: set_var3}.Methods
__call__([f, name])if f is provided, return self.decorator(**kw)(f).
decorator([name, aliases])returns decorator for quant setter f(self, *args, **kw), which returns f unchanged...
- __call__(f=None, *, name=None, **kw_decorator)
if f is provided, return self.decorator(**kw)(f). Otherwise, return self.decorator(**kw).
This enables instances to be used as decorators directly, i.e. “@self”,or used as decorators after providing kwargs, e.g. “@self(aliases=[‘varalias’])”See help(type(self)) for examples.
- decorator(name=None, *, aliases=[])
returns decorator for quant setter f(self, *args, **kw), which returns f unchanged…
but also, tracks things appropriately:add name to self.known_setters,if name is not provided, use {name} from f.__name__ which looks like “set_{name}”.aliases: listif any aliases are provided, also add, for alias in aliases:self.known_setters[alias] = self.known_setters[name]