nodes module
Module nodes provides the definition of the common classes SBSNode and NodeList.
- class sbscommon.nodes.NodeList(aParentObject, aNodeType, aNodesAttribute)
Bases:
objectClass used to provide common methods to SBSObjects that contains a list of nodes:
SBSGraphandSBSDynamicValue- Members:
mParentObject (
SBSObject): Parent object that contains the node list.mNodeType (class): type of node (compnode.SBSCompNode for instance).
mNodesAttr (str): attribute member name in the parent object that corresponds to the node list.
- computeConnectionsInsidePattern(aNodeList)
Compute the input and output connections of the nodes included in the list. It uses the node definition to order the nodes, and the GUI position in case of equality.
- Parameters:
aNodeList (list of tuple(int,
SBSNode).) – The list of node to take in account for the topological sort.- Returns:
The input and output connections of each node, as a list of tuple (list of inputs, list of outputs) of the same size than aNodeList, where each element of a list describe a connection with three elements:
’index’ (index of the connected node)
’identifier’ (pin identifier) for input, ‘uid’ (pin uid) for output
’type’ (data type)
- computePatternInputsAndOutputs(aNodeList, connectionsInsidePattern)
- Compute the input and output pins that corresponds to the input and output of the whole pattern.
An input pin is connected to a node that does not belong to the pattern.
An output pin is never referenced by the connections inside the pattern.
- Parameters:
aNodeList (list of
SBSNode, optional) – The list of node to take in account.connectionsInsidePattern (tuple) –
The connections between the nodes inside the pattern, as a list of tuple (list of inputs, list of outputs) of the same size than aNodeList, where each element of a list describe a connection with three elements:
’index’ (index of the connected node)
’identifier’ (pin identifier) for input, ‘uid’ (pin uid) for output
’type’ (data type)
- Returns:
The list of input and output pins as a tuple (list of inputs, list of outputs), where each element of a list describe a pin with three elements:
’index’ (index of the node)
’identifier’ (pin identifier) for input, ‘uid’ (pin uid) for output
’type’ (data type)
- Raise:
api_exceptions.SBSImpossibleActionError
- computeSortedIndicesOfDAG(aNodeList=None)
Sort topologically the nodes included in the list.
- Parameters:
aNodeList (list of
SBSNode.) – The list of node to take in account for the topological sort.connectionsInsidePattern (list of tuple) –
The input and output connections, as a list of tuple (list of inputs, list of outputs) of the same size than aNodeList, where each element of a list describe a connection with three elements:
’index’ (index of the connected node)
’identifier’ (pin identifier) for input, ‘uid’ (pin uid) for output
’type’ (data type)
- Returns:
The sorted node list
- contains(aNode)
Check if the given node belongs to this node list
- Parameters:
aNode (
SBSCompNode,SBSParamNodeor str) – The node to check, as a, object or an UID- Returns:
True if the given node belongs to the node list, False otherwise
- copyNode(aNode)
Create a copy of the given node and generate a new uid for it
- deleteNode(aNode)
Allows to delete the given node from the graph. It removes it from the nodes list, and delete all the connections from and to that node in the graph.
- Parameters:
aNode (
SBSNodeor str) – The node to remove, as a SBSNode or an UID.- Returns:
True if success
- Raise:
api_exceptions.SBSImpossibleActionError
- duplicateNode(aNode, aGUIOffset=None)
Duplicate the given node, generate a new UID and add the node to the same node list than the source node.
- getConnectionsFromNode(aNode)
Get all the connections coming from the given left node.
- Parameters:
aNode (
SBSNodeor str) – the node to consider, as an object or a UID- Returns:
a list of
SBSConnection
- getConnectionsToNode(self, aNode, aPinIdentifier=None)
Get the connections incoming to the given node, to a particular input or for all its inputs.
- Parameters:
aNode (
SBSNodeor str) – the node to consider, as an object or a UIDaPinIdentifier (str, optional) – the identifier of the pin to take in account
- Returns:
a list of
SBSConnection
- getNode(aNode)
Search for the given node in the node list
- getNodeList(aNodesList=None)
Get all the nodes of this NodeList, or look for the given nodes if aNodesList is not None.
- getNodesConnectedFrom(aNode)
Get all the nodes connected to an output of the given node.
- getNodesConnectedTo(aNode, aPinIdentifier=None)
Get all the nodes connected to the given pin of the given node. If aPinIdentifier is let None, consider all the pins.
- getNodesDockedTo(aNode)
Get all the nodes that are docked to the given node.
- getRect(aNodeList=None)
Get the rectangle occupied by all the nodes in the list, or use only the given nodes if aNodeList is not None
- isAPathBetween(self, aLeftNode, aRightNode)
Check if there is a path from the left node to the right node with the current connections.
- sortListLexicographically(aNodeList)
Sort ‘lexicographically’ the nodes included in the list. It uses the node definition to classify the nodes, and the GUI position in case of equality.
- Parameters:
aNodeList (list of tuple(int,
SBSNode).) – The list of node to take in account for the lexicographical sort.- Returns:
The sorted node list
- sortNodesAsDAG(aUpdateNodeListMember=True)
Sort the node list of the graph to order them as a DAG. The node list is updated and returned.
- Parameters:
aUpdateNodeListMember (bool) – True to update the node list member with the sorted nodes, False to just get the sorted list. Default to True.
- Returns:
the sorted node list.
- class sbscommon.nodes.SBSNode(aGUIName=None, aUID='', aDisabled=None, aConnections=None, aGUILayout=None, aUserId=None)
Bases:
SBSObjectClass used to gather common information of a
SBSCompNode,SBSParamNode,SBSParamsGraphNode- Members:
mGUIName (str, optional): name of the node.
mUID (str): node unique identifier in the /compNodes/ context.
mDisabled (str, optional): this node is disabled.
mGUILayout (
SBSGUILayout): GUI position/optionsmConnections (list of
SBSConnection, optional): input connections list.mUserId (str): node id given by the user (used for portal connections display).
- equals(other)
Check if this SBSObject is equivalent to the other SBSObject. Some members may be excluded from this check, the UIDs or GUILayout for instance.
- getConnectedNodesUID()
Get the UIDs of the nodes connected to this node.
- Returns:
The UIDs as a list of string
- getConnectionOnPin(aPinIdentifier)
Get the connection defined on the given input.
- Parameters:
aPinIdentifier (str) – identifier of the input pin (for
SBSCompNode,SBSParamNode) or of the output pin(forSBSParamsGraphNode)- Returns:
a
SBSConnectionobject corresponding to the connection defined on the given pin. None otherwise
- getConnections()
Get the connections defined on this node.
- Returns:
a list of
SBSConnection
- getConnectionsFromNode(aLeftNode)
Get all the connections coming from the given left node.
- Parameters:
aLeftNode (
SBSNodeor str) – The node to look for in the incoming connections of this node, as an object or a UID- Returns:
a list of
SBSConnection
- abstractmethod getDefinition()
Get the node definition (Inputs, Outputs, Parameters) accordingly to the node implementation
- Returns:
a
NodeDefobject if defined, None otherwise
- abstractmethod getDisplayName()
Get the display name of this node
- Returns:
the display name as a string
- getInputDefinition(self, aInputIdentifier=None)
Get the input definition corresponding to the given identifier.
- Parameters:
aInputIdentifier (
InputEnumor str, optional) – The identifier to get. If let None, the primary input will be returned- Returns:
the input definition as a
CompNodeInputif found, None otherwise
- getOffsetPosition(aOffset=None)
Compute the position of this node offset by the given offset
- Parameters:
aOffset (list of 2 float, optional) – the offset to apply to the node’s current position. Default to [0,0]
- Returns:
the offset position
- getPosition()
Get the position of this node in the graph GUI.
- Returns:
a list of 3 float
- getUidIsUsed(aUID)
Check if the given uid is already used in the context of this SBSObject.
- Parameters:
aUID (str) – UID to check
- Returns:
True if the uid is already used, False otherwise
- Raise:
AttributeError if the function getUidIsUsed in not properly overloaded on this SBSObject
- abstractmethod hasAReferenceOnDependency(aDependency)
Check if this node directly references the given dependency. For instance if it instantiates a graph or a resource included in this dependency.
- Parameters:
aDependency (str or
SBSDependency) – The dependency to look for (UID or object)- Returns:
True if this node references this dependency, False otherwise
- abstractmethod hasAReferenceOnInternalPath(aInternalPath)
Check if this node references the given internal path (pkg:///). For instance if it instantiates the graph or the resource pointed at the given path.
- Parameters:
aInternalPath (str) – The internal path to look for
- Returns:
True if this node references the given internal path, False otherwise
- isConnectedTo(aLeftNode)
Check if the node is connected to the given node, in the direction aLeftNode -> self
- Parameters:
aLeftNode (
SBSNodeor str (UID)) – The node to look for in the connections of this node.- Returns:
True if the nodes are connected, False otherwise
- isDocked()
Check if this node is docked.
- Returns:
True if this node is docked, None otherwise
- parse(aContext, aDirAbsPath, aSBSParser, aXmlNode)
Parse recursively the given xml node to retrieve the content of the SBSObject.
- removeConnectionOnPin(aInput)
Remove the connection on the given input pin.
- Parameters:
aPinIdentifier (
InputEnumorFunctionInputEnumor str) – identifier of the input pin (forSBSCompNodeandSBSParamNode) or of the output pin(forSBSParamsGraphNode) to disconnect- Returns:
True if a connection is removed, False otherwise
- removeConnectionsFrom(aLeftNode)
Remove all the connections from aLeftNode to this node (in the direction aLeftNode -> self)
- Parameters:
aLeftNode (
SBSNodeor str (UID)) – The node to look for in the connections of this node.- Returns:
Nothing
- setPosition(aPosition)
Set the position of this node in the graph GUI.
- Parameters:
aPosition (a list of 3 float) – The position to set