register_graph_node_type

register_graph_node_type#

class brainstate.graph.register_graph_node_type(type, flatten, set_key, pop_key, create_empty, clear)#

Register a custom mutable graph-node type with the graph engine.

Parameters:
Return type:

None

Examples

>>> import brainstate
>>> class MyList:
...     def __init__(self):
...         self.items = {}
>>> brainstate.graph.register_graph_node_type(
...     MyList,
...     flatten=lambda n: (sorted(n.items.items()), (MyList,)),
...     set_key=lambda n, k, v: n.items.__setitem__(k, v),
...     pop_key=lambda n, k: n.items.pop(k),
...     create_empty=lambda meta: MyList(),
...     clear=lambda n: n.items.clear(),
... )