ryvencore.Node module¶
- class Node(params)¶
Bases:
ryvencore.Base.BaseBase class for all node blueprints. Such a blueprint is made by subclassing this class and registering that subclass in the session. Actual node objects are instances of it. The node’s static properties are static attributes, which works really well in Python.
- static title
the node’s title
- static type_
conditional type field
- static tags
a list of tag strings, usually for searching
- static version
version tag, use it!
- static init_inputs
initial inputs list. the type BP in NodeInputBP stands for ‘blueprint’, as they only serve as containers, the actual input objects will be created later
- static init_outputs
initial outputs list, see init_inputs
- static identifier
unique node identifier string. if not given, the session will set it to the class name on register
- static identifier_comp
a list of compatible identifiers, useful if you change the class name (and hence the identifier) to provide backward compatibility to older projects
- title = ''¶
- type_ = ''¶
- tags: List[str] = []¶
- version: str = None¶
- visible: bool = True¶
- init_inputs: List[ryvencore.NodePortBP.NodeInputBP] = []¶
- init_outputs: List[ryvencore.NodePortBP.NodeOutputBP] = []¶
- identifier: str = None¶
- identifier_comp: List[str] = []¶
- identifier_prefix: str = None¶
INITIALIZATION —————————————————————————————————–
- classmethod build_identifier()¶
sets the identifier to class name if it’s not set, and adds the identifier prefix
- initialize()¶
Loads all default properties from initial data if it was provided, sets up inputs and outputs, enables the logs, and loads user_data (doesn’t crash on exception here as this is not uncommon when developing nodes).
- setup_ports(inputs_data=None, outputs_data=None)¶
- after_placement()¶
Called from Flow when the nodes gets added
- prepare_removal()¶
Called from Flow when the node gets removed
- update(inp=- 1)¶
‘Activates’ the node, causing an update_event(); prints an exception if something crashed, but prevents the application from crashing in such a case
- input(index: int)¶
Returns the value of a data input. If the input is connected, the value of the connected output is used: If not, the value of the widget is used.
- exec_output(index: int)¶
Executes an exec output, causing activation of all connections
- set_output_val(index, val)¶
Sets the value of a data output causing activation of all connections in data mode
- update_event(inp=- 1)¶
Gets called when an input received a signal or some node requested data of an output in exec mode
- place_event()¶
place_event() is called once the node object has been fully initialized and placed in the flow. When loading content, place_event() is executed before the connections are built, which is important for nodes that need to update once and, during this process, set output data values, to prevent later connected (potentially sequential) nodes from receiving false updates because of that. Notice that this method gets executed every time the node is added to the flow, which can happen multiple times for the same object, for example due to undo/redo operations. Also note that GUI content is usually not accessible yet from here, for that use view_place_event().
- view_place_event()¶
Called once all GUI for the node has been created by the frontend, if one exists. Any initial communication to widgets is supposed to happen here, and this method is not called when running without gui.
- remove_event()¶
Called when the node is removed from the flow; useful for stopping threads and timers etc.
- additional_data() dict¶
Additional_data()/load_additional_data() is almost equivalent to get_state()/set_state(), but it’s often useful for frontends to have their own, get_state()/set_state() then stays clean for all specific node subclasses
- load_additional_data(data: dict)¶
For loading the data returned by additional_data()
- get_state() dict¶
Used to store node-specific custom data that needs to be reloaded when loading a project or pasting copied components. All values will be serialized by pickle and base64. The corresponding method for the opposite operation is set_state().
- set_state(data: dict, version)¶
Used for reloading node-specific custom data which has been previously returned by get_state()
- new_logger(title) ryvencore.logging.Logger.Logger¶
Requesting a new custom Log
- disable_loggers()¶
Disables custom logs
- enable_loggers()¶
Enables custom logs
- create_input(label: str = '', type_: str = 'data', add_data={}, insert: Optional[int] = None)¶
Creates and adds a new input at index pos
- create_input_dt(dtype: ryvencore.dtypes.dtypes.DType, label: str = '', add_data={}, insert: Optional[int] = None)¶
Creates and adds a new data input with a DType
- rename_input(index: int, label: str)¶
- delete_input(index: int)¶
Disconnects and removes input
- create_output(label: str = '', type_: str = 'data', insert: Optional[int] = None)¶
Creates and adds a new output
- rename_output(index: int, label: str)¶
- delete_output(index: int)¶
Disconnects and removes output
- get_vars_manager()¶
Returns a ref to the script’s variables manager
- get_var_val(name: str)¶
Gets the value of a script variable
- set_var_val(name: str, val)¶
Sets the value of a script variable
- register_var_receiver(name: str, method)¶
Registers the node with given method as vars receiver in the script’s variables manager to catch value changes of any variable with the given name
- unregister_var_receiver(name: str, method)¶
Unregisters previously registered node as receiver for value changes of script variables with given name
- is_active()¶
- flow_in_data_opt_mode()¶
- data() dict¶
Returns all metadata of the node in JSON-compatible dict. Used to rebuild the Flow when loading a project or pasting components.