mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 16:34:53 +01:00
Merge branch 'develop' into bugfix/maya-vrscene-loader-fixes
This commit is contained in:
commit
4a0597bdb2
525 changed files with 27053 additions and 389709 deletions
|
|
@ -5,6 +5,8 @@ from .constants import (
|
|||
PROJECT_ANATOMY_KEY,
|
||||
LOCAL_SETTING_KEY,
|
||||
|
||||
LEGACY_SETTINGS_VERSION,
|
||||
|
||||
SCHEMA_KEY_SYSTEM_SETTINGS,
|
||||
SCHEMA_KEY_PROJECT_SETTINGS,
|
||||
|
||||
|
|
@ -37,6 +39,8 @@ __all__ = (
|
|||
"PROJECT_ANATOMY_KEY",
|
||||
"LOCAL_SETTING_KEY",
|
||||
|
||||
"LEGACY_SETTINGS_VERSION",
|
||||
|
||||
"SCHEMA_KEY_SYSTEM_SETTINGS",
|
||||
"SCHEMA_KEY_PROJECT_SETTINGS",
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@ PROJECT_SETTINGS_KEY = "project_settings"
|
|||
PROJECT_ANATOMY_KEY = "project_anatomy"
|
||||
LOCAL_SETTING_KEY = "local_settings"
|
||||
|
||||
LEGACY_SETTINGS_VERSION = "legacy"
|
||||
|
||||
# Schema hub names
|
||||
SCHEMA_KEY_SYSTEM_SETTINGS = "system_schema"
|
||||
SCHEMA_KEY_PROJECT_SETTINGS = "projects_schema"
|
||||
|
|
|
|||
|
|
@ -186,5 +186,24 @@
|
|||
"renderSpace": "scene-linear Rec 709/sRGB",
|
||||
"viewTransform": "sRGB gamma"
|
||||
}
|
||||
},
|
||||
"flame": {
|
||||
"project": {
|
||||
"colourPolicy": "ACES 1.1",
|
||||
"frameDepth": "16-bit fp",
|
||||
"fieldDominance": "PROGRESSIVE"
|
||||
},
|
||||
"profilesMapping": {
|
||||
"inputs": [
|
||||
{
|
||||
"flameName": "ACEScg",
|
||||
"ocioName": "ACES - ACEScg"
|
||||
},
|
||||
{
|
||||
"flameName": "Rec.709 video",
|
||||
"ocioName": "Output - Rec.709"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,9 @@
|
|||
{
|
||||
"deadline_servers": [],
|
||||
"publish": {
|
||||
"CollectDefaultDeadlineServer": {
|
||||
"pass_mongo_url": false
|
||||
},
|
||||
"ValidateExpectedFiles": {
|
||||
"enabled": true,
|
||||
"active": true,
|
||||
|
|
@ -33,6 +36,9 @@
|
|||
],
|
||||
"celaction": [
|
||||
".*"
|
||||
],
|
||||
"harmony": [
|
||||
".*"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -24,12 +24,38 @@
|
|||
"export_presets_mapping": {
|
||||
"exr16fpdwaa": {
|
||||
"ext": "exr",
|
||||
"xml_preset_dir": "",
|
||||
"xml_preset_file": "OpenEXR (16-bit fp DWAA).xml",
|
||||
"xml_preset_dir": "",
|
||||
"colorspace_out": "ACES - ACEScg",
|
||||
"representation_add_range": true,
|
||||
"representation_tags": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"load": {
|
||||
"LoadClip": {
|
||||
"enabled": true,
|
||||
"families": [
|
||||
"render2d",
|
||||
"source",
|
||||
"plate",
|
||||
"render",
|
||||
"review"
|
||||
],
|
||||
"representations": [
|
||||
"exr",
|
||||
"dpx",
|
||||
"jpg",
|
||||
"jpeg",
|
||||
"png",
|
||||
"h264",
|
||||
"mov",
|
||||
"mp4"
|
||||
],
|
||||
"reel_group_name": "OpenPype_Reels",
|
||||
"reel_name": "Loaded",
|
||||
"clip_name_template": "{asset}_{subset}_{representation}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -292,7 +292,8 @@
|
|||
],
|
||||
"families": [
|
||||
"write",
|
||||
"render"
|
||||
"render",
|
||||
"prerender"
|
||||
],
|
||||
"task_types": [],
|
||||
"tasks": [],
|
||||
|
|
@ -353,6 +354,7 @@
|
|||
"setdress": "setdress",
|
||||
"pointcache": "cache",
|
||||
"render": "render",
|
||||
"prerender": "render",
|
||||
"render2d": "render",
|
||||
"nukescript": "comp",
|
||||
"write": "render",
|
||||
|
|
|
|||
|
|
@ -18,8 +18,7 @@
|
|||
"resolve",
|
||||
"tvpaint"
|
||||
],
|
||||
"skip_hosts_headless_publish": [
|
||||
]
|
||||
"skip_hosts_headless_publish": []
|
||||
},
|
||||
"ValidateEditorialAssetName": {
|
||||
"enabled": true,
|
||||
|
|
@ -208,6 +207,9 @@
|
|||
"CleanUp": {
|
||||
"paterns": [],
|
||||
"remove_temp_renders": false
|
||||
},
|
||||
"CleanUpFarm": {
|
||||
"enabled": false
|
||||
}
|
||||
},
|
||||
"tools": {
|
||||
|
|
@ -326,8 +328,8 @@
|
|||
"family_filter_profiles": [
|
||||
{
|
||||
"hosts": [],
|
||||
"is_include": true,
|
||||
"task_types": [],
|
||||
"is_include": true,
|
||||
"filter_families": []
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -5,6 +5,11 @@
|
|||
".*"
|
||||
]
|
||||
},
|
||||
"ValidateAudio": {
|
||||
"enabled": true,
|
||||
"optional": true,
|
||||
"active": true
|
||||
},
|
||||
"ValidateContainers": {
|
||||
"enabled": true,
|
||||
"optional": true,
|
||||
|
|
@ -17,13 +22,6 @@
|
|||
"frame_check_filter": [],
|
||||
"skip_resolution_check": [],
|
||||
"skip_timelines_check": []
|
||||
},
|
||||
"HarmonySubmitDeadline": {
|
||||
"use_published": false,
|
||||
"priority": 50,
|
||||
"primary_pool": "",
|
||||
"secondary_pool": "",
|
||||
"chunk_size": 1000000
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,10 @@
|
|||
{
|
||||
"create": {
|
||||
"CreateArnoldAss": {
|
||||
"enabled": true,
|
||||
"defaults": [],
|
||||
"ext": ".ass"
|
||||
},
|
||||
"CreateAlembicCamera": {
|
||||
"enabled": true,
|
||||
"defaults": []
|
||||
|
|
|
|||
|
|
@ -170,6 +170,11 @@
|
|||
"optional": true,
|
||||
"active": true
|
||||
},
|
||||
"ValidateFrameRange": {
|
||||
"enabled": true,
|
||||
"optional": true,
|
||||
"active": true
|
||||
},
|
||||
"ValidateShaderName": {
|
||||
"enabled": false,
|
||||
"regex": "(?P<asset>.*)_(.*)_SHD"
|
||||
|
|
@ -188,6 +193,20 @@
|
|||
"whitelist_native_plugins": false,
|
||||
"authorized_plugins": []
|
||||
},
|
||||
"ValidateMayaUnits": {
|
||||
"enabled": true,
|
||||
"optional": false,
|
||||
"validate_linear_units": true,
|
||||
"linear_units": "cm",
|
||||
"validate_angular_units": true,
|
||||
"angular_units": "deg",
|
||||
"validate_fps": true
|
||||
},
|
||||
"ValidateUnrealStaticMeshName": {
|
||||
"enabled": true,
|
||||
"validate_mesh": false,
|
||||
"validate_collision": true
|
||||
},
|
||||
"ValidateCycleError": {
|
||||
"enabled": true,
|
||||
"optional": false,
|
||||
|
|
@ -195,11 +214,6 @@
|
|||
"rig"
|
||||
]
|
||||
},
|
||||
"ValidateUnrealStaticMeshName": {
|
||||
"enabled": true,
|
||||
"validate_mesh": false,
|
||||
"validate_collision": true
|
||||
},
|
||||
"ValidateRenderSettings": {
|
||||
"arnold_render_attributes": [],
|
||||
"vray_render_attributes": [],
|
||||
|
|
|
|||
|
|
@ -32,7 +32,8 @@
|
|||
"Fg01",
|
||||
"Branch01",
|
||||
"Part01"
|
||||
]
|
||||
],
|
||||
"reviewable": false
|
||||
}
|
||||
},
|
||||
"publish": {
|
||||
|
|
|
|||
|
|
@ -7,15 +7,10 @@
|
|||
}
|
||||
},
|
||||
"publish": {
|
||||
"CollectRemoteInstances": {
|
||||
"color_code_mapping": [
|
||||
{
|
||||
"color_code": [],
|
||||
"layer_name_regex": [],
|
||||
"family": "image",
|
||||
"subset_template_name": ""
|
||||
}
|
||||
]
|
||||
"CollectColorCodedInstances": {
|
||||
"create_flatten_image": false,
|
||||
"flatten_subset_template": "",
|
||||
"color_code_mapping": []
|
||||
},
|
||||
"ValidateContainers": {
|
||||
"enabled": true,
|
||||
|
|
|
|||
|
|
@ -2,17 +2,17 @@
|
|||
"publish": {
|
||||
"CollectPublishedFiles": {
|
||||
"task_type_to_family": {
|
||||
"Animation": {
|
||||
"workfile": {
|
||||
"Animation": [
|
||||
{
|
||||
"is_sequence": false,
|
||||
"extensions": [
|
||||
"tvp"
|
||||
],
|
||||
"families": [],
|
||||
"tags": [],
|
||||
"subset_template_name": ""
|
||||
"result_family": "workfile"
|
||||
},
|
||||
"render": {
|
||||
{
|
||||
"is_sequence": true,
|
||||
"extensions": [
|
||||
"png",
|
||||
|
|
@ -26,20 +26,20 @@
|
|||
"tags": [
|
||||
"review"
|
||||
],
|
||||
"subset_template_name": ""
|
||||
"result_family": "render"
|
||||
}
|
||||
},
|
||||
"Compositing": {
|
||||
"workfile": {
|
||||
],
|
||||
"Compositing": [
|
||||
{
|
||||
"is_sequence": false,
|
||||
"extensions": [
|
||||
"aep"
|
||||
],
|
||||
"families": [],
|
||||
"tags": [],
|
||||
"subset_template_name": ""
|
||||
"result_family": "workfile"
|
||||
},
|
||||
"render": {
|
||||
{
|
||||
"is_sequence": true,
|
||||
"extensions": [
|
||||
"png",
|
||||
|
|
@ -53,20 +53,20 @@
|
|||
"tags": [
|
||||
"review"
|
||||
],
|
||||
"subset_template_name": ""
|
||||
"result_family": "render"
|
||||
}
|
||||
},
|
||||
"Layout": {
|
||||
"workfile": {
|
||||
],
|
||||
"Layout": [
|
||||
{
|
||||
"is_sequence": false,
|
||||
"extensions": [
|
||||
"psd"
|
||||
],
|
||||
"families": [],
|
||||
"tags": [],
|
||||
"subset_template_name": ""
|
||||
"result_family": "workfile"
|
||||
},
|
||||
"image": {
|
||||
{
|
||||
"is_sequence": false,
|
||||
"extensions": [
|
||||
"png",
|
||||
|
|
@ -81,20 +81,21 @@
|
|||
"tags": [
|
||||
"review"
|
||||
],
|
||||
"subset_template_name": ""
|
||||
"result_family": "image"
|
||||
}
|
||||
},
|
||||
"default_task_type": {
|
||||
"workfile": {
|
||||
],
|
||||
"default_task_type": [
|
||||
{
|
||||
"is_sequence": false,
|
||||
"extensions": [
|
||||
"tvp"
|
||||
"tvp",
|
||||
"psd"
|
||||
],
|
||||
"families": [],
|
||||
"tags": [],
|
||||
"subset_template_name": "{family}{Variant}"
|
||||
"result_family": "workfile"
|
||||
},
|
||||
"render": {
|
||||
{
|
||||
"is_sequence": true,
|
||||
"extensions": [
|
||||
"png",
|
||||
|
|
@ -108,9 +109,9 @@
|
|||
"tags": [
|
||||
"review"
|
||||
],
|
||||
"subset_template_name": "{family}{Variant}"
|
||||
"result_family": "render"
|
||||
}
|
||||
},
|
||||
],
|
||||
"__dynamic_keys_labels__": {
|
||||
"default_task_type": "Default task type"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@
|
|||
"/opt/Autodesk/flame_2021/bin/flame.app/Contents/MacOS/startApp"
|
||||
],
|
||||
"linux": [
|
||||
"/opt/Autodesk/flame_2021/bin/flame"
|
||||
"/opt/Autodesk/flame_2021/bin/startApplication"
|
||||
]
|
||||
},
|
||||
"arguments": {
|
||||
|
|
@ -135,8 +135,31 @@
|
|||
"OPENPYPE_WIRETAP_TOOLS": "/opt/Autodesk/wiretap/tools/2021"
|
||||
}
|
||||
},
|
||||
"2021.1": {
|
||||
"use_python_2": true,
|
||||
"executables": {
|
||||
"windows": [],
|
||||
"darwin": [
|
||||
"/opt/Autodesk/flame_2021.1/bin/flame.app/Contents/MacOS/startApp"
|
||||
],
|
||||
"linux": [
|
||||
"/opt/Autodesk/flame_2021.1/bin/startApplication"
|
||||
]
|
||||
},
|
||||
"arguments": {
|
||||
"windows": [],
|
||||
"darwin": [],
|
||||
"linux": []
|
||||
},
|
||||
"environment": {
|
||||
"OPENPYPE_FLAME_PYTHON_EXEC": "/opt/Autodesk/python/2021.1/bin/python2.7",
|
||||
"OPENPYPE_FLAME_PYTHONPATH": "/opt/Autodesk/flame_2021.1/python",
|
||||
"OPENPYPE_WIRETAP_TOOLS": "/opt/Autodesk/wiretap/tools/2021.1"
|
||||
}
|
||||
},
|
||||
"__dynamic_keys_labels__": {
|
||||
"2021": "2021 (Testing Only)"
|
||||
"2021": "2021",
|
||||
"2021.1": "2021.1"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -690,15 +713,29 @@
|
|||
"OPENPYPE_LOG_NO_COLORS": "Yes"
|
||||
},
|
||||
"variants": {
|
||||
"16": {
|
||||
"enabled": true,
|
||||
"variant_label": "16",
|
||||
"use_python_2": false,
|
||||
"17": {
|
||||
"executables": {
|
||||
"windows": [
|
||||
"C:\\Program Files\\Blackmagic Design\\Fusion 17\\Fusion.exe"
|
||||
],
|
||||
"darwin": [],
|
||||
"linux": []
|
||||
},
|
||||
"arguments": {
|
||||
"windows": [],
|
||||
"darwin": [],
|
||||
"linux": []
|
||||
},
|
||||
"environment": {}
|
||||
},
|
||||
"16": {
|
||||
"executables": {
|
||||
"windows": [
|
||||
"C:\\Program Files\\Blackmagic Design\\Fusion 16\\Fusion.exe"
|
||||
],
|
||||
"darwin": [],
|
||||
"linux": []
|
||||
},
|
||||
"arguments": {
|
||||
"windows": [],
|
||||
"darwin": [],
|
||||
|
|
@ -707,9 +744,6 @@
|
|||
"environment": {}
|
||||
},
|
||||
"9": {
|
||||
"enabled": true,
|
||||
"variant_label": "9",
|
||||
"use_python_2": false,
|
||||
"executables": {
|
||||
"windows": [
|
||||
"C:\\Program Files\\Blackmagic Design\\Fusion 9\\Fusion.exe"
|
||||
|
|
@ -934,12 +968,35 @@
|
|||
"AVALON_HARMONY_WORKFILES_ON_LAUNCH": "1"
|
||||
},
|
||||
"variants": {
|
||||
"21": {
|
||||
"enabled": true,
|
||||
"variant_label": "21",
|
||||
"executables": {
|
||||
"windows": [
|
||||
"c:\\Program Files (x86)\\Toon Boom Animation\\Toon Boom Harmony 21 Premium\\win64\\bin\\HarmonyPremium.exe"
|
||||
],
|
||||
"darwin": [
|
||||
"/Applications/Toon Boom Harmony 21 Premium/Harmony Premium.app/Contents/MacOS/Harmony Premium"
|
||||
],
|
||||
"linux": []
|
||||
},
|
||||
"arguments": {
|
||||
"windows": [],
|
||||
"darwin": [],
|
||||
"linux": []
|
||||
},
|
||||
"environment": {}
|
||||
},
|
||||
"20": {
|
||||
"enabled": true,
|
||||
"variant_label": "20",
|
||||
"executables": {
|
||||
"windows": [],
|
||||
"darwin": [],
|
||||
"windows": [
|
||||
"c:\\Program Files (x86)\\Toon Boom Animation\\Toon Boom Harmony 20 Premium\\win64\\bin\\HarmonyPremium.exe"
|
||||
],
|
||||
"darwin": [
|
||||
"/Applications/Toon Boom Harmony 20 Premium/Harmony Premium.app/Contents/MacOS/Harmony Premium"
|
||||
],
|
||||
"linux": []
|
||||
},
|
||||
"arguments": {
|
||||
|
|
@ -953,7 +1010,9 @@
|
|||
"enabled": true,
|
||||
"variant_label": "17",
|
||||
"executables": {
|
||||
"windows": [],
|
||||
"windows": [
|
||||
"c:\\Program Files (x86)\\Toon Boom Animation\\Toon Boom Harmony 17 Premium\\win64\\bin\\HarmonyPremium.exe"
|
||||
],
|
||||
"darwin": [
|
||||
"/Applications/Toon Boom Harmony 17 Premium/Harmony Premium.app/Contents/MacOS/Harmony Premium"
|
||||
],
|
||||
|
|
@ -1171,58 +1230,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"shell": {
|
||||
"enabled": true,
|
||||
"environment": {},
|
||||
"variants": {
|
||||
"python_3-7": {
|
||||
"use_python_2": true,
|
||||
"executables": {
|
||||
"windows": [],
|
||||
"darwin": [],
|
||||
"linux": []
|
||||
},
|
||||
"arguments": {
|
||||
"windows": [],
|
||||
"darwin": [],
|
||||
"linux": []
|
||||
},
|
||||
"environment": {}
|
||||
},
|
||||
"python_2-7": {
|
||||
"use_python_2": true,
|
||||
"executables": {
|
||||
"windows": [],
|
||||
"darwin": [],
|
||||
"linux": []
|
||||
},
|
||||
"arguments": {
|
||||
"windows": [],
|
||||
"darwin": [],
|
||||
"linux": []
|
||||
},
|
||||
"environment": {}
|
||||
},
|
||||
"terminal": {
|
||||
"use_python_2": true,
|
||||
"executables": {
|
||||
"windows": [],
|
||||
"darwin": [],
|
||||
"linux": []
|
||||
},
|
||||
"arguments": {
|
||||
"windows": [],
|
||||
"darwin": [],
|
||||
"linux": []
|
||||
},
|
||||
"environment": {}
|
||||
},
|
||||
"__dynamic_keys_labels__": {
|
||||
"python_3-7": "Python 3.7",
|
||||
"python_2-7": "Python 2.7"
|
||||
}
|
||||
}
|
||||
},
|
||||
"djvview": {
|
||||
"enabled": true,
|
||||
"label": "DJV View",
|
||||
|
|
@ -1248,5 +1255,6 @@
|
|||
"1-1": "1.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"additional_apps": {}
|
||||
}
|
||||
|
|
@ -13,7 +13,7 @@
|
|||
}
|
||||
},
|
||||
"ftrack": {
|
||||
"enabled": true,
|
||||
"enabled": false,
|
||||
"ftrack_server": "",
|
||||
"ftrack_actions_path": {
|
||||
"windows": [],
|
||||
|
|
|
|||
|
|
@ -263,6 +263,7 @@ class HostsEnumEntity(BaseEnumEntity):
|
|||
|
||||
|
||||
class AppsEnumEntity(BaseEnumEntity):
|
||||
"""Enum of applications for project anatomy attributes."""
|
||||
schema_types = ["apps-enum"]
|
||||
|
||||
def _item_initialization(self):
|
||||
|
|
@ -279,16 +280,30 @@ class AppsEnumEntity(BaseEnumEntity):
|
|||
valid_keys = set()
|
||||
enum_items_list = []
|
||||
applications_entity = system_settings_entity["applications"]
|
||||
app_entities = {}
|
||||
additional_app_names = set()
|
||||
additional_apps_entity = None
|
||||
for group_name, app_group in applications_entity.items():
|
||||
if group_name != "additional_apps":
|
||||
app_entities[group_name] = app_group
|
||||
continue
|
||||
|
||||
additional_apps_entity = app_group
|
||||
for _group_name, _group in app_group.items():
|
||||
additional_app_names.add(_group_name)
|
||||
app_entities[_group_name] = _group
|
||||
|
||||
for group_name, app_group in app_entities.items():
|
||||
enabled_entity = app_group.get("enabled")
|
||||
if enabled_entity and not enabled_entity.value:
|
||||
continue
|
||||
|
||||
host_name_entity = app_group.get("host_name")
|
||||
if not host_name_entity or not host_name_entity.value:
|
||||
continue
|
||||
|
||||
group_label = app_group["label"].value
|
||||
if group_name in additional_app_names:
|
||||
group_label = additional_apps_entity.get_key_label(group_name)
|
||||
if not group_label:
|
||||
group_label = group_name
|
||||
else:
|
||||
group_label = app_group["label"].value
|
||||
variants_entity = app_group["variants"]
|
||||
for variant_name, variant_entity in variants_entity.items():
|
||||
enabled_entity = variant_entity.get("enabled")
|
||||
|
|
|
|||
|
|
@ -34,15 +34,24 @@ from openpype.settings.lib import (
|
|||
reset_default_settings,
|
||||
|
||||
get_studio_system_settings_overrides,
|
||||
get_studio_system_settings_overrides_for_version,
|
||||
save_studio_settings,
|
||||
get_available_studio_system_settings_overrides_versions,
|
||||
|
||||
get_studio_project_settings_overrides,
|
||||
get_studio_project_settings_overrides_for_version,
|
||||
get_studio_project_anatomy_overrides,
|
||||
get_studio_project_anatomy_overrides_for_version,
|
||||
get_project_settings_overrides,
|
||||
get_project_settings_overrides_for_version,
|
||||
get_project_anatomy_overrides,
|
||||
save_project_settings,
|
||||
save_project_anatomy,
|
||||
|
||||
get_available_project_settings_overrides_versions,
|
||||
get_available_studio_project_settings_overrides_versions,
|
||||
get_available_studio_project_anatomy_overrides_versions,
|
||||
|
||||
find_environments,
|
||||
apply_overrides
|
||||
)
|
||||
|
|
@ -495,17 +504,27 @@ class SystemSettings(RootEntity):
|
|||
root_key = SYSTEM_SETTINGS_KEY
|
||||
|
||||
def __init__(
|
||||
self, set_studio_state=True, reset=True, schema_hub=None
|
||||
self,
|
||||
set_studio_state=True,
|
||||
reset=True,
|
||||
schema_hub=None,
|
||||
source_version=None
|
||||
):
|
||||
if schema_hub is None:
|
||||
# Load system schemas
|
||||
schema_hub = SchemasHub(SCHEMA_KEY_SYSTEM_SETTINGS)
|
||||
|
||||
self._source_version = source_version
|
||||
|
||||
super(SystemSettings, self).__init__(schema_hub, reset)
|
||||
|
||||
if set_studio_state:
|
||||
self.set_studio_state()
|
||||
|
||||
@property
|
||||
def source_version(self):
|
||||
return self._source_version
|
||||
|
||||
def get_entity_from_path(self, path):
|
||||
"""Return system settings entity."""
|
||||
path_parts = path.split("/")
|
||||
|
|
@ -524,12 +543,24 @@ class SystemSettings(RootEntity):
|
|||
value = default_value.get(key, NOT_SET)
|
||||
child_obj.update_default_value(value)
|
||||
|
||||
studio_overrides = get_studio_system_settings_overrides()
|
||||
if self._source_version is None:
|
||||
studio_overrides, version = get_studio_system_settings_overrides(
|
||||
return_version=True
|
||||
)
|
||||
self._source_version = version
|
||||
|
||||
else:
|
||||
studio_overrides = (
|
||||
get_studio_system_settings_overrides_for_version(
|
||||
self._source_version
|
||||
)
|
||||
)
|
||||
|
||||
for key, child_obj in self.non_gui_children.items():
|
||||
value = studio_overrides.get(key, NOT_SET)
|
||||
child_obj.update_studio_value(value)
|
||||
|
||||
def reset(self, new_state=None):
|
||||
def reset(self, new_state=None, source_version=None):
|
||||
"""Discard changes and reset entit's values.
|
||||
|
||||
Reload default values and studio override values and update entities.
|
||||
|
|
@ -547,9 +578,22 @@ class SystemSettings(RootEntity):
|
|||
if new_state is OverrideState.PROJECT:
|
||||
raise ValueError("System settings can't store poject overrides.")
|
||||
|
||||
if source_version is not None:
|
||||
self._source_version = source_version
|
||||
|
||||
self._reset_values()
|
||||
self.set_override_state(new_state)
|
||||
|
||||
def get_available_source_versions(self, sorted=None):
|
||||
if self.is_in_studio_state():
|
||||
return self.get_available_studio_versions(sorted=sorted)
|
||||
return []
|
||||
|
||||
def get_available_studio_versions(self, sorted=None):
|
||||
return get_available_studio_system_settings_overrides_versions(
|
||||
sorted=sorted
|
||||
)
|
||||
|
||||
def defaults_dir(self):
|
||||
"""Path to defaults directory.
|
||||
|
||||
|
|
@ -566,6 +610,8 @@ class SystemSettings(RootEntity):
|
|||
json.dumps(settings_value, indent=4)
|
||||
))
|
||||
save_studio_settings(settings_value)
|
||||
# Reset source version after restart
|
||||
self._source_version = None
|
||||
|
||||
def _validate_defaults_to_save(self, value):
|
||||
"""Valiations of default values before save."""
|
||||
|
|
@ -622,11 +668,15 @@ class ProjectSettings(RootEntity):
|
|||
project_name=None,
|
||||
change_state=True,
|
||||
reset=True,
|
||||
schema_hub=None
|
||||
schema_hub=None,
|
||||
source_version=None,
|
||||
anatomy_source_version=None
|
||||
):
|
||||
self._project_name = project_name
|
||||
|
||||
self._system_settings_entity = None
|
||||
self._source_version = source_version
|
||||
self._anatomy_source_version = anatomy_source_version
|
||||
|
||||
if schema_hub is None:
|
||||
# Load system schemas
|
||||
|
|
@ -640,6 +690,14 @@ class ProjectSettings(RootEntity):
|
|||
else:
|
||||
self.set_project_state()
|
||||
|
||||
@property
|
||||
def source_version(self):
|
||||
return self._source_version
|
||||
|
||||
@property
|
||||
def anatomy_source_version(self):
|
||||
return self._anatomy_source_version
|
||||
|
||||
@property
|
||||
def project_name(self):
|
||||
return self._project_name
|
||||
|
|
@ -682,23 +740,20 @@ class ProjectSettings(RootEntity):
|
|||
output = output[path_part]
|
||||
return output
|
||||
|
||||
def change_project(self, project_name):
|
||||
def change_project(self, project_name, source_version=None):
|
||||
if project_name == self._project_name:
|
||||
return
|
||||
if (
|
||||
source_version is None
|
||||
or source_version == self._source_version
|
||||
):
|
||||
if not self.is_in_project_state():
|
||||
self.set_project_state()
|
||||
return
|
||||
|
||||
self._project_name = project_name
|
||||
if project_name is None:
|
||||
self.set_studio_state()
|
||||
return
|
||||
|
||||
project_override_value = {
|
||||
PROJECT_SETTINGS_KEY: get_project_settings_overrides(project_name),
|
||||
PROJECT_ANATOMY_KEY: get_project_anatomy_overrides(project_name)
|
||||
}
|
||||
for key, child_obj in self.non_gui_children.items():
|
||||
value = project_override_value.get(key, NOT_SET)
|
||||
child_obj.update_project_value(value)
|
||||
self._source_version = source_version
|
||||
self._anatomy_source_version = None
|
||||
|
||||
self._set_values_for_project(project_name)
|
||||
self.set_project_state()
|
||||
|
||||
def _reset_values(self):
|
||||
|
|
@ -710,27 +765,97 @@ class ProjectSettings(RootEntity):
|
|||
value = default_values.get(key, NOT_SET)
|
||||
child_obj.update_default_value(value)
|
||||
|
||||
self._set_values_for_project(self.project_name)
|
||||
|
||||
def _set_values_for_project(self, project_name):
|
||||
self._project_name = project_name
|
||||
if project_name:
|
||||
project_settings_overrides = (
|
||||
get_studio_project_settings_overrides()
|
||||
)
|
||||
project_anatomy_overrides = (
|
||||
get_studio_project_anatomy_overrides()
|
||||
)
|
||||
else:
|
||||
if self._source_version is None:
|
||||
project_settings_overrides, version = (
|
||||
get_studio_project_settings_overrides(return_version=True)
|
||||
)
|
||||
self._source_version = version
|
||||
else:
|
||||
project_settings_overrides = (
|
||||
get_studio_project_settings_overrides_for_version(
|
||||
self._source_version
|
||||
)
|
||||
)
|
||||
|
||||
if self._anatomy_source_version is None:
|
||||
project_anatomy_overrides, anatomy_version = (
|
||||
get_studio_project_anatomy_overrides(return_version=True)
|
||||
)
|
||||
self._anatomy_source_version = anatomy_version
|
||||
else:
|
||||
project_anatomy_overrides = (
|
||||
get_studio_project_anatomy_overrides_for_version(
|
||||
self._anatomy_source_version
|
||||
)
|
||||
)
|
||||
|
||||
studio_overrides = {
|
||||
PROJECT_SETTINGS_KEY: get_studio_project_settings_overrides(),
|
||||
PROJECT_ANATOMY_KEY: get_studio_project_anatomy_overrides()
|
||||
PROJECT_SETTINGS_KEY: project_settings_overrides,
|
||||
PROJECT_ANATOMY_KEY: project_anatomy_overrides
|
||||
}
|
||||
|
||||
for key, child_obj in self.non_gui_children.items():
|
||||
value = studio_overrides.get(key, NOT_SET)
|
||||
child_obj.update_studio_value(value)
|
||||
|
||||
if not self.project_name:
|
||||
if not project_name:
|
||||
return
|
||||
|
||||
project_name = self.project_name
|
||||
if self._source_version is None:
|
||||
project_settings_overrides, version = (
|
||||
get_project_settings_overrides(
|
||||
project_name, return_version=True
|
||||
)
|
||||
)
|
||||
self._source_version = version
|
||||
else:
|
||||
project_settings_overrides = (
|
||||
get_project_settings_overrides_for_version(
|
||||
project_name, self._source_version
|
||||
)
|
||||
)
|
||||
|
||||
project_override_value = {
|
||||
PROJECT_SETTINGS_KEY: get_project_settings_overrides(project_name),
|
||||
PROJECT_SETTINGS_KEY: project_settings_overrides,
|
||||
PROJECT_ANATOMY_KEY: get_project_anatomy_overrides(project_name)
|
||||
}
|
||||
for key, child_obj in self.non_gui_children.items():
|
||||
value = project_override_value.get(key, NOT_SET)
|
||||
child_obj.update_project_value(value)
|
||||
|
||||
def get_available_source_versions(self, sorted=None):
|
||||
if self.is_in_studio_state():
|
||||
return self.get_available_studio_versions(sorted=sorted)
|
||||
elif self.is_in_project_state():
|
||||
return get_available_project_settings_overrides_versions(
|
||||
self.project_name, sorted=sorted
|
||||
)
|
||||
return []
|
||||
|
||||
def get_available_studio_versions(self, sorted=None):
|
||||
return get_available_studio_project_settings_overrides_versions(
|
||||
sorted=sorted
|
||||
)
|
||||
|
||||
def get_available_anatomy_source_versions(self, sorted=None):
|
||||
if self.is_in_studio_state():
|
||||
return get_available_studio_project_anatomy_overrides_versions(
|
||||
sorted=sorted
|
||||
)
|
||||
return []
|
||||
|
||||
def reset(self, new_state=None):
|
||||
"""Discard changes and reset entit's values.
|
||||
|
||||
|
|
@ -763,6 +888,9 @@ class ProjectSettings(RootEntity):
|
|||
|
||||
self._validate_values_to_save(settings_value)
|
||||
|
||||
self._source_version = None
|
||||
self._anatomy_source_version = None
|
||||
|
||||
self.log.debug("Saving project settings: {}".format(
|
||||
json.dumps(settings_value, indent=4)
|
||||
))
|
||||
|
|
|
|||
|
|
@ -17,6 +17,19 @@
|
|||
"key": "publish",
|
||||
"label": "Publish plugins",
|
||||
"children": [
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
"key": "CollectDefaultDeadlineServer",
|
||||
"label": "Default Deadline Webservice",
|
||||
"children": [
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "pass_mongo_url",
|
||||
"label": "Pass Mongo url to job"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
|
|
@ -58,106 +71,11 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
"key": "ProcessSubmittedJobOnFarm",
|
||||
"label": "ProcessSubmittedJobOnFarm",
|
||||
"checkbox_key": "enabled",
|
||||
"is_group": true,
|
||||
"children": [
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "enabled",
|
||||
"label": "Enabled"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "deadline_department",
|
||||
"label": "Deadline department"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "deadline_pool",
|
||||
"label": "Deadline Pool"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "deadline_group",
|
||||
"label": "Deadline Group"
|
||||
},
|
||||
{
|
||||
"type": "number",
|
||||
"key": "deadline_chunk_size",
|
||||
"label": "Deadline Chunk Size"
|
||||
},
|
||||
{
|
||||
"type": "number",
|
||||
"key": "deadline_priority",
|
||||
"label": "Deadline Priotity"
|
||||
},
|
||||
{
|
||||
"type": "splitter"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "publishing_script",
|
||||
"label": "Publishing script path"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"key": "skip_integration_repre_list",
|
||||
"label": "Skip integration of representation with ext",
|
||||
"object_type": {
|
||||
"type": "text"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "dict",
|
||||
"key": "aov_filter",
|
||||
"label": "Reviewable subsets filter",
|
||||
"children": [
|
||||
{
|
||||
"type": "list",
|
||||
"key": "maya",
|
||||
"label": "Maya",
|
||||
"object_type": {
|
||||
"type": "text"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"key": "nuke",
|
||||
"label": "Nuke",
|
||||
"object_type": {
|
||||
"type": "text"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"key": "aftereffects",
|
||||
"label": "After Effects",
|
||||
"object_type": {
|
||||
"type": "text"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"key": "celaction",
|
||||
"label": "Celaction",
|
||||
"object_type": {
|
||||
"type": "text"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
"key": "MayaSubmitDeadline",
|
||||
"label": "Submit Maya job to Deadline",
|
||||
"label": "Maya Submit to Deadline",
|
||||
"checkbox_key": "enabled",
|
||||
"children": [
|
||||
{
|
||||
|
|
@ -451,6 +369,72 @@
|
|||
"label": "Department"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
"key": "ProcessSubmittedJobOnFarm",
|
||||
"label": "ProcessSubmittedJobOnFarm",
|
||||
"checkbox_key": "enabled",
|
||||
"is_group": true,
|
||||
"children": [
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "enabled",
|
||||
"label": "Enabled"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "deadline_department",
|
||||
"label": "Deadline department"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "deadline_pool",
|
||||
"label": "Deadline Pool"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "deadline_group",
|
||||
"label": "Deadline Group"
|
||||
},
|
||||
{
|
||||
"type": "number",
|
||||
"key": "deadline_chunk_size",
|
||||
"label": "Deadline Chunk Size"
|
||||
},
|
||||
{
|
||||
"type": "number",
|
||||
"key": "deadline_priority",
|
||||
"label": "Deadline Priotity"
|
||||
},
|
||||
{
|
||||
"type": "splitter"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "publishing_script",
|
||||
"label": "Publishing script path"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"key": "skip_integration_repre_list",
|
||||
"label": "Skip integration of representation with ext",
|
||||
"object_type": {
|
||||
"type": "text"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "dict-modifiable",
|
||||
"docstring": "Regular expression to filter for which subset review should be created in publish job.",
|
||||
"key": "aov_filter",
|
||||
"label": "Reviewable subsets filter",
|
||||
"object_type": {
|
||||
"type": "list",
|
||||
"object_type": "text"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -166,6 +166,11 @@
|
|||
"label": "XML preset folder (optional)",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"key": "colorspace_out",
|
||||
"label": "Output color (imageio)",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"type": "separator"
|
||||
},
|
||||
|
|
@ -189,6 +194,61 @@
|
|||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
"key": "load",
|
||||
"label": "Loader plugins",
|
||||
"children": [
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
"key": "LoadClip",
|
||||
"label": "Load Clip",
|
||||
"checkbox_key": "enabled",
|
||||
"children": [
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "enabled",
|
||||
"label": "Enabled"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"key": "families",
|
||||
"label": "Families",
|
||||
"object_type": "text"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"key": "representations",
|
||||
"label": "Representations",
|
||||
"object_type": "text"
|
||||
},
|
||||
{
|
||||
"type": "separator"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "reel_group_name",
|
||||
"label": "Reel group name"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "reel_name",
|
||||
"label": "Reel name"
|
||||
},
|
||||
{
|
||||
"type": "separator"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "clip_name_template",
|
||||
"label": "Clip name template"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,6 +17,10 @@
|
|||
"key": "CollectPalettes",
|
||||
"label": "Collect Palettes",
|
||||
"children": [
|
||||
{
|
||||
"type": "label",
|
||||
"label": "Set regular expressions to filter triggering on specific task names. '.*' means on all."
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"key": "allowed_tasks",
|
||||
|
|
@ -30,6 +34,18 @@
|
|||
"name": "template_publish_plugin",
|
||||
"template_data": [
|
||||
{
|
||||
"docstring": "Check if scene contains audio track.",
|
||||
"key": "ValidateAudio",
|
||||
"label": "ValidateAudio"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "schema_template",
|
||||
"name": "template_publish_plugin",
|
||||
"template_data": [
|
||||
{
|
||||
"docstring": "Check if loaded container is scene are latest versions.",
|
||||
"key": "ValidateContainers",
|
||||
"label": "ValidateContainers"
|
||||
}
|
||||
|
|
@ -59,7 +75,7 @@
|
|||
},
|
||||
{
|
||||
"type": "label",
|
||||
"label": "Validate if FrameStart, FrameEnd and Resolution match shot data"
|
||||
"label": "Validate if FrameStart, FrameEnd and Resolution match shot data in DB.\n Use regular expressions to limit validations only on particular asset or task names."
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
|
|
@ -77,40 +93,7 @@
|
|||
"type": "list",
|
||||
"key": "skip_timelines_check",
|
||||
"object_type": "text",
|
||||
"label": "Skip Timeline Check for Tasks"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
"key": "HarmonySubmitDeadline",
|
||||
"label": "Harmony Submit to Deadline",
|
||||
"children": [
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "use_published",
|
||||
"label": "Use Published scene"
|
||||
},
|
||||
{
|
||||
"type": "number",
|
||||
"key": "priority",
|
||||
"label": "Priority"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "primary_pool",
|
||||
"label": "Primary Pool"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "secondary_pool",
|
||||
"label": "Secondary Pool"
|
||||
},
|
||||
{
|
||||
"type": "number",
|
||||
"key": "chunk_size",
|
||||
"label": "Frames Per Task"
|
||||
"label": "Skip Timeline Check for Tasks"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -131,6 +131,11 @@
|
|||
"object_type": {
|
||||
"type": "text"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "reviewable",
|
||||
"label": "Add reviewable toggle"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,12 +37,22 @@
|
|||
"type": "dict",
|
||||
"collapsible": true,
|
||||
"is_group": true,
|
||||
"key": "CollectRemoteInstances",
|
||||
"label": "Collect Instances for Webpublish",
|
||||
"key": "CollectColorCodedInstances",
|
||||
"label": "Collect Color Coded Instances",
|
||||
"children": [
|
||||
{
|
||||
"type": "label",
|
||||
"label": "Set color for publishable layers, set publishable families."
|
||||
"label": "Set color for publishable layers, set its resulting family and template for subset name. Can create flatten image from published instances"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "create_flatten_image",
|
||||
"label": "Create flatten image"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "flatten_subset_template",
|
||||
"label": "Subset template for flatten image"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
|
|
|
|||
|
|
@ -24,10 +24,10 @@
|
|||
"label": "Task type to family mapping",
|
||||
"collapsible_key": true,
|
||||
"object_type": {
|
||||
"type": "dict-modifiable",
|
||||
"collapsible": false,
|
||||
"type": "list",
|
||||
"collapsible": true,
|
||||
"key": "task_type",
|
||||
"collapsible_key": false,
|
||||
"collapsible_key": true,
|
||||
"object_type": {
|
||||
"type": "dict",
|
||||
"children": [
|
||||
|
|
@ -52,10 +52,13 @@
|
|||
"type": "schema",
|
||||
"name": "schema_representation_tags"
|
||||
},
|
||||
{
|
||||
"type": "separator"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "subset_template_name",
|
||||
"label": "Subset template name"
|
||||
"key": "result_family",
|
||||
"label": "Resulting family"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -403,6 +403,68 @@
|
|||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "flame",
|
||||
"type": "dict",
|
||||
"label": "Flame/Flair",
|
||||
"children": [
|
||||
{
|
||||
"key": "project",
|
||||
"type": "dict",
|
||||
"label": "Project",
|
||||
"collapsible": false,
|
||||
"children": [
|
||||
{
|
||||
"type": "form",
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"key": "colourPolicy",
|
||||
"label": "Colour Policy"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "frameDepth",
|
||||
"label": "Image Depth"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "fieldDominance",
|
||||
"label": "Field Dominance"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "profilesMapping",
|
||||
"type": "dict",
|
||||
"label": "Profile names mapping",
|
||||
"collapsible": true,
|
||||
"children": [
|
||||
{
|
||||
"type": "list",
|
||||
"key": "inputs",
|
||||
"object_type": {
|
||||
"type": "dict",
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"key": "flameName",
|
||||
"label": "Flame name"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "ocioName",
|
||||
"label": "OCIO name"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -677,8 +677,22 @@
|
|||
"label": "Remove Temp renders",
|
||||
"default": false
|
||||
}
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": false,
|
||||
"key": "CleanUpFarm",
|
||||
"label": "Clean Up Farm",
|
||||
"is_group": true,
|
||||
"checkbox_key": "enabled",
|
||||
"children": [
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "enabled",
|
||||
"label": "Enabled"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,41 @@
|
|||
"key": "create",
|
||||
"label": "Creator plugins",
|
||||
"children": [
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
"key": "CreateArnoldAss",
|
||||
"label": "Create Arnold Ass",
|
||||
"checkbox_key": "enabled",
|
||||
"children": [
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "enabled",
|
||||
"label": "Enabled"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"key": "defaults",
|
||||
"label": "Default Subsets",
|
||||
"object_type": "text"
|
||||
},
|
||||
{
|
||||
"type": "enum",
|
||||
"key": "ext",
|
||||
"label": "Default Output Format (extension)",
|
||||
"multiselection": false,
|
||||
"enum_items": [
|
||||
{
|
||||
".ass": ".ass"
|
||||
},
|
||||
{
|
||||
".ass.gz": ".ass.gz (gzipped)"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
},
|
||||
{
|
||||
"type": "schema_template",
|
||||
"name": "template_create_plugin",
|
||||
|
|
|
|||
|
|
@ -48,6 +48,16 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "schema_template",
|
||||
"name": "template_publish_plugin",
|
||||
"template_data": [
|
||||
{
|
||||
"key": "ValidateFrameRange",
|
||||
"label": "Validate Frame Range"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
|
|
@ -71,7 +81,6 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"type": "schema_template",
|
||||
"name": "template_publish_plugin",
|
||||
|
|
@ -82,7 +91,6 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
|
|
@ -102,7 +110,6 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
|
|
@ -128,7 +135,68 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
"key": "ValidateMayaUnits",
|
||||
"label": "Validate Maya Units",
|
||||
"checkbox_key": "enabled",
|
||||
"children": [
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "enabled",
|
||||
"label": "Enabled"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "optional",
|
||||
"label": "Optional"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "validate_linear_units",
|
||||
"label": "Validate linear units"
|
||||
},
|
||||
{
|
||||
"key": "linear_units",
|
||||
"label": "Linear units",
|
||||
"type": "enum",
|
||||
"multiselection": false,
|
||||
"defaults": "cm",
|
||||
"enum_items": [
|
||||
{"mm": "millimeter"},
|
||||
{"cm": "centimeter"},
|
||||
{"m": "meter"},
|
||||
{"km": "kilometer"},
|
||||
{"in": "inch"},
|
||||
{"ft": "foot"},
|
||||
{"yd": "yard"},
|
||||
{"mi": "mile"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "validate_angular_units",
|
||||
"label": "Validate angular units"
|
||||
},
|
||||
{
|
||||
"key": "angular_units",
|
||||
"label": "Angular units",
|
||||
"type": "enum",
|
||||
"multiselection": false,
|
||||
"defaults": "cm",
|
||||
"enum_items": [
|
||||
{"deg": "degree"},
|
||||
{"rad": "radian"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "validate_fps",
|
||||
"label": "Validate fps"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
|
|
@ -153,7 +221,6 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
|
|
@ -180,7 +247,6 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
|
|
@ -284,7 +350,7 @@
|
|||
"label": "Validate Model Content",
|
||||
"checkbox_key": "enabled",
|
||||
"children": [
|
||||
{
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "enabled",
|
||||
"label": "Enabled"
|
||||
|
|
|
|||
|
|
@ -20,24 +20,21 @@
|
|||
"type": "raw-json"
|
||||
},
|
||||
{
|
||||
"type": "dict",
|
||||
"type": "dict-modifiable",
|
||||
"key": "variants",
|
||||
"children": [
|
||||
{
|
||||
"type": "schema_template",
|
||||
"name": "template_host_variant",
|
||||
"template_data": [
|
||||
{
|
||||
"app_variant_label": "16",
|
||||
"app_variant": "16"
|
||||
},
|
||||
{
|
||||
"app_variant_label": "9",
|
||||
"app_variant": "9"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
"collapsible_key": true,
|
||||
"use_label_wrap": false,
|
||||
"object_type": {
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
"children": [
|
||||
{
|
||||
"type": "schema_template",
|
||||
"name": "template_host_variant_items",
|
||||
"skip_paths": ["use_python_2"]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,6 +27,11 @@
|
|||
"type": "schema_template",
|
||||
"name": "template_host_variant",
|
||||
"template_data": [
|
||||
{
|
||||
"app_variant_label": "21",
|
||||
"app_variant": "21",
|
||||
"variant_skip_paths": ["use_python_2"]
|
||||
},
|
||||
{
|
||||
"app_variant_label": "20",
|
||||
"app_variant": "20",
|
||||
|
|
|
|||
|
|
@ -1,35 +0,0 @@
|
|||
{
|
||||
"type": "dict",
|
||||
"key": "shell",
|
||||
"label": "Shell",
|
||||
"collapsible": true,
|
||||
"checkbox_key": "enabled",
|
||||
"children": [
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "enabled",
|
||||
"label": "Enabled"
|
||||
},
|
||||
{
|
||||
"key": "environment",
|
||||
"label": "Environment",
|
||||
"type": "raw-json"
|
||||
},
|
||||
{
|
||||
"type": "dict-modifiable",
|
||||
"key": "variants",
|
||||
"collapsible_key": true,
|
||||
"use_label_wrap": false,
|
||||
"object_type": {
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
"children": [
|
||||
{
|
||||
"type": "schema_template",
|
||||
"name": "template_host_variant_items"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -87,11 +87,50 @@
|
|||
},
|
||||
{
|
||||
"type": "schema",
|
||||
"name": "schema_shell"
|
||||
"name": "schema_djv"
|
||||
},
|
||||
{
|
||||
"type": "schema",
|
||||
"name": "schema_djv"
|
||||
"type": "dict-modifiable",
|
||||
"key": "additional_apps",
|
||||
"label": "Additional",
|
||||
"collapsible": true,
|
||||
"collapsible_key": true,
|
||||
"object_type": {
|
||||
"type": "dict",
|
||||
"children": [
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "enabled",
|
||||
"label": "Enabled"
|
||||
},
|
||||
{
|
||||
"type": "schema_template",
|
||||
"name": "template_host_unchangables",
|
||||
"skip_paths": ["host_name", "label"]
|
||||
},
|
||||
{
|
||||
"key": "environment",
|
||||
"label": "Environment",
|
||||
"type": "raw-json"
|
||||
},
|
||||
{
|
||||
"type": "dict-modifiable",
|
||||
"key": "variants",
|
||||
"collapsible_key": true,
|
||||
"use_label_wrap": false,
|
||||
"object_type": {
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
"children": [
|
||||
{
|
||||
"type": "schema_template",
|
||||
"name": "template_host_variant_items"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -266,23 +266,31 @@ def save_project_anatomy(project_name, anatomy_data):
|
|||
|
||||
|
||||
@require_handler
|
||||
def get_studio_system_settings_overrides():
|
||||
return _SETTINGS_HANDLER.get_studio_system_settings_overrides()
|
||||
def get_studio_system_settings_overrides(return_version=False):
|
||||
return _SETTINGS_HANDLER.get_studio_system_settings_overrides(
|
||||
return_version
|
||||
)
|
||||
|
||||
|
||||
@require_handler
|
||||
def get_studio_project_settings_overrides():
|
||||
return _SETTINGS_HANDLER.get_studio_project_settings_overrides()
|
||||
def get_studio_project_settings_overrides(return_version=False):
|
||||
return _SETTINGS_HANDLER.get_studio_project_settings_overrides(
|
||||
return_version
|
||||
)
|
||||
|
||||
|
||||
@require_handler
|
||||
def get_studio_project_anatomy_overrides():
|
||||
return _SETTINGS_HANDLER.get_studio_project_anatomy_overrides()
|
||||
def get_studio_project_anatomy_overrides(return_version=False):
|
||||
return _SETTINGS_HANDLER.get_studio_project_anatomy_overrides(
|
||||
return_version
|
||||
)
|
||||
|
||||
|
||||
@require_handler
|
||||
def get_project_settings_overrides(project_name):
|
||||
return _SETTINGS_HANDLER.get_project_settings_overrides(project_name)
|
||||
def get_project_settings_overrides(project_name, return_version=False):
|
||||
return _SETTINGS_HANDLER.get_project_settings_overrides(
|
||||
project_name, return_version
|
||||
)
|
||||
|
||||
|
||||
@require_handler
|
||||
|
|
@ -290,6 +298,123 @@ def get_project_anatomy_overrides(project_name):
|
|||
return _SETTINGS_HANDLER.get_project_anatomy_overrides(project_name)
|
||||
|
||||
|
||||
@require_handler
|
||||
def get_studio_system_settings_overrides_for_version(version):
|
||||
return (
|
||||
_SETTINGS_HANDLER
|
||||
.get_studio_system_settings_overrides_for_version(version)
|
||||
)
|
||||
|
||||
|
||||
@require_handler
|
||||
def get_studio_project_anatomy_overrides_for_version(version):
|
||||
return (
|
||||
_SETTINGS_HANDLER
|
||||
.get_studio_project_anatomy_overrides_for_version(version)
|
||||
)
|
||||
|
||||
|
||||
@require_handler
|
||||
def get_studio_project_settings_overrides_for_version(version):
|
||||
return (
|
||||
_SETTINGS_HANDLER
|
||||
.get_studio_project_settings_overrides_for_version(version)
|
||||
)
|
||||
|
||||
|
||||
@require_handler
|
||||
def get_project_settings_overrides_for_version(
|
||||
project_name, version
|
||||
):
|
||||
return (
|
||||
_SETTINGS_HANDLER
|
||||
.get_project_settings_overrides_for_version(project_name, version)
|
||||
)
|
||||
|
||||
|
||||
@require_handler
|
||||
def get_available_studio_system_settings_overrides_versions(sorted=None):
|
||||
return (
|
||||
_SETTINGS_HANDLER
|
||||
.get_available_studio_system_settings_overrides_versions(
|
||||
sorted=sorted
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@require_handler
|
||||
def get_available_studio_project_anatomy_overrides_versions(sorted=None):
|
||||
return (
|
||||
_SETTINGS_HANDLER
|
||||
.get_available_studio_project_anatomy_overrides_versions(
|
||||
sorted=sorted
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@require_handler
|
||||
def get_available_studio_project_settings_overrides_versions(sorted=None):
|
||||
return (
|
||||
_SETTINGS_HANDLER
|
||||
.get_available_studio_project_settings_overrides_versions(
|
||||
sorted=sorted
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@require_handler
|
||||
def get_available_project_settings_overrides_versions(
|
||||
project_name, sorted=None
|
||||
):
|
||||
return (
|
||||
_SETTINGS_HANDLER
|
||||
.get_available_project_settings_overrides_versions(
|
||||
project_name, sorted=sorted
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@require_handler
|
||||
def find_closest_version_for_projects(project_names):
|
||||
return (
|
||||
_SETTINGS_HANDLER
|
||||
.find_closest_version_for_projects(project_names)
|
||||
)
|
||||
|
||||
|
||||
@require_handler
|
||||
def clear_studio_system_settings_overrides_for_version(version):
|
||||
return (
|
||||
_SETTINGS_HANDLER
|
||||
.clear_studio_system_settings_overrides_for_version(version)
|
||||
)
|
||||
|
||||
|
||||
@require_handler
|
||||
def clear_studio_project_settings_overrides_for_version(version):
|
||||
return (
|
||||
_SETTINGS_HANDLER
|
||||
.clear_studio_project_settings_overrides_for_version(version)
|
||||
)
|
||||
|
||||
|
||||
@require_handler
|
||||
def clear_studio_project_anatomy_overrides_for_version(version):
|
||||
return (
|
||||
_SETTINGS_HANDLER
|
||||
.clear_studio_project_anatomy_overrides_for_version(version)
|
||||
)
|
||||
|
||||
|
||||
@require_handler
|
||||
def clear_project_settings_overrides_for_version(
|
||||
version, project_name
|
||||
):
|
||||
return _SETTINGS_HANDLER.clear_project_settings_overrides_for_version(
|
||||
version, project_name
|
||||
)
|
||||
|
||||
|
||||
@require_local_handler
|
||||
def save_local_settings(data):
|
||||
return _LOCAL_SETTINGS_HANDLER.save_local_settings(data)
|
||||
|
|
@ -580,11 +705,26 @@ def apply_local_settings_on_system_settings(system_settings, local_settings):
|
|||
return
|
||||
|
||||
current_platform = platform.system().lower()
|
||||
apps_settings = system_settings["applications"]
|
||||
additional_apps = apps_settings["additional_apps"]
|
||||
for app_group_name, value in local_settings["applications"].items():
|
||||
if not value or app_group_name not in system_settings["applications"]:
|
||||
if not value:
|
||||
continue
|
||||
|
||||
variants = system_settings["applications"][app_group_name]["variants"]
|
||||
if (
|
||||
app_group_name not in apps_settings
|
||||
and app_group_name not in additional_apps
|
||||
):
|
||||
continue
|
||||
|
||||
if app_group_name in apps_settings:
|
||||
variants = apps_settings[app_group_name]["variants"]
|
||||
|
||||
else:
|
||||
variants = (
|
||||
apps_settings["additional_apps"][app_group_name]["variants"]
|
||||
)
|
||||
|
||||
for app_name, app_value in value.items():
|
||||
if (
|
||||
not app_value
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue