topology.libraries.utils¶
Common utilities for communication libraries.
Functions¶
stateprovider(): Decorator to inject a library state into an enode.
-
topology.libraries.utils.stateprovider(stateclass, statename=None, initfunc=None)¶ Decorator to inject a library state into an enode.
Parameters: - stateclass (class) – Class that will hold all the state / attribute of the library functions.
- statename (str) – Attribute name to save the instance of the state
class in the engine node (enode). By default, the name of the state class
is used like
_lib_state_<stateclass>in lower case. - initfunc (function) – A function to create the instance the state
class. It receives as arguments the enode and the state class and MUST
return and instance of that class already initialized. If
None, the default, this decorator will create an instance of the state class without any arguments or keyword arguments.
Basic usage:
from topology.libraries.utils import stateprovider class MyState(object): def __init__(self): self.my_variable_one = 100 stateprovider(MyState) def my_library_function(enode, state, arg1, arg2, keyword_arg1=None): print(state.my_variable_one) state.my_variable_one += 100 __all__ = ['my_library_function']
In the above example the variable
my_variable_onewill be bound to theenodecalling the library functions, and each call of that library function will increase it’s value by 100.