Merge branch 'develop' into enhancement/AY-5538_workfile-increment-in-one-go

This commit is contained in:
Kayla Man 2024-06-03 17:32:04 +08:00
commit 1b5185a673
596 changed files with 4548 additions and 3170 deletions

View file

@ -2,7 +2,11 @@ from typing import Any
from ayon_server.addons import BaseServerAddon
from .settings import CoreSettings, DEFAULT_VALUES
from .settings import (
CoreSettings,
DEFAULT_VALUES,
convert_settings_overrides,
)
class CoreAddon(BaseServerAddon):
@ -17,47 +21,8 @@ class CoreAddon(BaseServerAddon):
source_version: str,
overrides: dict[str, Any],
) -> dict[str, Any]:
self._convert_imagio_configs_0_3_1(overrides)
convert_settings_overrides(source_version, overrides)
# Use super conversion
return await super().convert_settings_overrides(
source_version, overrides
)
def _convert_imagio_configs_0_3_1(self, overrides):
"""Imageio config settings did change to profiles since 0.3.1. ."""
imageio_overrides = overrides.get("imageio") or {}
if (
"ocio_config" not in imageio_overrides
or "filepath" not in imageio_overrides["ocio_config"]
):
return
ocio_config = imageio_overrides.pop("ocio_config")
filepath = ocio_config["filepath"]
if not filepath:
return
first_filepath = filepath[0]
ocio_config_profiles = imageio_overrides.setdefault(
"ocio_config_profiles", []
)
base_value = {
"type": "builtin_path",
"product_name": "",
"host_names": [],
"task_names": [],
"task_types": [],
"custom_path": "",
"builtin_path": "{BUILTIN_OCIO_ROOT}/aces_1.2/config.ocio"
}
if first_filepath in (
"{BUILTIN_OCIO_ROOT}/aces_1.2/config.ocio",
"{BUILTIN_OCIO_ROOT}/nuke-default/config.ocio",
):
base_value["type"] = "builtin_path"
base_value["builtin_path"] = first_filepath
else:
base_value["type"] = "custom_path"
base_value["custom_path"] = first_filepath
ocio_config_profiles.append(base_value)

View file

@ -1,7 +1,10 @@
from .main import CoreSettings, DEFAULT_VALUES
from .conversion import convert_settings_overrides
__all__ = (
"CoreSettings",
"DEFAULT_VALUES",
"convert_settings_overrides",
)

View file

@ -0,0 +1,86 @@
import copy
from typing import Any
from .publish_plugins import DEFAULT_PUBLISH_VALUES
def _convert_imageio_configs_0_3_1(overrides):
"""Imageio config settings did change to profiles since 0.3.1. ."""
imageio_overrides = overrides.get("imageio") or {}
if (
"ocio_config" not in imageio_overrides
or "filepath" not in imageio_overrides["ocio_config"]
):
return
ocio_config = imageio_overrides.pop("ocio_config")
filepath = ocio_config["filepath"]
if not filepath:
return
first_filepath = filepath[0]
ocio_config_profiles = imageio_overrides.setdefault(
"ocio_config_profiles", []
)
base_value = {
"type": "builtin_path",
"product_name": "",
"host_names": [],
"task_names": [],
"task_types": [],
"custom_path": "",
"builtin_path": "{BUILTIN_OCIO_ROOT}/aces_1.2/config.ocio"
}
if first_filepath in (
"{BUILTIN_OCIO_ROOT}/aces_1.2/config.ocio",
"{BUILTIN_OCIO_ROOT}/nuke-default/config.ocio",
):
base_value["type"] = "builtin_path"
base_value["builtin_path"] = first_filepath
else:
base_value["type"] = "custom_path"
base_value["custom_path"] = first_filepath
ocio_config_profiles.append(base_value)
def _convert_validate_version_0_3_3(publish_overrides):
"""ValidateVersion plugin changed in 0.3.3."""
if "ValidateVersion" not in publish_overrides:
return
validate_version = publish_overrides["ValidateVersion"]
# Already new settings
if "plugin_state_profiles" in validate_version:
return
# Use new default profile as base
profile = copy.deepcopy(
DEFAULT_PUBLISH_VALUES["ValidateVersion"]["plugin_state_profiles"][0]
)
# Copy values from old overrides to new overrides
for key in {
"enabled",
"optional",
"active",
}:
if key not in validate_version:
continue
profile[key] = validate_version.pop(key)
validate_version["plugin_state_profiles"] = [profile]
def _conver_publish_plugins(overrides):
if "publish" not in overrides:
return
_convert_validate_version_0_3_3(overrides["publish"])
def convert_settings_overrides(
source_version: str,
overrides: dict[str, Any],
) -> dict[str, Any]:
_convert_imageio_configs_0_3_1(overrides)
_conver_publish_plugins(overrides)
return overrides

View file

@ -59,7 +59,7 @@ class CollectFramesFixDefModel(BaseSettingsModel):
)
class ValidateOutdatedContainersProfile(BaseSettingsModel):
class PluginStateByHostModelProfile(BaseSettingsModel):
_layout = "expanded"
# Filtering
host_names: list[str] = SettingsField(
@ -72,17 +72,12 @@ class ValidateOutdatedContainersProfile(BaseSettingsModel):
active: bool = SettingsField(True, title="Active")
class ValidateOutdatedContainersModel(BaseSettingsModel):
"""Validate if Publishing intent was selected.
It is possible to disable validation for specific publishing context
with profiles.
"""
class PluginStateByHostModel(BaseSettingsModel):
_isGroup = True
plugin_state_profiles: list[ValidateOutdatedContainersProfile] = SettingsField(
plugin_state_profiles: list[PluginStateByHostModelProfile] = SettingsField(
default_factory=list,
title="Plugin enable state profiles",
description="Change plugin state based on host name."
)
@ -563,7 +558,7 @@ class ExtractBurninProfile(BaseSettingsModel):
_layout = "expanded"
product_types: list[str] = SettingsField(
default_factory=list,
title="Produt types"
title="Product types"
)
hosts: list[str] = SettingsField(
default_factory=list,
@ -793,12 +788,16 @@ class PublishPuginsModel(BaseSettingsModel):
default_factory=ValidateBaseModel,
title="Validate Editorial Asset Name"
)
ValidateVersion: ValidateBaseModel = SettingsField(
default_factory=ValidateBaseModel,
title="Validate Version"
ValidateVersion: PluginStateByHostModel = SettingsField(
default_factory=PluginStateByHostModel,
title="Validate Version",
description=(
"Validate that product version to integrate"
" is newer than latest version in AYON."
)
)
ValidateOutdatedContainers: ValidateOutdatedContainersModel = SettingsField(
default_factory=ValidateOutdatedContainersModel,
ValidateOutdatedContainers: PluginStateByHostModel = SettingsField(
default_factory=PluginStateByHostModel,
title="Validate Containers"
)
ValidateIntent: ValidateIntentModel = SettingsField(
@ -882,9 +881,21 @@ DEFAULT_PUBLISH_VALUES = {
"active": True
},
"ValidateVersion": {
"enabled": True,
"optional": False,
"active": True
"plugin_state_profiles": [
{
"host_names": [
"aftereffects",
"blender",
"houdini",
"maya",
"nuke",
"photoshop",
],
"enabled": True,
"optional": False,
"active": True
}
]
},
"ValidateOutdatedContainers": {
"plugin_state_profiles": [