PlasmaCalcs.quantities.quantity_tools.DecoratingSetters

class PlasmaCalcs.quantities.quantity_tools.DecoratingSetters(known_setters=None)

Bases: object

Decorating 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_setter
def set_var1(…):
@known_setter(name=’coolvar’)
def set_var2(…):
@known_setter(aliases=[‘myalias’])
def set_var3(…):
# at this point, we have known_setter.known_setters ==
# {‘var1’: set_var1, ‘coolvar’: set_var2, ‘var3’: set_var3, ‘myalias’: set_var3}.
__init__(known_setters=None)

Methods

__init__([known_setters])

decorator([name, aliases])

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: list
if any aliases are provided, also add, for alias in aliases:
self.known_setters[alias] = self.known_setters[name]