modulegraph module
Module modulegraph aims to define SBSObjects that are relative to a module graph,
mostly ModuleGraph.
- class modulegraph.modulegraph.ModuleGraph(aIdentifier='', aUID='', aParamInputs=None, aNodes=None, aRoot='0', aGraphImplementation=None, aAnnotations=None, aMetaDataTree=None, aGraphDefinitionId='', aGraphImplementationValue='', aRegister=None)
Bases:
BaseGraph,SBSMetaDataTreeClass that contains information on a Module graph as defined in a .sbs file
- Members:
mIdentifier (str): name of the graph (name of the definition and the instance if applicable).
mUID (str): unique identifier in the package/ context.
mParamInputs (list of
ModuleGraphInput): list of exposed parameters of the graph.mNodes (list of
ModuleGraphNode): the list of Module node of the graph.mRoot (str, optional): UID of the root node of the graph (the output)
mGraphImplementation (
ModuleGraphImplementation): Module Graph Implementation
- addGraphAnnotation(aKey: str, aValue) ModuleAnnotation
Create an Annotation object and add it to the given graph Annotation handle graph information attributes like description, author, tags…
- Parameters:
aGraph (
ModuleGraph) – the graph where the node will be createdaKey (str) – the key word, title, path of the annotation, can be ‘description’, ‘author’ …
aValue (str) – the string value of the annotation
- Returns:
annotation obj
- Return type:
- connectNodes(aNodeLeft: ModuleNode, aNodeRight: ModuleNode, aOutputIdentifer: str = None, aInputIdentifer: str = None) ModuleConnection
Connect two nodes by their outputs to inputs, in model graph all inputs are operands. If output and input identifier are not set first of each will be used. Currently there is no type check during the connection, so as long as the output and input exists the connection will be done but could be not valid for the evaluation.
- Parameters:
aNodeLeft (
ModuleNode) – the left nodeaNodeRight (
ModuleNode) – the right node, which received connectionaOutputIdentifer (str) – the output pin’s identifier, in the case where the left node has several output
aInputIdentifer (str) – the input pin’s identifier, in the case where the right node has several input
- Returns:
the connection object
- Return type:
- createNode(aGraph: modulegraph.ModuleGraph, aNodeId: str, aPos=(0, 0, 0))
Top def to create an atomic node (not an instance) by given a node id createNode(aModelgraph, “Structure::NodeBool”)
- Parameters:
aNodeId – the path id of the node
aPos – a x, y, z position value
- Returns:
- exposeNode(aNode: ModuleNode, aIdentifier: str, aDescription: str = '', aInGroup: str = '', aDisplayName: str = '', aGammaType: str = '', aGraphDefinitionId: str = None, aSoftRange=None, aHardRange=None) ModuleParamInput
Expose as a graph input parameter a constant node
- Parameters:
aGraph (
ModuleGraph) – the graph where the input parameter will be createdaNode (
ModuleNode) – the constant node to exposed as graph inputaIdentifier (str) – the identifier of the graph input parameter
aDescription (str) – Graph input description
aInGroup (str) – Graph input group
aDisplayName (str) – Graph input display name
aGammaType (str) – Graph input gamma type
aSoftRange (list) – a soft range for the graph parameter
aHardRange (list) – a hard range for the graph parameter
- Returns:
- classmethod fromJson(aJsonData)
Classmethod to build a
SBSMetaDataTreefrom the old json file. Here to support old package without xmp- Parameters:
aJsonData – a json dict
- Returns:
- classmethod fromXmpIter(aMetaDataIter)
Classmethod to build a
SBSMetaDataTreefrom a xmpSBSMetaDataIter- Parameters:
aMetaDataIter – a xmp
SBSMetaDataIter- Returns:
- getAllInputGroups()
Get the list of all groups used for the inputs of the graph.
- Returns:
a list of groups as strings
- getAllInputs()
Get the list of all inputs (images and parameters) defined on this graph
- Returns:
a list of inputs as
ParamInput
- abstractmethod getAllInputsInGroup(aGroup)
- Get the list of all inputs (images and parameters) contained in the given group.If aGroup is None, returns all the parameters that are not included in a group.
- Parameters:
aGroup (
SBSARGuiGroupor str) – The group of parameter to consider, given a SBSARGuiGroup object or a Group identifier- Returns:
a list of inputs
- getAttribute(aAttributeIdentifier)
Get the given attribute value
- Parameters:
aAttributeIdentifier (
AttributesEnum) – the attribute identifier- Returns:
the attribute value if defined, None otherwise
- getIdentifier()
getIdentifer()
- Returns:
str identifier
- getInput(aInputIdentifier)
Get the ParamInput with the given identifier, among the input images and parameters
- Parameters:
aInputIdentifier (str) – input parameter identifier
- Returns:
the corresponding
ParamInputobject if found, None otherwise
- getInputFromUID(aInputUID)
Get the ParamInput with the given UID, among the input images and parameters
- Parameters:
aInputUID (str) – input parameter UID
- Returns:
the corresponding
ParamInputobject if found, None otherwise
- getInputImage(aInputImageIdentifier)
Get the image input with the given identifier
- Parameters:
aInputImageIdentifier (str) – input image identifier
- Returns:
a
ParamInputif found, None otherwise
- getInputImageWithUsage(aUsage)
Get the first image input which has the given usage defined
- Parameters:
aUsage (
UsageEnumor str) – usage to look for- Returns:
a
ParamInputif found, None otherwise
- getInputImages()
Get the list of image inputs
- Returns:
a list of image inputs as ParamInput
- getInputParameter(aInputParamIdentifier)
Get the input parameter with the given identifier
- Parameters:
aInputParamIdentifier (str) – input parameter identifier
- Returns:
the corresponding
ParamInputobject if found, None otherwise
- getInputParameterFromUID(aInputParamUID)
Get the input parameter with the given UID
- Parameters:
aInputParamUID (str) – input parameter UID
- Returns:
the corresponding
ParamInputobject if found, None otherwise
- getInputParameters()
Get the list of input parameters (not image)
- Returns:
a list of
ParamInput
- getNode(aNode)
Search for the given compositing node in the node list
- Parameters:
aNode (
ModuleNodeor str) – node to get, identified by its uid or as aModuleNode- Returns:
A
ModuleNodeobject if found, None otherwise
- getNodeByPath(aPath)
Search for the given compositing node in the node list
- Parameters:
aPath (str) – node’s ID path ex ‘Structure::NodeVector3Lerp’
- Returns:
A
ModuleNodeobject if found, None otherwise
- getNodeList(aNodesList=None)
Get all the compositing nodes of this graph, or look for the given nodes if aNodesList is not None
- Parameters:
aNodesList (list of str or list of
SBSCompNode, optional) – list of node to look for, might be identifiers or .SBSNode- Returns:
a list of
ModuleNodeincluded in the graph
- getUidIsUsed(aUID)
Check if the given uid is already used in the context of the graph
- Parameters:
aUID (str) – UID to check
- Returns:
True if the uid is already used, False otherwise
- parse(aContext, aDirAbsPath, aSBSParser, aXmlNode)
- setNodeAsRoot(aNode) bool
Set this node as root node, the “last” node that will be used as root during the evaluation
- Parameters:
aNode (
ModuleNodeor str) – the node or the identifier of this node that will be root
- write(aSBSWriter, aXmlNode)