Skip to content

utils

Utility functions for traits.

get_available_traits(addons_manager=None)

Get available traits from active addons.

Parameters:

Name Type Description Default
addons_manager Optional[AddonsManager]

Addons manager instance. If not provided, a new one will be created. Within pyblish plugins, you can use an already collected instance of AddonsManager from context context.data["ayonAddonsManager"].

None

Returns:

Type Description
Optional[list[TraitBase]]

list[TraitBase]: List of available traits.

Source code in client/ayon_core/pipeline/traits/utils.py
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
def get_available_traits(
        addons_manager: Optional[AddonsManager] = None
) -> Optional[list[TraitBase]]:
    """Get available traits from active addons.

    Args:
        addons_manager (Optional[AddonsManager]): Addons manager instance.
            If not provided, a new one will be created. Within pyblish
            plugins, you can use an already collected instance of
            AddonsManager from context `context.data["ayonAddonsManager"]`.

    Returns:
        list[TraitBase]: List of available traits.

    """
    if addons_manager is None:
        # Create a new instance of AddonsManager
        addons_manager = AddonsManager()

    # Get active addons
    enabled_addons = addons_manager.get_enabled_addons()
    traits = []
    for addon in enabled_addons:
        if not issubclass(type(addon), ITraits):
            # Skip addons not providing traits
            continue
        # Get traits from addon
        addon_traits = addon.get_addon_traits()
        if addon_traits:
            # Add traits to a list
            for trait in addon_traits:
                if trait not in traits:
                    traits.append(trait)

    return traits