Checks cycles in scene.create_connection (i.e., for code mistakenly creating cycles) and also when the user completes a connection.
Adds exception type ConnectionCycleFailure
Adds some API niceties:
Node is hashed by uid (now usable in sets/dicts/etc)
Adds Node.has_any_connection, e.g., does node1 have node2 anywhere upstream or downstream of it in the pipeline?
Adds Node.has_connection_by_port_type e.g., does node1 have node2 anywhere downstream of it in the pipeline?
AddsNode.walk_paths_by_port_type to walk through upstream/downstream nodes. For example, if you have node1 -> node2 -> node3 and request to walk output paths from node1, it would yield (node1, node2) and (node1, node2, node3). This is used internally for the above two methods.
Adds NodeState.output_connections, NodeState.input_connections to go along with .all_connections
Closes #35
Checks cycles in
scene.create_connection
(i.e., for code mistakenly creating cycles) and also when the user completes a connection.Adds exception type
ConnectionCycleFailure
Adds some API niceties:
Node
is hashed by uid (now usable in sets/dicts/etc)Node.has_any_connection
, e.g., doesnode1
havenode2
anywhere upstream or downstream of it in the pipeline?Node.has_connection_by_port_type
e.g., doesnode1
havenode2
anywhere downstream of it in the pipeline?Node.walk_paths_by_port_type
to walk through upstream/downstream nodes. For example, if you havenode1 -> node2 -> node3
and request to walk output paths fromnode1
, it would yield(node1, node2)
and(node1, node2, node3)
. This is used internally for the above two methods.NodeState.output_connections
,NodeState.input_connections
to go along with.all_connections