mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 12:54:40 +01:00
🐶 linter fixes
This commit is contained in:
parent
d237e5f54c
commit
67db5c123f
1 changed files with 25 additions and 74 deletions
|
|
@ -1,32 +1,32 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import os
|
||||
import copy
|
||||
"""Creator plugins for the create process."""
|
||||
import collections
|
||||
from typing import TYPE_CHECKING, Optional, Dict, Any
|
||||
import copy
|
||||
import os
|
||||
from abc import ABC, abstractmethod
|
||||
from typing import TYPE_CHECKING, Any, Dict, Optional
|
||||
from warnings import warn
|
||||
|
||||
from abc import ABC, abstractmethod
|
||||
|
||||
from ayon_core.settings import get_project_settings
|
||||
from ayon_core.lib import Logger, get_version_from_path
|
||||
from ayon_core.pipeline.compatibility import is_supporting_product_base_type
|
||||
from ayon_core.pipeline.plugin_discover import (
|
||||
deregister_plugin,
|
||||
deregister_plugin_path,
|
||||
discover,
|
||||
register_plugin,
|
||||
register_plugin_path,
|
||||
deregister_plugin,
|
||||
deregister_plugin_path
|
||||
)
|
||||
from ayon_core.pipeline.staging_dir import get_staging_dir_info, StagingDir
|
||||
from ayon_core.pipeline.compatibility import is_supporting_product_base_type
|
||||
from ayon_core.pipeline.staging_dir import StagingDir, get_staging_dir_info
|
||||
from ayon_core.settings import get_project_settings
|
||||
|
||||
from .constants import DEFAULT_VARIANT_VALUE
|
||||
from .product_name import get_product_name
|
||||
from .utils import get_next_versions_for_instances
|
||||
from .legacy_create import LegacyCreator
|
||||
from .product_name import get_product_name
|
||||
from .structures import CreatedInstance
|
||||
from .utils import get_next_versions_for_instances
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from ayon_core.lib import AbstractAttrDef
|
||||
|
||||
# Avoid cyclic imports
|
||||
from .context import CreateContext, UpdateData # noqa: F401
|
||||
|
||||
|
|
@ -70,7 +70,6 @@ class ProductConvertorPlugin(ABC):
|
|||
Returns:
|
||||
logging.Logger: Logger with name of the plugin.
|
||||
"""
|
||||
|
||||
if self._log is None:
|
||||
self._log = Logger.get_logger(self.__class__.__name__)
|
||||
return self._log
|
||||
|
|
@ -86,9 +85,8 @@ class ProductConvertorPlugin(ABC):
|
|||
|
||||
Returns:
|
||||
str: Converted identifier unique for all converters in host.
|
||||
"""
|
||||
|
||||
pass
|
||||
"""
|
||||
|
||||
@abstractmethod
|
||||
def find_instances(self):
|
||||
|
|
@ -98,14 +96,10 @@ class ProductConvertorPlugin(ABC):
|
|||
convert.
|
||||
"""
|
||||
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def convert(self):
|
||||
"""Conversion code."""
|
||||
|
||||
pass
|
||||
|
||||
@property
|
||||
def create_context(self):
|
||||
"""Quick access to create context.
|
||||
|
|
@ -113,7 +107,6 @@ class ProductConvertorPlugin(ABC):
|
|||
Returns:
|
||||
CreateContext: Context which initialized the plugin.
|
||||
"""
|
||||
|
||||
return self._create_context
|
||||
|
||||
@property
|
||||
|
|
@ -126,7 +119,6 @@ class ProductConvertorPlugin(ABC):
|
|||
Raises:
|
||||
UnavailableSharedData: When called out of collection phase.
|
||||
"""
|
||||
|
||||
return self._create_context.collection_shared_data
|
||||
|
||||
def add_convertor_item(self, label):
|
||||
|
|
@ -135,12 +127,10 @@ class ProductConvertorPlugin(ABC):
|
|||
Args:
|
||||
label (str): Label of item which will show in UI.
|
||||
"""
|
||||
|
||||
self._create_context.add_convertor_item(self.identifier, label)
|
||||
|
||||
def remove_convertor_item(self):
|
||||
"""Remove legacy item from create context when conversion finished."""
|
||||
|
||||
self._create_context.remove_convertor_item(self.identifier)
|
||||
|
||||
|
||||
|
|
@ -159,7 +149,6 @@ class BaseCreator(ABC):
|
|||
create_context (CreateContext): Context which initialized creator.
|
||||
headless (bool): Running in headless mode.
|
||||
"""
|
||||
|
||||
# Label shown in UI
|
||||
label = None
|
||||
group_label = None
|
||||
|
|
@ -223,7 +212,6 @@ class BaseCreator(ABC):
|
|||
Returns:
|
||||
Optional[dict[str, Any]]: Settings values or None.
|
||||
"""
|
||||
|
||||
settings = project_settings.get(category_name)
|
||||
if not settings:
|
||||
return None
|
||||
|
|
@ -269,7 +257,6 @@ class BaseCreator(ABC):
|
|||
Args:
|
||||
project_settings (dict[str, Any]): Project settings.
|
||||
"""
|
||||
|
||||
settings_category = self.settings_category
|
||||
if not settings_category:
|
||||
return
|
||||
|
|
@ -281,18 +268,17 @@ class BaseCreator(ABC):
|
|||
project_settings, settings_category, settings_name
|
||||
)
|
||||
if settings is None:
|
||||
self.log.debug("No settings found for {}".format(cls_name))
|
||||
self.log.debug(f"No settings found for {cls_name}")
|
||||
return
|
||||
|
||||
for key, value in settings.items():
|
||||
# Log out attributes that are not defined on plugin object
|
||||
# - those may be potential dangerous typos in settings
|
||||
if not hasattr(self, key):
|
||||
self.log.debug((
|
||||
"Applying settings to unknown attribute '{}' on '{}'."
|
||||
).format(
|
||||
self.log.debug(
|
||||
"Applying settings to unknown attribute '%' on '%'.",
|
||||
key, cls_name
|
||||
))
|
||||
)
|
||||
setattr(self, key, value)
|
||||
|
||||
def register_callbacks(self):
|
||||
|
|
@ -301,7 +287,6 @@ class BaseCreator(ABC):
|
|||
Default implementation does nothing. It can be overridden to register
|
||||
callbacks for creator.
|
||||
"""
|
||||
pass
|
||||
|
||||
@property
|
||||
def identifier(self):
|
||||
|
|
@ -322,8 +307,6 @@ class BaseCreator(ABC):
|
|||
def product_type(self):
|
||||
"""Family that plugin represents."""
|
||||
|
||||
pass
|
||||
|
||||
@property
|
||||
def product_base_type(self) -> Optional[str]:
|
||||
"""Base product type that plugin represents.
|
||||
|
|
@ -346,7 +329,6 @@ class BaseCreator(ABC):
|
|||
Returns:
|
||||
str: Name of a project.
|
||||
"""
|
||||
|
||||
return self.create_context.project_name
|
||||
|
||||
@property
|
||||
|
|
@ -356,7 +338,6 @@ class BaseCreator(ABC):
|
|||
Returns:
|
||||
Anatomy: Project anatomy object.
|
||||
"""
|
||||
|
||||
return self.create_context.project_anatomy
|
||||
|
||||
@property
|
||||
|
|
@ -368,13 +349,13 @@ class BaseCreator(ABC):
|
|||
|
||||
Default implementation use attributes in this order:
|
||||
- 'group_label' -> 'label' -> 'identifier'
|
||||
|
||||
|
||||
Keep in mind that 'identifier' uses 'product_base_type' by default.
|
||||
|
||||
Returns:
|
||||
str: Group label that can be used for grouping of instances in UI.
|
||||
Group label can be overridden by the instance itself.
|
||||
|
||||
|
||||
"""
|
||||
if self._cached_group_label is None:
|
||||
label = self.identifier
|
||||
|
|
@ -392,7 +373,6 @@ class BaseCreator(ABC):
|
|||
Returns:
|
||||
logging.Logger: Logger with name of the plugin.
|
||||
"""
|
||||
|
||||
if self._log is None:
|
||||
self._log = Logger.get_logger(self.__class__.__name__)
|
||||
return self._log
|
||||
|
|
@ -456,7 +436,6 @@ class BaseCreator(ABC):
|
|||
Args:
|
||||
instance (CreatedInstance): New created instance.
|
||||
"""
|
||||
|
||||
self.create_context.creator_adds_instance(instance)
|
||||
|
||||
def _remove_instance_from_context(self, instance):
|
||||
|
|
@ -469,7 +448,6 @@ class BaseCreator(ABC):
|
|||
Args:
|
||||
instance (CreatedInstance): Instance which should be removed.
|
||||
"""
|
||||
|
||||
self.create_context.creator_removed_instance(instance)
|
||||
|
||||
@abstractmethod
|
||||
|
|
@ -481,8 +459,6 @@ class BaseCreator(ABC):
|
|||
implementation
|
||||
"""
|
||||
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def collect_instances(self):
|
||||
"""Collect existing instances related to this creator plugin.
|
||||
|
|
@ -508,8 +484,6 @@ class BaseCreator(ABC):
|
|||
```
|
||||
"""
|
||||
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def update_instances(self, update_list):
|
||||
"""Store changes of existing instances so they can be recollected.
|
||||
|
|
@ -519,8 +493,6 @@ class BaseCreator(ABC):
|
|||
contain changed instance and it's changes.
|
||||
"""
|
||||
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def remove_instances(self, instances):
|
||||
"""Method called on instance removal.
|
||||
|
|
@ -533,14 +505,11 @@ class BaseCreator(ABC):
|
|||
removed.
|
||||
"""
|
||||
|
||||
pass
|
||||
|
||||
def get_icon(self):
|
||||
"""Icon of creator (product type).
|
||||
|
||||
Can return path to image file or awesome icon name.
|
||||
"""
|
||||
|
||||
return self.icon
|
||||
|
||||
def get_dynamic_data(
|
||||
|
|
@ -556,7 +525,6 @@ class BaseCreator(ABC):
|
|||
|
||||
These may be dynamically created based on current context of workfile.
|
||||
"""
|
||||
|
||||
return {}
|
||||
|
||||
def get_product_name(
|
||||
|
|
@ -633,15 +601,15 @@ class BaseCreator(ABC):
|
|||
and values are stored to metadata for future usage and for publishing
|
||||
purposes.
|
||||
|
||||
NOTE:
|
||||
Convert method should be implemented which should care about updating
|
||||
keys/values when plugin attributes change.
|
||||
Note:
|
||||
Convert method should be implemented which should care about
|
||||
updating keys/values when plugin attributes change.
|
||||
|
||||
Returns:
|
||||
list[AbstractAttrDef]: Attribute definitions that can be tweaked
|
||||
for created instance.
|
||||
"""
|
||||
|
||||
"""
|
||||
return self.instance_attr_defs
|
||||
|
||||
def get_attr_defs_for_instance(self, instance):
|
||||
|
|
@ -664,12 +632,10 @@ class BaseCreator(ABC):
|
|||
Raises:
|
||||
UnavailableSharedData: When called out of collection phase.
|
||||
"""
|
||||
|
||||
return self.create_context.collection_shared_data
|
||||
|
||||
def set_instance_thumbnail_path(self, instance_id, thumbnail_path=None):
|
||||
"""Set path to thumbnail for instance."""
|
||||
|
||||
self.create_context.thumbnail_paths_by_instance_id[instance_id] = (
|
||||
thumbnail_path
|
||||
)
|
||||
|
|
@ -690,7 +656,6 @@ class BaseCreator(ABC):
|
|||
Returns:
|
||||
dict[str, int]: Next versions by instance id.
|
||||
"""
|
||||
|
||||
return get_next_versions_for_instances(
|
||||
self.create_context.project_name, instances
|
||||
)
|
||||
|
|
@ -757,7 +722,6 @@ class Creator(BaseCreator):
|
|||
int: Order in which is creator shown (less == earlier). By default
|
||||
is using Creator's 'order' or processing.
|
||||
"""
|
||||
|
||||
return self.order
|
||||
|
||||
@abstractmethod
|
||||
|
|
@ -772,11 +736,9 @@ class Creator(BaseCreator):
|
|||
pre_create_data(dict): Data based on pre creation attributes.
|
||||
Those may affect how creator works.
|
||||
"""
|
||||
|
||||
# instance = CreatedInstance(
|
||||
# self.product_type, product_name, instance_data
|
||||
# )
|
||||
pass
|
||||
|
||||
def get_description(self):
|
||||
"""Short description of product type and plugin.
|
||||
|
|
@ -784,7 +746,6 @@ class Creator(BaseCreator):
|
|||
Returns:
|
||||
str: Short description of product type.
|
||||
"""
|
||||
|
||||
return self.description
|
||||
|
||||
def get_detail_description(self):
|
||||
|
|
@ -795,7 +756,6 @@ class Creator(BaseCreator):
|
|||
Returns:
|
||||
str: Detailed description of product type for artist.
|
||||
"""
|
||||
|
||||
return self.detailed_description
|
||||
|
||||
def get_default_variants(self):
|
||||
|
|
@ -809,7 +769,6 @@ class Creator(BaseCreator):
|
|||
Returns:
|
||||
list[str]: Whisper variants for user input.
|
||||
"""
|
||||
|
||||
return copy.deepcopy(self.default_variants)
|
||||
|
||||
def get_default_variant(self, only_explicit=False):
|
||||
|
|
@ -829,7 +788,6 @@ class Creator(BaseCreator):
|
|||
Returns:
|
||||
str: Variant value.
|
||||
"""
|
||||
|
||||
if only_explicit or self._default_variant:
|
||||
return self._default_variant
|
||||
|
||||
|
|
@ -850,7 +808,6 @@ class Creator(BaseCreator):
|
|||
Returns:
|
||||
str: Variant value.
|
||||
"""
|
||||
|
||||
return self.get_default_variant()
|
||||
|
||||
def _set_default_variant_wrap(self, variant):
|
||||
|
|
@ -862,7 +819,6 @@ class Creator(BaseCreator):
|
|||
Args:
|
||||
variant (str): New default variant value.
|
||||
"""
|
||||
|
||||
self._default_variant = variant
|
||||
|
||||
default_variant = property(
|
||||
|
|
@ -1012,7 +968,6 @@ class AutoCreator(BaseCreator):
|
|||
|
||||
def remove_instances(self, instances):
|
||||
"""Skip removal."""
|
||||
pass
|
||||
|
||||
|
||||
def discover_creator_plugins(*args, **kwargs):
|
||||
|
|
@ -1036,9 +991,7 @@ def discover_legacy_creator_plugins():
|
|||
plugin.apply_settings(project_settings)
|
||||
except Exception:
|
||||
log.warning(
|
||||
"Failed to apply settings to creator {}".format(
|
||||
plugin.__name__
|
||||
),
|
||||
"Failed to apply settings to creator %s", plugin.__name__,
|
||||
exc_info=True
|
||||
)
|
||||
return plugins
|
||||
|
|
@ -1055,7 +1008,6 @@ def get_legacy_creator_by_name(creator_name, case_sensitive=False):
|
|||
Returns:
|
||||
Creator: Return first matching plugin or `None`.
|
||||
"""
|
||||
|
||||
# Lower input creator name if is not case sensitive
|
||||
if not case_sensitive:
|
||||
creator_name = creator_name.lower()
|
||||
|
|
@ -1127,7 +1079,6 @@ def cache_and_get_instances(creator, shared_key, list_instances_func):
|
|||
dict[str, dict[str, Any]]: Cached instances by creator identifier from
|
||||
result of passed function.
|
||||
"""
|
||||
|
||||
if shared_key not in creator.collection_shared_data:
|
||||
value = collections.defaultdict(list)
|
||||
for instance in list_instances_func():
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue