modelgraph module

Module modelgraph

class modelgraph.modelgraph.ModelGraph(**kwargs)

Bases: ModuleGraph

ModelGraph is the Model specialized graph. It is derived from base class ModuleGraph. It handle all specific methods and properties of the Model Graph.

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 created

  • aKey (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:

ModuleAnnotation

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 node

  • aNodeRight (ModuleNode) – the right node, which received connection

  • aOutputIdentifer (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:

ModuleConnection

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:

ModuleNode

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 created

  • aNode (ModuleNode) – the constant node to exposed as graph input

  • aIdentifier (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:

ModuleParamInput

classmethod fromJson(aJsonData)

Classmethod to build a SBSMetaDataTree from the old json file. Here to support old package without xmp

Parameters:

aJsonData – a json dict

Returns:

SBSMetaDataTree

classmethod fromXmpIter(aMetaDataIter)

Classmethod to build a SBSMetaDataTree from a xmp SBSMetaDataIter

Parameters:

aMetaDataIter – a xmp SBSMetaDataIter

Returns:

SBSMetaDataTree

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 (SBSARGuiGroup or 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 ParamInput object 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 ParamInput object if found, None otherwise

getInputImage(aInputImageIdentifier)

Get the image input with the given identifier

Parameters:

aInputImageIdentifier (str) – input image identifier

Returns:

a ParamInput if found, None otherwise

getInputImageWithUsage(aUsage)

Get the first image input which has the given usage defined

Parameters:

aUsage (UsageEnum or str) – usage to look for

Returns:

a ParamInput if 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 ParamInput object if found, None otherwise

getInputParameterFromUID(aInputParamUID)

Get the input parameter with the given UID

Parameters:

aInputParamUID (str) – input parameter UID

Returns:

the corresponding ParamInput object 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 (ModuleNode or str) – node to get, identified by its uid or as a ModuleNode

Returns:

A ModuleNode object 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 ModuleNode object 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 ModuleNode included 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)
setAuthor(aText)

Set Author annotation value :param aText: text to add to Author annotation :type aText: str :return: annotation obj :rtype: ModuleAnnotation

setCopyright(aText)

Set Copyright annotation value :param aText: text to add to Copyright annotation :type aText: str :return: annotation obj :rtype: ModuleAnnotation

setDescription(aText)

Set description annotation value :param aText: text to add to Description annotation :type aText: str :return: annotation obj :rtype: ModuleAnnotation

setDisplayName(aText)

Set DisplayName annotation value :param aText: text to add to DisplayName annotation :type aText: str :return: annotation obj :rtype: ModuleAnnotation

setHidden(aValue)

Set Hidden annotation value :param aValue: value to add to Hidden annotation :type aValue: bool :return: annotation obj :rtype: ModuleAnnotation

setInGroup(aGroupName)

Set InGroup annotation value :param aGroupName: text to add to InGroup annotation :type aGroupName: str :return: annotation obj :rtype: ModuleAnnotation

setKeywords(aText)

Set Keywords annotation value :param aText: text to add to Keywords annotation :type aText: str :return: annotation obj :rtype: ModuleAnnotation

setNodeAsRoot(aNode) bool

Set this node as root node, the “last” node that will be used as root during the evaluation

Parameters:

aNode (ModuleNode or str) – the node or the identifier of this node that will be root

write(aSBSWriter, aXmlNode)