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
|