Skip to content
weSkelDOCUMENTATION
Documentation/API reference/ContainerBase

ContainerBase

Metadata and plugs shared by containers, sets and the DAG branch.

ClassAPI 2.0Base
objectNodeDGNodeContainerBase
from weSkel.src.core.node.abstract.container_base.lib import ContainerBase

In Maya or in a Python script run by Maya / initialized mayapy, with weSkel available. Importing om is only required when using OpenMaya types in your own code.

Item Value
Class ContainerBase
Module weSkel.src.core.node.abstract.container_base.lib
Direct parent DGNode
Represented direct descendants DAGNode, ObjectSet
Own members 0 Python properties + 21 spec properties; 0 methods defined or overridden here.

Parent members remain available. Each section includes collapsible tables grouped by parent class, with links to the full contracts. Private methods and standard Python mechanisms are outside this inventory.

Signature : ContainerBase(node) → ContainerBase or an already registered compatible subclass.

Parameter Accepted types Default
node str, om.MObject, om.MObjectHandle, om.MFnDependencyNode Required

Wraps an existing node or stages a wrapper if the name is unresolved; creates no node. For another wrapper, pass other.mobject. The shared registry preserves identity and may return the existing concrete wrapper. Incompatible input can raise TypeError, and identity conflicts RuntimeError.

Python properties defined on this class. om means maya.api.OpenMaya. Spec-generated properties are detailed in the following section.

No additional Python properties: this class adds the spec properties below and inherits its parent properties.

Properties inherited from DGNode15
Property Return type Access Description
dep_fn om.MFnDependencyNode R Live function set; unattached object when the node is missing.
uuid str | None R Live UUID, or the last staged value if still available.
name str | None R/W Live name, otherwise staged name.
absolute_name str | None R Absolute namespace name from MFnDependencyNode.absoluteName(); None without a node.
stripped_name str | None R/W Name without its namespace, or None when unnamed.
namespace str | None R/W Normalized namespace such as a:b; None at the root.
plugs Plugs | None R Live node plug manager; None otherwise.
is_valid_dep_fn bool R Function-set compatibility with the current MObject.
is_default_node bool R Whether this is a Maya default node; False without a node.
is_from_referenced_file bool R Whether the node comes from a referenced file; False without a node.
is_locked bool R/W Node lock, separate from plug locks.
is_shared bool R Shared state reported by Maya; False without a node.
plugin_name str | None R Associated Maya plugin name, possibly an empty string; None without a node.
affect_animation bool R Result of MFnDependencyNode.affectsAnimation(); False without a node.
type str | None R/W Live native type or staged type.
Properties inherited from Node10
Property Return type Access Description
mobject om.MObject R/W Live Maya object, or a null object.
mobject_handle om.MObjectHandle R/W Handle associated with the node.
api_type int | None R Maya API type identifier.
api_type_str str R API type name, for example "kTime".
exists bool R The wrapper currently has a live node.
is_null bool R The returned Maya object is null.
is_alive bool R The object exists with a valid, live handle.
is_valid_handle bool R Validity of the stored handle.
is_dag_node bool R Compatibility with om.MFn.kDagNode.
hash_code int R Maya handle hash.

Python and Maya names are reproduced exactly. Declared kind, Python return and declared default are different facts. A spec default is not necessarily the live node value, nor a value automatically written at creation.

The returns below describe this class descriptors; live observations use a network, container, transform, mesh or skinCluster as appropriate. Some plugs depend on the concrete type. A subclass may override a member and its write capabilities. Proxy names identify current results: do not import their private classes.

Form Usage
_ValuePlugProxy .value reads the value; .plug gives a Plug, .mplug an MPlug.
IndexedPathProxy Indexed access object. Resolution has limitations at this checkpoint: member cards provide verified alternatives using node.plugs[...].
Flags / writing stored, input, output, connectable describe the replay contract. They do not guarantee a native plug is editable in its current state.

For writes where failure must be checked, use the Plug explicitly and verify live state: some descriptor setters can stage a value without propagating a Maya write error.

Property Maya plug Returns
black_box blackBox _ValuePlugProxy · .value: bool
border_connections borderConnections list[str]
creator creator _ValuePlugProxy · .value: str
creation_date creationDate _ValuePlugProxy · .value: str
custom_treatment customTreatment _ValuePlugProxy · .value: str
hyper_layout hyperLayout None
icon_name iconName _ValuePlugProxy · .value: str
is_collapsed isCollapsed _ValuePlugProxy · .value: bool
is_hierarchical_connection isHierarchicalConnection TypedArrayProxy
rmb_command rmbCommand _ValuePlugProxy · .value: str
template_name templateName _ValuePlugProxy · .value: str
template_path templatePath _ValuePlugProxy · .value: str
template_version templateVersion _ValuePlugProxy · .value: int
container_type containerType _ValuePlugProxy · .value: str
ui_treatment uiTreatment _ValuePlugProxy · .value: int
view_mode viewMode _ValuePlugProxy · .value: int
view_name viewName _ValuePlugProxy · .value: str
published_node_info publishedNodeInfo ArrayCompoundProxy
published_node publishedNodeInfo[].publishedNode IndexedPathProxy
is_hierarchical_node publishedNodeInfo[].isHierarchicalNode IndexedPathProxy
published_node_type publishedNodeInfo[].publishedNodeType IndexedPathProxy

node.black_boxRead / write

Maya container black-box presentation.

Item Type / behavior
Declared Maya path blackBox
Property return _ValuePlugProxy · .value: bool
Declared spec kind numeric:bool
Declared default False
Flags input, output, connectable, stored
Read the value node.black_box.value
Assignment node.black_box = value

node.border_connectionsConnections

Container boundary connection data.

Item Type / behavior
Declared Maya path borderConnections
Property return list[str]
Declared spec kind array:message
Declared default ()
Flags array, input, output, connectable

The returned list is not a guaranteed inventory of connected nodes. Inspect sources and destinations through node.plugs[...] for actual connections.

node.creatorRead / write

Container creator metadata.

Item Type / behavior
Declared Maya path creator
Property return _ValuePlugProxy · .value: str
Declared spec kind typed:string
Declared default ''
Flags input, output, connectable, stored
Read the value node.creator.value
Assignment node.creator = value

node.creation_dateRead / write

Creation date metadata.

Item Type / behavior
Declared Maya path creationDate
Property return _ValuePlugProxy · .value: str
Declared spec kind typed:string
Declared default ''
Flags input, output, connectable, stored
Read the value node.creation_date.value
Assignment node.creation_date = value

node.custom_treatmentRead / write

Custom container treatment.

Item Type / behavior
Declared Maya path customTreatment
Property return _ValuePlugProxy · .value: str
Declared spec kind typed:string
Declared default ''
Flags input, output, connectable, stored
Read the value node.custom_treatment.value
Assignment node.custom_treatment = value

node.hyper_layoutConnections

Connection to the Hypergraph layout.

Item Type / behavior
Declared Maya path hyperLayout
Property return None
Declared spec kind message
Declared default None
Flags input, output, connectable, hidden

The descriptor setter raises AttributeError. Manage connections with node.plugs[...]; this property does not return the connected node.

node.icon_nameRead / write

Icon name associated with the container.

Item Type / behavior
Declared Maya path iconName
Property return _ValuePlugProxy · .value: str
Declared spec kind typed:string
Declared default ''
Flags input, output, connectable, stored
Read the value node.icon_name.value
Assignment node.icon_name = value

node.is_collapsedRead / write

Collapsed container state in Maya views.

Item Type / behavior
Declared Maya path isCollapsed
Property return _ValuePlugProxy · .value: bool
Declared spec kind numeric:bool
Declared default False
Flags input, output, connectable, stored, hidden
Read the value node.is_collapsed.value
Assignment node.is_collapsed = value

node.is_hierarchical_connectionRead / write

Hierarchical connection flags.

Item Type / behavior
Declared Maya path isHierarchicalConnection
Property return TypedArrayProxy
Declared spec kind array:numeric:bool
Declared default ()
Flags array, input, output, stored, hidden
Plug access node.is_hierarchical_connection.plug
Logical element node.is_hierarchical_connection.element_plug(i).value

node.rmb_commandRead / write

Container context-menu command.

Item Type / behavior
Declared Maya path rmbCommand
Property return _ValuePlugProxy · .value: str
Declared spec kind typed:string
Declared default ''
Flags input, output, stored
Read the value node.rmb_command.value
Assignment node.rmb_command = value

node.template_nameRead / write

Container template name.

Item Type / behavior
Declared Maya path templateName
Property return _ValuePlugProxy · .value: str
Declared spec kind typed:string
Declared default ''
Flags input, output, connectable, stored
Read the value node.template_name.value
Assignment node.template_name = value

node.template_pathRead / write

Container template path.

Item Type / behavior
Declared Maya path templatePath
Property return _ValuePlugProxy · .value: str
Declared spec kind typed:string
Declared default ''
Flags input, output, connectable, stored
Read the value node.template_path.value
Assignment node.template_path = value

node.template_versionRead / write

Container template version.

Item Type / behavior
Declared Maya path templateVersion
Property return _ValuePlugProxy · .value: int
Declared spec kind numeric:int
Declared default 0
Flags input, output, connectable, stored
Read the value node.template_version.value
Assignment node.template_version = value

node.container_typeRead / write

Container type metadata.

Item Type / behavior
Declared Maya path containerType
Property return _ValuePlugProxy · .value: str
Declared spec kind typed:string
Declared default ''
Flags input, output, connectable, stored
Read the value node.container_type.value
Assignment node.container_type = value

node.ui_treatmentRead / write

Container presentation mode.

Item Type / behavior
Declared Maya path uiTreatment
Property return _ValuePlugProxy · .value: int
Declared spec kind enum
Declared default 0
Flags input, output, connectable, stored
Read the value node.ui_treatment.value
Assignment node.ui_treatment = value

node.view_modeRead / write

Container view mode.

Item Type / behavior
Declared Maya path viewMode
Property return _ValuePlugProxy · .value: int
Declared spec kind enum
Declared default 2
Flags input, output, connectable, stored
Read the value node.view_mode.value
Assignment node.view_mode = value

node.view_nameRead / write

Container view name.

Item Type / behavior
Declared Maya path viewName
Property return _ValuePlugProxy · .value: str
Declared spec kind typed:string
Declared default ''
Flags input, output, connectable, stored
Read the value node.view_name.value
Assignment node.view_name = value

node.published_node_infoStructured access

Array of published-node information.

Item Type / behavior
Declared Maya path publishedNodeInfo
Property return ArrayCompoundProxy
Declared spec kind array:compound
Declared default None
Flags array, input, output, connectable, hidden
Plug access node.published_node_info.plug

The property returns a structure. Edit an explicit child or use Plug operations; do not replace the proxy with a Python assignment.

node.published_nodeLimited access

Connection to the published node at a given index.

Item Type / behavior
Declared Maya path publishedNodeInfo[].publishedNode
Property return IndexedPathProxy
Declared spec kind message
Declared default None
Flags input, output, connectable
Indices 1 logical index(es), in the order of [] in the Maya path.
Verified alternative · returns a Plug node.plugs["publishedNodeInfo"][i1]["publishedNode"]

Current limitation: descriptor resolution raises AttributeError in the verified case. Use the explicit path above with logical indices. The resulting Plug can then read .value or manage connections.

node.is_hierarchical_nodeLimited access

Hierarchical flag of a published node.

Item Type / behavior
Declared Maya path publishedNodeInfo[].isHierarchicalNode
Property return IndexedPathProxy
Declared spec kind numeric:bool
Declared default False
Flags input, output, stored, hidden
Indices 1 logical index(es), in the order of [] in the Maya path.
Verified alternative · returns a Plug node.plugs["publishedNodeInfo"][i1]["isHierarchicalNode"]

Current limitation: descriptor resolution raises AttributeError in the verified case. Use the explicit path above with logical indices. The resulting Plug can then read .value or manage connections.

node.published_node_typeLimited access

Declared type of a published node.

Item Type / behavior
Declared Maya path publishedNodeInfo[].publishedNodeType
Property return IndexedPathProxy
Declared spec kind typed:string
Declared default ''
Flags input, output, stored, hidden
Indices 1 logical index(es), in the order of [] in the Maya path.
Verified alternative · returns a Plug node.plugs["publishedNodeInfo"][i1]["publishedNodeType"]

Current limitation: descriptor resolution raises AttributeError in the verified case. Use the explicit path above with logical indices. The resulting Plug can then read .value or manage connections.

Specs inherited from DGNode6
Property Maya plug Returns Description
message message None Node message plug; used for connections, with no numeric value.
frozen frozen _ValuePlugProxy · .value: bool Native evaluation freeze state.
is_historically_interesting isHistoricallyInteresting _ValuePlugProxy · .value: int Node interest level in Maya history.
bin_membership binMembership _ValuePlugProxy · .value: str Maya bin membership.
caching_enabled caching _ValuePlugProxy · .value: bool Native node caching switch.
caching_node_state nodeState _ValuePlugProxy · .value: int Native nodeState evaluation state.

No new public methods on this class. Use inherited methods below; an abstract base does not provide a new creatable Maya type.

Methods inherited from DGNode7
Method Returns Description
create None Creates a missing node; does nothing if it already exists.
delete None Disconnects live connections, detaches the wrapper and deletes the node.
snapshot DGSnapshot Captures and stores an identity and spec-driven SVD dictionary.
snapshot_svd SVDSnapshot Captures Source / Value / Destinations for the requested list.
svd SVDView Returns a read-only live view of source, value and destinations; it is not a frozen capture.
finalize None Applies all sources, then undriven values, then destinations; enabled FSET dispatch follows.
clear_attr_cache None Clears this instance attribute cache; does not delete nodes or clear the global wrapper registry.
Methods inherited from Node2
Method Returns Description
has_fn(fn_type) bool Test compatibility with a Maya function set.
clear_node_registry() None Detach registered wrappers and clear their shared registry.
Attribute Type Value / role
NODE_TYPE str | None ""
SPEC_LAYERS list[SpecLayer] Parent layers + get_container_base_specs_all

Attributes defined or overridden here. NODE_REGISTRY is inherited from Node. COMPATIBLE_MAYA_FN_TYPES is inherited; for a class with explicit NODE_TYPE, its use also depends on the compatibility policy described under Constructor.

The ContainerBaseSnapshot types exported by these modules are TypedDict descriptions, not classes to instantiate for capture. Use node.snapshot().

Point Behavior
Identity The wrapper follows the Maya object; a replacement with the same name is not the same node.
Reading Live reads take priority; check exists before native operations.
Specs Describe existing plugs; do not automatically add Maya attributes.
Examples The demonstration creates and deletes only its own nodes with a random name suffix.

Self-contained example for the Maya Python Script Editor. To run it in mayapy, initialize maya.standalone before this block and shut it down afterwards, as shown in the Node.

from uuid import uuid4
from weSkel.src.core.node.abstract.container_base.lib import ContainerBase
from weSkel.src.core.node.dg.object_set.lib import ObjectSet
node = ObjectSet("api_container_" + uuid4().hex[:8])
try:
node.create()
assert ContainerBase(node.mobject) is node
node.creator = "API example"
assert node.creator.value == "API example"
print("ContainerBase: inherited metadata OK")
finally:
node.delete(snapshot=False)

Expected result : ContainerBase: inherited metadata OK. Demonstration nodes are removed in finally.

SDK checkpoint 87c3486 reference. Inventory and examples checked against source under Maya 2025.3 and 2026.3; this does not validate the compiled package.