compimplementation module

Module compimplementation provides the definition of the class SBSCompImplementation and all the possible implementation:
class compnode.compimplementation.SBSCompFilter(aFilter='', aParameters=None, aParamArrays=None, aParamGraphs=None)

Bases: SBSCompImplWithParams

Class that contains information on a compositing node filter as defined in a .sbs file

Members:
  • mFilter (str): filter type, among the identifiers available for Filter definition (sbsfilters)

  • mParameters (list of SBSParameter): filter parameters list (filters parameters, authoring parameters, resources paths, etc.).

  • mParamArrays (list of SBSParamsArray, optional): parameters arrays, e.g. used for gradient data.

  • mParamGraphs (list of SBSParamsGraph, optional): parameters set graphs, e.g. used for FX-Map parametrization.

changeDependencyUID(newDepUID)

In case of a filter Bitmap or SVG, change the UID of the dependency referenced by the resource.

Parameters:

newDepUID (str) – The new dependency UID

changeResourcePath(newPath)

In case of a filter Bitmap or SVG, change the referenced resource path.

Parameters:

newPath (str) – The new resource path

classify(aOther, aParentContainer=None)

Compare the identifiers of the two filters to classify them.

Parameters:
  • aOther (SBSCompFilter) – The filter to compare to.

  • aParentContainer (SBSGraph, optional) – The graph containing the nodes to classify

Returns:

1 if itself is considered greater than the other node, -1 for the opposite. 0 in case of equality.

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.

Parameters:

other (SBSObject) – The SBSObject to compare to

Returns:

True if the two SBSObject are similar according to their definition.

getDefinition()

Get the filter definition (Inputs, Outputs, Parameters)

Returns:

a CompNodeDef object

getDisplayName()

Get the display name of this node

Returns:

the display name as a string

getParameterValue(aParameter)

Find a parameter with the given name/id among the overloaded parameters and the default node parameters, and return its value.

Parameters:

aParameter (CompNodeParamEnum or str) – Parameter identifier

Returns:

The parameter value if found (string or SBSDynamicValue, None otherwise

getResourcePath()

If this node is a Bitmap or SVG, get the path to the resource used by this node

Returns:

The path relative to the package used by this node if possible, None otherwise

getUidIsUsed(aUID)

Check if the given uid is already used in the context of the comp filter

return: True if the uid is already used, False otherwise

hasIdenticalParameters(self, other)

Allows to check if two nodes has the same parameters defined with the same values.

Parameters:

other (SBSCompImplWithParams) – the node to compare with

Returns:

True if the two nodes has the same parameters, False otherwise

initFxMapGraph()

Init the SBSParamsGraph of this filter, if it is a FxMap

Returns:

The graph of this FxMap as a SBSParamsGraph, None otherwise.

isAFxMap()
Returns:

True if this filter is a FxMap, False otherwise

isAPixelProcessor()
Returns:

True if this filter is a Pixel Processor, False otherwise

isAResource()
Returns:

True if the filter uses a resource, meaning is a filter of kind BITMAP or SVG, False otherwise.

isAValueProcessor()
Returns:

True if this filter is a Value Processor, False otherwise

parse(aContext, aDirAbsPath, aSBSParser, aXmlNode)

Parse recursively the given xml node to retrieve the content of the SBSObject.

Parameters:
  • aContext (Context) – execution context

  • aDirAbsPath (str) – the absolute directory containing the current parsed package (.sbs file)

  • aSBSParser (SBSParser) – the substance parser

  • aXmlNode (xml.etree.ElementTree) – the xml node to parse

setDynamicParameter(aParameter, aRelativeTo=None)

Set the given parameter as dynamic, to init its params.SBSDynamicValue. If Inheritance is None, the default Inheritance for this node is set.

Parameters:
Returns:

the SBSDynamicValue object if succeed, None otherwise

Raise:

api_exceptions.SBSLibraryError

setParameterValue(aParameter, aParamValue, aRelativeTo=None)

Set the value of the given parameter to the given value, if compatible with this node.

Parameters:
Returns:

True if succeed, False otherwise

Raise:

api_exceptions.SBSLibraryError

unsetParameter(aParameter)

Unset the given parameter so that it is reset to its default value.

Parameters:

aParameter (CompNodeParamEnum or str) – identifier of the parameter to set

Returns:

True if succeed, False otherwise

Raise:

api_exceptions.SBSLibraryError

write(aSBSWriter, aXmlNode)

Write recursively the content of the SBSObject into the given xml node.

Parameters:
  • aSBSWriter (SBSWriter) – the substance writer

  • aXmlNode (xml.etree.ElementTree) – the xml node to fill

class compnode.compimplementation.SBSCompImplementation(aCompFilter=None, aCompInstance=None, aCompInputBridge=None, aCompOutputBridge=None)

Bases: SBSObject

Class that contains information on the implementation of a compositing node as defined in a .sbs file. The implementation is exclusive, only one member of the SBSCompImplementation is defined.

Members:
classify(aOther, aParentContainer=None)
Use the definition of the two CompImplementation to classify them.
To classify the different kind of CompImplementation, this order is specify:
Filter < Instance < Input < Output.
In case of equality, the appropriate classify function is called, depending on the kind of implementation.
Parameters:
  • aOther (SBSCompImplementation) – The filter to compare to.

  • aParentContainer (SBSGraph, optional) – The graph containing the nodes to classify

Returns:

1 if itself is considered greater than the other node, -1 for the opposite. 0 in case of equality.

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.

Parameters:

other (SBSObject) – The SBSObject to compare to

Returns:

True if the two SBSObject are similar according to their definition.

getImplementation(self)

Return the appropriate node implementation depending on the compositing node kind

Returns:

A SBSCompImplWithParams or a SBSCompOutputBridge

getImplementationKind()

Get the implementation kind of this node, among the list defined in CompImplementationKindEnum

Returns:

The CompImplementationKindEnum

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

isAFilter()
Returns:

True if this is a Compositing Node Filter, False otherwise.

isAnInputBridge()
Returns:

True if this is an Input Bridge, False otherwise.

isAnInstance()
Returns:

True if this is a Compositing Node Instance, False otherwise.

isAnOutputBridge()
Returns:

True if this is an Output Bridge, False otherwise.

parse(aContext, aDirAbsPath, aSBSParser, aXmlNode)

Parse recursively the given xml node to retrieve the content of the SBSObject.

Parameters:
  • aContext (Context) – execution context

  • aDirAbsPath (str) – the absolute directory containing the current parsed package (.sbs file)

  • aSBSParser (SBSParser) – the substance parser

  • aXmlNode (xml.etree.ElementTree) – the xml node to parse

write(aSBSWriter, aXmlNode)

Write recursively the content of the SBSObject into the given xml node.

Parameters:
  • aSBSWriter (SBSWriter) – the substance writer

  • aXmlNode (xml.etree.ElementTree) – the xml node to fill

class compnode.compimplementation.SBSCompInputBridge(aEntry='', aParameters=None)

Bases: SBSCompImplWithParams

Class that contains information on an input node as defined in a .sbs file

Members:
  • mEntry (str): uid of this input (/graph/paramInputs/paramInput/uid).

  • mParameters (list of SBSParameter): input parameters list.

classify(aOther, aParentContainer=None)

If aParentContainer is provided, compare the identifiers of the two input nodes to classify them, else use the Entry UID.

Parameters:
  • aOther (SBSCompInputBridge) – The filter to compare to.

  • aParentContainer (SBSGraph, optional) – The graph containing the nodes to classify

Returns:

1 if itself is considered greater than the other node, -1 for the opposite. 0 in case of equality.

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.

Parameters:

other (SBSObject) – The SBSObject to compare to

Returns:

True if the two SBSObject are similar according to their definition.

getDefinition()

Get the comp input bridge definition (Inputs, Outputs, Parameters)

Returns:

a CompNodeDef object

getDisplayName()

Get the display name of this node

Returns:

the display name as a string

getParameterValue(aParameter)

Find a parameter with the given name/id among the overloaded parameters and the default node parameters, and return its value.

Parameters:

aParameter (CompNodeParamEnum or str) – Parameter identifier

Returns:

The parameter value if found (string or SBSDynamicValue, None otherwise

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

hasIdenticalParameters(self, other)

Allows to check if two nodes has the same parameters defined with the same values.

Parameters:

other (SBSCompImplWithParams) – the node to compare with

Returns:

True if the two nodes has the same parameters, False otherwise

parse(aContext, aDirAbsPath, aSBSParser, aXmlNode)

Parse recursively the given xml node to retrieve the content of the SBSObject.

Parameters:
  • aContext (Context) – execution context

  • aDirAbsPath (str) – the absolute directory containing the current parsed package (.sbs file)

  • aSBSParser (SBSParser) – the substance parser

  • aXmlNode (xml.etree.ElementTree) – the xml node to parse

setDynamicParameter(aParameter, aRelativeTo=None)

Set the given parameter as dynamic, to init its params.SBSDynamicValue. If Inheritance is None, the default Inheritance for this node is set.

Parameters:
Returns:

the SBSDynamicValue object if succeed, None otherwise

Raise:

api_exceptions.SBSLibraryError

setParameterValue(aParameter, aParamValue, aRelativeTo=None)

Set the value of the given parameter to the given value, if compatible with this node.

Parameters:
Returns:

True if succeed, False otherwise

Raise:

api_exceptions.SBSLibraryError

unsetParameter(aParameter)

Unset the given parameter so that it is reset to its default value.

Parameters:

aParameter (CompNodeParamEnum or str) – identifier of the parameter to set

Returns:

True if succeed, False otherwise

Raise:

api_exceptions.SBSLibraryError

write(aSBSWriter, aXmlNode)

Write recursively the content of the SBSObject into the given xml node.

Parameters:
  • aSBSWriter (SBSWriter) – the substance writer

  • aXmlNode (xml.etree.ElementTree) – the xml node to fill

class compnode.compimplementation.SBSCompInstance(aPath=None, aParameters=None, aOutputBridgings=None, aGUILayoutComp=None, aRefGraph=None, aRefDependency=None)

Bases: SBSCompImplWithParams

Class that contains information on a compositing node instance as defined in a .sbs file

Members:
  • mPath (str): path of the graph definition this instance refers to.

  • mParameters (list of SBSParameter): instance parameters list.

  • mOutputBridgings (list of SBSOutputBridging, optional): List of bridging between outputs of this instance node and the graph definition.

  • mGUILayoutComp (SBSGUILayoutComp, optional): GUI flags and options instance overload.

  • mRefGraph (SBSGraph, optional): reference to the graph that this node instantiates.

changeDependencyUID(aSBSDocument, newDepUID)

Change the UID of the dependency referenced by this instance.

Parameters:
  • aSBSDocument (SBSDocument) – The root document, required to reset all the internal links to the referenced graph

  • newDepUID (str) – The new dependency UID

changeInstancePath(aParentDocument, aInstanceDocument, aGraphRelPath)

Change the function referenced by this instance. If aInstanceDocument is not already declared as a dependency, the dependency will be added to aParentDocument.

Parameters:
  • aParentDocument (SBSDocument) – The parent document of this node

  • aInstanceDocument (SBSDocument) – The document containing the function to reference by this instance (can be equal to parent document)

  • aGraphRelPath (str) – The graph path, relatively to its parent package aInstanceDocument (pkg:///myGroup/myGraph)

classify(aOther, aParentContainer=None)

Compare the path of the two instances to classify them.

Parameters:
  • aOther (SBSCompInstance) – The filter to compare to.

  • aParentContainer (SBSGraph, optional) – The graph containing the nodes to classify

Returns:

1 if itself is considered greater than the other node, -1 for the opposite. 0 in case of equality.

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.

Parameters:

other (SBSObject) – The SBSObject to compare to

Returns:

True if the two SBSObject are similar according to their definition.

getCompOutputBridging(aIdentifier)

Get the SBSOutputBridging corresponding to the given identifier

Parameters:

aIdentifier (str) – required identifier

Returns:

a SBSOutputBridging object if found, None otherwise

getCompOutputBridgingFromUID(aUID)

Get the SBSOutputBridging corresponding to the given output uid

Parameters:

aUID (str) – the unique identifier to look for

Returns:

a SBSOutputBridging object if found, None otherwise

getDefinition()

Build a CompNodeParam object to describe the inputs, outputs and parameters of this graph instance

Returns:

A CompNodeParam object

getDependencyUID()

Get the UID of the dependency referenced by this instance

Returns:

The dependency UID as a string if found, None otherwise

getDisplayName()

Get the display name of this node

Returns:

the display name as a string

getParameterValue(aParameter)

Find a parameter with the given name/id among the overloaded parameters and the default node parameters, and return its value.

Parameters:

aParameter (CompNodeParamEnum or str) – Parameter identifier

Returns:

The parameter value if found (string or SBSDynamicValue, None otherwise

getReferenceAbsPath()

Get the absolute path of the graph referenced by this instance.

Returns:

The absolute path of the graph referenced by this instance, in the format absolutePath/filename.sbs/graphIdentifier, as a string

getReferenceInternalPath()

If this node is an instance, get the path of the referenced graph relatively to the package (pkg:///).

Returns:

The path as a string

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

hasIdenticalParameters(self, other)

Allows to check if two nodes has the same parameters defined with the same values.

Parameters:

other (SBSCompImplWithParams) – the node to compare with

Returns:

True if the two nodes has the same parameters, False otherwise

parse(aContext, aDirAbsPath, aSBSParser, aXmlNode)

Parse recursively the given xml node to retrieve the content of the SBSObject.

Parameters:
  • aContext (Context) – execution context

  • aDirAbsPath (str) – the absolute directory containing the current parsed package (.sbs file)

  • aSBSParser (SBSParser) – the substance parser

  • aXmlNode (xml.etree.ElementTree) – the xml node to parse

resolveDependency(aSBSDocument)

Allow to resolve the dependency of the compositing instance node with the graph it references.

Parameters:

aSBSDocument (SBSDocument) – The root document

setDynamicParameter(aParameter, aRelativeTo=None)

Set the given parameter as dynamic, to init its params.SBSDynamicValue. If Inheritance is None, the default Inheritance for this node is set.

Parameters:
Returns:

the SBSDynamicValue object if succeed, None otherwise

Raise:

api_exceptions.SBSLibraryError

setParameterValue(aParameter, aParamValue, aRelativeTo=None)

Set the value of the given parameter to the given value, if compatible with this node.

Parameters:
Returns:

True if succeed, False otherwise

Raise:

api_exceptions.SBSLibraryError

unsetParameter(aParameter)

Unset the given parameter so that it is reset to its default value.

Parameters:

aParameter (CompNodeParamEnum or str) – identifier of the parameter to set

Returns:

True if succeed, False otherwise

Raise:

api_exceptions.SBSLibraryError

write(aSBSWriter, aXmlNode)

Write recursively the content of the SBSObject into the given xml node.

Parameters:
  • aSBSWriter (SBSWriter) – the substance writer

  • aXmlNode (xml.etree.ElementTree) – the xml node to fill

class compnode.compimplementation.SBSCompOutputBridge(aOutput='', aConnectionColorType=None)

Bases: SBSObject

Class that contains information on an output node as defined in a .sbs file

Members:
  • mOutput (str): uid of this output. (/graph/graphOutputs/graphOutput/uid).

  • mConnectionColorType (str, optional): connection color type. Type format defined at ParamTypeEnum

classify(aOther, aParentContainer=None)

If aParentContainer is provided, compare the identifiers of the two output nodes to classify them, else use the Output UID.

Parameters:
  • aOther (SBSCompOutputBridge) – The filter to compare to.

  • aParentContainer (SBSGraph, optional) – The graph containing the nodes to classify

Returns:

1 if itself is considered greater than the other node, -1 for the opposite. 0 in case of equality.

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.

Parameters:

other (SBSObject) – The SBSObject to compare to

Returns:

True if the two SBSObject are similar according to their definition.

getDefinition()

Get the output bridge definition (Inputs, Outputs, Parameters)

Returns:

a CompNodeDef object

getDisplayName()

Get the display name of this node

Returns:

the display name as a string

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

parse(aContext, aDirAbsPath, aSBSParser, aXmlNode)

Parse recursively the given xml node to retrieve the content of the SBSObject.

Parameters:
  • aContext (Context) – execution context

  • aDirAbsPath (str) – the absolute directory containing the current parsed package (.sbs file)

  • aSBSParser (SBSParser) – the substance parser

  • aXmlNode (xml.etree.ElementTree) – the xml node to parse

write(aSBSWriter, aXmlNode)

Write recursively the content of the SBSObject into the given xml node.

Parameters:
  • aSBSWriter (SBSWriter) – the substance writer

  • aXmlNode (xml.etree.ElementTree) – the xml node to fill