src.neurodags.nodes¶
Node registry and built-in node discovery.
Every module in this package is imported by discover() when
neurodags.nodes is first imported, i.e. on every CLI invocation and in every
worker process. Node modules must therefore stay cheap to import:
Import heavy third-party packages (e.g.
antropy,neurokit2,fooof,matplotlib,mne.export,mne_bids) inside the node function or a small helper it calls, never at module level. Basemne,numpy,xarrayandscipyare fine at module level.When a node wraps functions of a heavy library, bind the function name and resolve it with
getattrat call time (seeantropy.py/neurokit.py).If the dependency is missing, the node is still registered and raises an actionable
ImportErrorwhen called.
tests/test_import_weight.py guards this convention.
Submodules¶
- src.neurodags.nodes.antropy
- src.neurodags.nodes.descriptive
- src.neurodags.nodes.dummy
- src.neurodags.nodes.factories
- src.neurodags.nodes.loader
- src.neurodags.nodes.neurokit
- src.neurodags.nodes.operations
- src.neurodags.nodes.parsers
- src.neurodags.nodes.preprocessing
- src.neurodags.nodes.spectral
- src.neurodags.nodes.stats
Functions¶
|
Register a callable node factory. |
|
Return a registered node by name. |
|
Yield registered nodes as |
|
Return the registered node names sorted alphabetically. |
|
Remove all registered nodes (primarily useful for tests). |
|
Remove a node from the registry if present. |
|
Import all modules in the package to trigger registrations. |
|
Package Contents¶
- src.neurodags.nodes.register_node(func: NodeCallable | None = None, *, name: str | None = None, override: bool = False) NodeCallable¶
Register a callable node factory.
Can be used as
@register_nodeor@register_node(name="alias").
- src.neurodags.nodes.get_node(name: str) NodeCallable¶
Return a registered node by name.
- src.neurodags.nodes.iter_nodes() collections.abc.Iterable[tuple[str, NodeCallable]]¶
Yield registered nodes as
(name, callable)pairs.
- src.neurodags.nodes.list_nodes() tuple[str, ...]¶
Return the registered node names sorted alphabetically.
- src.neurodags.nodes.clear_node_registry() None¶
Remove all registered nodes (primarily useful for tests).
- src.neurodags.nodes.unregister_node(name: str) None¶
Remove a node from the registry if present.
- src.neurodags.nodes.discover(package: str | None = None) None¶
Import all modules in the package to trigger registrations.
- src.neurodags.nodes.register_node_with_name(name: str, func: collections.abc.Callable) None¶