package documentation

Mixins for UaObject and its subclasses.

Mixins add functionality to a component, skill, method, etc. by inheriting from them alongside the base class. They are grouped by how essential they are.

Note: Inheritance order matters: mixins come first, the base class comes last.

Required functionality

Every BaseComponent needs to implement the AbstractUaLogger interface. Use one of these mixins (never both) or implement the interface yourself:

Optional functionality

These mixins are only needed if your class uses the corresponding feature. For example, not every component has attributes, but if yours does, add the matching mixin.

Containers

If your object has variables (UaVariable) or resources (Resource) in one of the standard containers, add the mixin for that container:

Optional typing

These mixins add type hints and runtime type checking for child objects of BaseComponent and BaseMachine. Nothing depends on them, but we highly recommend them for a better developer experience.

Module description_mixin Mixin for initializing the OPC UA description of UaObject using their Python docstrings.
Module lockable_mixin Mixin for providing a Lock to an UaObject.
Module notification_mixins Mixins providing standard AbstractUaLogger implementations for BaseMachineryItem. Use at most one.
Module parent_mixin (Optional) Mixin for typing the parent of an UaObject.
Module requirements_mixin Mixin providing requirement/dependency management capabilities for UaObject.
Module skill_logic_mixins State machine logic for both finite & continuous skills.
Module spatial_object_mixin Mixins related to OPC UA spatial objects (Relative Spatial Location information model).
Module ua_object_container_mixins Mixins for various UaObjectContainer containing UaObject.
Module ua_variable_container_mixins Generic mixins for providing an UaObject with Attributes, Monitoring, ParameterSet and FinalResultData.