Attributes (Python)

Attribute Base Class

class FnAttribute.Attribute

Bases: pybind11_builtins.pybind11_object

GEOLIB3 Attribute

__init__()None
getBinary()bytes

Returns a binary representation of this attribute.

getHash()str

Returns the hash of this attribute as a string.

getHash64()int

Returns the high 64 bits of this attribute’s hash.

getSize()int

Returns the total memory in bytes that is allocated for this attribute.

getXML()str

Returns an XML representation of this attribute.

static parseBinary(binary: object)PyFnAttribute.Attribute

Returns the attribute described by the given binary representation, or an invalid attribute if parsing fails.

static parseXML(xml: str)PyFnAttribute.Attribute

Returns the attribute described by the given XML representation, or an invalid attribute if parsing fails.

writePython(stream: object)object

Writes the Python code required to reproduce this attribute to the given stream object, which is expected to provide a callable write attribute that accepts a str as an argument.

Null Attributes

class FnAttribute.NullAttribute

Bases: PyFnAttribute.Attribute

GEOLIB3 NullAttribute

__init__()None
writePython(stream: object)object

Writes the Python code required to reproduce this attribute to the given stream object, which is expected to provide a callable write attribute that accepts a str as an argument.

Data Attributes

class FnAttribute.DataAttribute

Bases: PyFnAttribute.Attribute

GEOLIB3 DataAttribute

__init__()None
getBoundingSampleTimes(time: float)tuple

Returns a tuple of two sample times for this attribute which bound the given time. If time falls exactly on a sample value, both values will be equal. If an error occurs, both values will be None.

getNumberOfTimeSamples()int

Returns the number of time samples at which data is recorded in this attribute.

getNumberOfTuples()int

Returns the number of tuples in this attribute.

getNumberOfValues()int

Returns the total number of data values for this attribute. This will equal getNumberOfTuples() * getTupleSize().

getSampleTime(index: int)float

Returns the sample time at the given index, or 0.0 if index is out of range.

getSampleTimes()tuple

Returns a tuple containing all sample times for this attribute.

getTupleSize()int

Returns the number of data values per tuple for this attribute.

class FnAttribute.IntAttribute

Bases: PyFnAttribute.DataAttribute

GEOLIB3 IntAttribute

__init__(*args, **kwargs)

Overloaded function.

  1. __init__(self: PyFnAttribute.IntAttribute, value: float, tupleSize: int = 1) -> None

  2. __init__(self: PyFnAttribute.IntAttribute, data: dict, tupleSize: int = 1) -> None

  3. __init__(self: PyFnAttribute.IntAttribute, data: sequence, tupleSize: int = 1) -> None

getData()PyFnAttribute.ConstVector

Equivalent to IntAttribute.getNearestSample(0.0).

getNearestSample(sampleTime: float)PyFnAttribute.ConstVector

Returns a ConstVector containing samples for the sample time closest to the given sampleTime for this attribute. If sampleTime falls exactly between two sample values, the lower sample time is chosen.

getSamples()Dict[float, PyFnAttribute.ConstVector]

Returns a dict from sample time to ConstVector, containing all samples at all sample times for this attribute.

getValue(defaultValue: int = 0, throwOnError: bool = True)int

Returns the first value from the time sample nearest to 0.0. If no value is present, if throwOnError is True then a RuntimeError is raised; otherwise defaultValue is returned.

class FnAttribute.FloatAttribute

Bases: PyFnAttribute.DataAttribute

GEOLIB3 FloatAttribute

__init__(*args, **kwargs)

Overloaded function.

  1. __init__(self: PyFnAttribute.FloatAttribute, value: float, tupleSize: int = 1) -> None

  2. __init__(self: PyFnAttribute.FloatAttribute, data: dict, tupleSize: int = 1) -> None

  3. __init__(self: PyFnAttribute.FloatAttribute, data: sequence, tupleSize: int = 1) -> None

getData()PyFnAttribute.ConstVector

Equivalent to FloatAttribute.getNearestSample(0.0).

getNearestSample(sampleTime: float)PyFnAttribute.ConstVector

Returns a ConstVector containing samples for the sample time closest to the given sampleTime for this attribute. If sampleTime falls exactly between two sample values, the lower sample time is chosen.

getSamples()Dict[float, PyFnAttribute.ConstVector]

Returns a dict from sample time to ConstVector, containing all samples at all sample times for this attribute.

getValue(defaultValue: float = 0.0, throwOnError: bool = True)float

Returns the first value from the time sample nearest to 0.0. If no value is present, if throwOnError is True then a RuntimeError is raised; otherwise defaultValue is returned.

class FnAttribute.DoubleAttribute

Bases: PyFnAttribute.DataAttribute

GEOLIB3 DoubleAttribute

__init__(*args, **kwargs)

Overloaded function.

  1. __init__(self: PyFnAttribute.DoubleAttribute, value: float, tupleSize: int = 1) -> None

  2. __init__(self: PyFnAttribute.DoubleAttribute, data: dict, tupleSize: int = 1) -> None

  3. __init__(self: PyFnAttribute.DoubleAttribute, data: sequence, tupleSize: int = 1) -> None

getData()PyFnAttribute.ConstVector

Equivalent to DoubleAttribute.getNearestSample(0.0).

getNearestSample(sampleTime: float)PyFnAttribute.ConstVector

Returns a ConstVector containing samples for the sample time closest to the given sampleTime for this attribute. If sampleTime falls exactly between two sample values, the lower sample time is chosen.

getSamples()Dict[float, PyFnAttribute.ConstVector]

Returns a dict from sample time to ConstVector, containing all samples at all sample times for this attribute.

getValue(defaultValue: float = 0.0, throwOnError: bool = True)float

Returns the first value from the time sample nearest to 0.0. If no value is present, if throwOnError is True then a RuntimeError is raised; otherwise defaultValue is returned.

class FnAttribute.StringAttribute

Bases: PyFnAttribute.DataAttribute

GEOLIB3 StringAttribute

__init__(*args, **kwargs)

Overloaded function.

  1. __init__(self: PyFnAttribute.StringAttribute, value: str, tupleSize: int = 1) -> None

  2. __init__(self: PyFnAttribute.StringAttribute, data: dict, tupleSize: int = 1) -> None

  3. __init__(self: PyFnAttribute.StringAttribute, data: sequence, tupleSize: int = 1) -> None

getData()PyFnAttribute.ConstVector

Equivalent to StringAttribute.getNearestSample(0.0).

getNearestSample(sampleTime: float)PyFnAttribute.ConstVector

Returns a ConstVector containing samples for the sample time closest to the given sampleTime for this attribute. If sampleTime falls exactly between two sample values, the lower sample time is chosen.

getSamples()Dict[float, PyFnAttribute.ConstVector]

Returns a dict from sample time to ConstVector, containing all samples at all sample times for this attribute.

getValue(defaultValue: str = '', throwOnError: bool = True)str

Returns the first value from the time sample nearest to 0.0. If no value is present, if throwOnError is True then a RuntimeError is raised; otherwise defaultValue is returned.

Group Attributes

class FnAttribute.GroupAttribute

Bases: PyFnAttribute.Attribute

GEOLIB3 GroupAttribute

__init__(*args, **kwargs)

Overloaded function.

  1. __init__(self: PyFnAttribute.GroupAttribute, groupInherit: bool = True) -> None

  2. __init__(self: PyFnAttribute.GroupAttribute, children: sequence, groupInherit: bool = True) -> None

  3. __init__(self: PyFnAttribute.GroupAttribute, children: dict, groupInherit: bool = True) -> None

childList()list

Returns a list containing all child attributes in this group.

getChildByIndex(index: int)PyFnAttribute.Attribute

Returns the child attribute at the given index in this group, or None if index is out of range.

getChildByName(name: str)PyFnAttribute.Attribute

Returns the child attribute with the given name in this group, or None if there is no child with that name.

getChildName(index: int)str

Returns the name of the child at the given index, or an empty string if index is out of range.

getGroupInherit()bool

Returns whether this group has the groupInherit flag set.

getNumberOfChildren()int

Returns the number of children contained in the group.

writePython(stream: object)object

Writes the Python code required to reproduce this attribute to the given stream object, which is expected to provide a callable write attribute that accepts a str as an argument.

GroupBuilder

class FnAttribute.GroupBuilder

Bases: pybind11_builtins.pybind11_object

GEOLIB3 GroupBuilder

__init__(builderMode: int = 0)None

Initializes a GroupBuilder with the given builderMode, which must be one of GroupBuilderModeNormal or GroupBuilderModeStrict.

build(builderMode: int = 0)PyFnAttribute.GroupAttribute

Returns a new GroupAttribute with the contents of this builder. If builderMode is GroupBuilderBuildAndFlush, this builder is empty after this call.

deepUpdate(attr: PyFnAttribute.GroupAttribute)PyFnAttribute.GroupBuilder

Recursively updates the contents of the group builder with the attributes held within the given GroupAttribute. Groups are traversed until set operations can be applied at the leaves with are not GroupAttribute objects themselves.

delete(pathStr: str)None

Deletes the attribute with the given path. This has no effect if the path does not exist within the builder, or if the builder was created with GroupBuilderModeStrict.

reserve(count: int)PyFnAttribute.GroupBuilder

Reserves space for count attributes within this GroupBuilder.

set(*args, **kwargs)

Overloaded function.

  1. set(self: PyFnAttribute.GroupBuilder, pathStr: str, attr: PyFnAttribute.Attribute, groupInherit: bool = True) -> PyFnAttribute.GroupBuilder

Sets the value for the attribute identified by pathStr.

  1. set(self: PyFnAttribute.GroupBuilder, pathStr: str, value: int, groupInherit: bool = True) -> PyFnAttribute.GroupBuilder

Sets the value for the attribute identified by pathStr.

  1. set(self: PyFnAttribute.GroupBuilder, pathStr: str, value: float, groupInherit: bool = True) -> PyFnAttribute.GroupBuilder

Sets the value for the attribute identified by pathStr.

  1. set(self: PyFnAttribute.GroupBuilder, pathStr: str, value: float, groupInherit: bool = True) -> PyFnAttribute.GroupBuilder

Sets the value for the attribute identified by pathStr.

  1. set(self: PyFnAttribute.GroupBuilder, pathStr: str, value: str, groupInherit: bool = True) -> PyFnAttribute.GroupBuilder

Sets the value for the attribute identified by pathStr.

setGroupInherit(groupInherit: bool)PyFnAttribute.GroupBuilder

Sets the groupInherit flag for GroupAttributes produced by calling build() on this builder.

setWithUniqueName(*args, **kwargs)

Overloaded function.

  1. setWithUniqueName(self: PyFnAttribute.GroupBuilder, pathStr: str, attr: PyFnAttribute.Attribute, groupInherit: bool = True) -> PyFnAttribute.GroupBuilder

Sets the value for the attribute identified by pathStr. If an attribute already exists at this path, a unique name is chosen by adding an integer suffix.

  1. setWithUniqueName(self: PyFnAttribute.GroupBuilder, pathStr: str, value: int, groupInherit: bool = True) -> PyFnAttribute.GroupBuilder

Sets the value for the attribute identified by pathStr. If an attribute already exists at this path, a unique name is chosen by adding an integer suffix.

  1. setWithUniqueName(self: PyFnAttribute.GroupBuilder, pathStr: str, value: float, groupInherit: bool = True) -> PyFnAttribute.GroupBuilder

Sets the value for the attribute identified by pathStr. If an attribute already exists at this path, a unique name is chosen by adding an integer suffix.

  1. setWithUniqueName(self: PyFnAttribute.GroupBuilder, pathStr: str, value: float, groupInherit: bool = True) -> PyFnAttribute.GroupBuilder

Sets the value for the attribute identified by pathStr. If an attribute already exists at this path, a unique name is chosen by adding an integer suffix.

  1. setWithUniqueName(self: PyFnAttribute.GroupBuilder, pathStr: str, value: str, groupInherit: bool = True) -> PyFnAttribute.GroupBuilder

Sets the value for the attribute identified by pathStr. If an attribute already exists at this path, a unique name is chosen by adding an integer suffix.

sort()PyFnAttribute.GroupBuilder

Sorts the top-level attributes of the builder by name.

update(attr: PyFnAttribute.GroupAttribute)PyFnAttribute.GroupBuilder

Updates the contents of the builder with the attributes from the given GroupAttribute. Any new attributes with the same name as existing attributes replace the old ones. Existing attributes without matching new attributes are left intact.

Utility Functions

FnAttribute.DelimiterEncode(nameOrLocationPath: str)str

Encodes the given name or scene graph location path for use as an attribute name.

See

FnAttribute.DelimiterDecode()

FnAttribute.DelimiterDecode(encodedNameOrLocationPath: str)str

Decodes the given encoded name or scene graph location path that might have been used as an attribute name.

See

FnAttribute.DelimiterEncode()

FnAttribute.GetTotalSize()int

Returns the total memory currently allocated by the FnAttribute library.

FnAttribute.Util.RemoveTimeSamplesIfAllSame(arg0: PyFnAttribute.Attribute)PyFnAttribute.Attribute
FnAttribute.Util.RemoveTimeSamplesUnneededForShutter(arg0: PyFnAttribute.Attribute, arg1: float, arg2: float)PyFnAttribute.Attribute
FnAttribute.Util.ResampleAttrWithInterp(arg0: PyFnAttribute.Attribute, arg1: PyFnAttribute.DataAttribute)PyFnAttribute.Attribute

ScenegraphAttr

In Katana 4.5, the deprecated ScenegraphAttr type was removed. The ScenegraphAttr Porting Guide details how to switch over to using FnAttribute.