ayon-core/server_addon/maya/server/settings/imageio.py
Jakub Trllo 2b37b8af48
AYON: Addon settings in OpenPype (#5347)
* copied addons from 'ayon-addon-settings'

* added AE, photoshop and harmony addon

* moved openpype to subfolder

* cleanup repository files

* updated create package script and README.md

* formatting fixes

* added cli flags to be able keep server structure

* print progress and output dir

* another formatting fixes
2023-07-26 14:08:42 +02:00

126 lines
3.6 KiB
Python

"""Providing models and setting values for image IO in Maya.
Note: Names were changed to get rid of the versions in class names.
"""
from pydantic import Field, validator
from ayon_server.settings import BaseSettingsModel, ensure_unique_names
class ImageIOConfigModel(BaseSettingsModel):
override_global_config: bool = Field(
False,
title="Override global OCIO config"
)
filepath: list[str] = Field(
default_factory=list,
title="Config path"
)
class ImageIOFileRuleModel(BaseSettingsModel):
name: str = Field("", title="Rule name")
pattern: str = Field("", title="Regex pattern")
colorspace: str = Field("", title="Colorspace name")
ext: str = Field("", title="File extension")
class ImageIOFileRulesModel(BaseSettingsModel):
activate_host_rules: bool = Field(False)
rules: list[ImageIOFileRuleModel] = Field(
default_factory=list,
title="Rules"
)
@validator("rules")
def validate_unique_outputs(cls, value):
ensure_unique_names(value)
return value
class ColorManagementPreferenceV2Model(BaseSettingsModel):
"""Color Management Preference v2 (Maya 2022+)."""
_layout = "expanded"
enabled: bool = Field(True, title="Use Color Management Preference v2")
renderSpace: str = Field(title="Rendering Space")
displayName: str = Field(title="Display")
viewName: str = Field(title="View")
class ColorManagementPreferenceModel(BaseSettingsModel):
"""Color Management Preference (legacy)."""
_layout = "expanded"
renderSpace: str = Field(title="Rendering Space")
viewTransform: str = Field(title="Viewer Transform ")
class WorkfileImageIOModel(BaseSettingsModel):
enabled: bool = Field(True, title="Enabled")
renderSpace: str = Field(title="Rendering Space")
displayName: str = Field(title="Display")
viewName: str = Field(title="View")
class ImageIOSettings(BaseSettingsModel):
"""Maya color management project settings.
Todo: What to do with color management preferences version?
"""
_isGroup: bool = True
activate_host_color_management: bool = Field(
True, title="Enable Color Management"
)
ocio_config: ImageIOConfigModel = Field(
default_factory=ImageIOConfigModel,
title="OCIO config"
)
file_rules: ImageIOFileRulesModel = Field(
default_factory=ImageIOFileRulesModel,
title="File Rules"
)
workfile: WorkfileImageIOModel = Field(
default_factory=WorkfileImageIOModel,
title="Workfile"
)
# Deprecated
colorManagementPreference_v2: ColorManagementPreferenceV2Model = Field(
default_factory=ColorManagementPreferenceV2Model,
title="Color Management Preference v2 (Maya 2022+)"
)
colorManagementPreference: ColorManagementPreferenceModel = Field(
default_factory=ColorManagementPreferenceModel,
title="Color Management Preference (legacy)"
)
DEFAULT_IMAGEIO_SETTINGS = {
"activate_host_color_management": True,
"ocio_config": {
"override_global_config": False,
"filepath": []
},
"file_rules": {
"activate_host_rules": False,
"rules": []
},
"workfile": {
"enabled": False,
"renderSpace": "ACES - ACEScg",
"displayName": "ACES",
"viewName": "sRGB"
},
"colorManagementPreference_v2": {
"enabled": True,
"renderSpace": "ACEScg",
"displayName": "sRGB",
"viewName": "ACES 1.0 SDR-video"
},
"colorManagementPreference": {
"renderSpace": "scene-linear Rec 709/sRGB",
"viewTransform": "sRGB gamma"
}
}