mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 16:34:53 +01:00
Merge branch 'pypeclub:develop' into bugfix/rig-deformer-ids
This commit is contained in:
commit
5e7b09e863
1300 changed files with 86420 additions and 400144 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",
|
||||
|
||||
|
|
|
|||
|
|
@ -2,14 +2,14 @@ import re
|
|||
|
||||
|
||||
# Metadata keys for work with studio and project overrides
|
||||
M_OVERRIDEN_KEY = "__overriden_keys__"
|
||||
M_OVERRIDDEN_KEY = "__overriden_keys__"
|
||||
# Metadata key for storing information about environments
|
||||
M_ENVIRONMENT_KEY = "__environment_keys__"
|
||||
# Metadata key for storing dynamic created labels
|
||||
M_DYNAMIC_KEY_LABEL = "__dynamic_keys_labels__"
|
||||
|
||||
METADATA_KEYS = (
|
||||
M_OVERRIDEN_KEY,
|
||||
M_OVERRIDDEN_KEY,
|
||||
M_ENVIRONMENT_KEY,
|
||||
M_DYNAMIC_KEY_LABEL
|
||||
)
|
||||
|
|
@ -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"
|
||||
|
|
@ -32,7 +34,7 @@ KEY_REGEX = re.compile(r"^[{}]+$".format(KEY_ALLOWED_SYMBOLS))
|
|||
|
||||
|
||||
__all__ = (
|
||||
"M_OVERRIDEN_KEY",
|
||||
"M_OVERRIDDEN_KEY",
|
||||
"M_ENVIRONMENT_KEY",
|
||||
"M_DYNAMIC_KEY_LABEL",
|
||||
|
||||
|
|
|
|||
|
|
@ -177,6 +177,17 @@
|
|||
}
|
||||
},
|
||||
"maya": {
|
||||
"colorManagementPreference_v2": {
|
||||
"enabled": true,
|
||||
"configFilePath": {
|
||||
"windows": [],
|
||||
"darwin": [],
|
||||
"linux": []
|
||||
},
|
||||
"renderSpace": "ACEScg",
|
||||
"viewName": "ACES 1.0 SDR-video",
|
||||
"displayName": "sRGB"
|
||||
},
|
||||
"colorManagementPreference": {
|
||||
"configFilePath": {
|
||||
"windows": [],
|
||||
|
|
@ -186,5 +197,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"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -27,5 +27,10 @@
|
|||
"path": "{@folder}/{@file}"
|
||||
},
|
||||
"delivery": {},
|
||||
"unreal": {
|
||||
"folder": "{root[work]}/{project[name]}/{hierarchy}/{asset}/publish/{family}/{subset}/{@version}",
|
||||
"file": "{subset}_{@version}<_{output}><.{@frame}>.{ext}",
|
||||
"path": "{@folder}/{@file}"
|
||||
},
|
||||
"others": {}
|
||||
}
|
||||
|
|
@ -10,13 +10,6 @@
|
|||
"skip_timelines_check": [
|
||||
".*"
|
||||
]
|
||||
},
|
||||
"AfterEffectsSubmitDeadline": {
|
||||
"use_published": true,
|
||||
"priority": 50,
|
||||
"primary_pool": "",
|
||||
"secondary_pool": "",
|
||||
"chunk_size": 1000000
|
||||
}
|
||||
},
|
||||
"workfile_builder": {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
{
|
||||
"deadline_servers": [],
|
||||
"publish": {
|
||||
"CollectDefaultDeadlineServer": {
|
||||
"pass_mongo_url": false
|
||||
},
|
||||
"ValidateExpectedFiles": {
|
||||
"enabled": true,
|
||||
"active": true,
|
||||
|
|
@ -33,6 +36,9 @@
|
|||
],
|
||||
"celaction": [
|
||||
".*"
|
||||
],
|
||||
"harmony": [
|
||||
".*"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
|
@ -40,7 +46,7 @@
|
|||
"enabled": true,
|
||||
"optional": false,
|
||||
"active": true,
|
||||
"tile_assembler_plugin": "oiio",
|
||||
"tile_assembler_plugin": "OpenPypeTileAssembler",
|
||||
"use_published": true,
|
||||
"asset_dependencies": true,
|
||||
"group": "none",
|
||||
|
|
@ -87,7 +93,8 @@
|
|||
"primary_pool": "",
|
||||
"secondary_pool": "",
|
||||
"group": "",
|
||||
"department": ""
|
||||
"department": "",
|
||||
"multiprocess": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,7 +2,8 @@
|
|||
"create": {
|
||||
"CreateShotClip": {
|
||||
"hierarchy": "{folder}/{sequence}",
|
||||
"clipRename": true,
|
||||
"useShotName": true,
|
||||
"clipRename": false,
|
||||
"clipName": "{sequence}{shot}",
|
||||
"segmentIndex": true,
|
||||
"countFrom": 10,
|
||||
|
|
@ -24,12 +25,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": [],
|
||||
|
|
@ -331,6 +332,18 @@
|
|||
"tasks": [],
|
||||
"add_ftrack_family": true,
|
||||
"advanced_filtering": []
|
||||
},
|
||||
{
|
||||
"hosts": [
|
||||
"houdini"
|
||||
],
|
||||
"families": [
|
||||
"usd"
|
||||
],
|
||||
"task_types": [],
|
||||
"tasks": [],
|
||||
"add_ftrack_family": true,
|
||||
"advanced_filtering": []
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
@ -342,6 +355,42 @@
|
|||
"ValidateFtrackAttributes": {
|
||||
"enabled": false,
|
||||
"ftrack_custom_attributes": {}
|
||||
},
|
||||
"IntegrateFtrackInstance": {
|
||||
"family_mapping": {
|
||||
"camera": "cam",
|
||||
"look": "look",
|
||||
"mayaascii": "scene",
|
||||
"model": "geo",
|
||||
"rig": "rig",
|
||||
"setdress": "setdress",
|
||||
"pointcache": "cache",
|
||||
"render": "render",
|
||||
"prerender": "render",
|
||||
"render2d": "render",
|
||||
"nukescript": "comp",
|
||||
"write": "render",
|
||||
"review": "mov",
|
||||
"plate": "img",
|
||||
"audio": "audio",
|
||||
"workfile": "scene",
|
||||
"animation": "cache",
|
||||
"image": "img",
|
||||
"reference": "reference",
|
||||
"ass": "cache",
|
||||
"mayaScene": "scene",
|
||||
"camerarig": "rig",
|
||||
"yeticache": "cache",
|
||||
"yetiRig": "rig",
|
||||
"xgen": "xgen",
|
||||
"rendersetup": "rendersetup",
|
||||
"assembly": "assembly",
|
||||
"layout": "layout",
|
||||
"unrealStaticMesh": "geo",
|
||||
"vrayproxy": "cache",
|
||||
"redshiftproxy": "cache",
|
||||
"usd": "usd"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3,6 +3,23 @@
|
|||
"CollectAnatomyInstanceData": {
|
||||
"follow_workfile_version": false
|
||||
},
|
||||
"CollectSceneVersion": {
|
||||
"hosts": [
|
||||
"aftereffects",
|
||||
"blender",
|
||||
"celaction",
|
||||
"fusion",
|
||||
"harmony",
|
||||
"hiero",
|
||||
"houdini",
|
||||
"maya",
|
||||
"nuke",
|
||||
"photoshop",
|
||||
"resolve",
|
||||
"tvpaint"
|
||||
],
|
||||
"skip_hosts_headless_publish": []
|
||||
},
|
||||
"ValidateEditorialAssetName": {
|
||||
"enabled": true,
|
||||
"optional": false
|
||||
|
|
@ -70,7 +87,8 @@
|
|||
"render",
|
||||
"review",
|
||||
"ftrack"
|
||||
]
|
||||
],
|
||||
"subsets": []
|
||||
},
|
||||
"overscan_crop": "",
|
||||
"overscan_color": [
|
||||
|
|
@ -90,7 +108,6 @@
|
|||
"letter_box": {
|
||||
"enabled": false,
|
||||
"ratio": 0.0,
|
||||
"state": "letterbox",
|
||||
"fill_color": [
|
||||
0,
|
||||
0,
|
||||
|
|
@ -190,6 +207,9 @@
|
|||
"CleanUp": {
|
||||
"paterns": [],
|
||||
"remove_temp_renders": false
|
||||
},
|
||||
"CleanUpFarm": {
|
||||
"enabled": false
|
||||
}
|
||||
},
|
||||
"tools": {
|
||||
|
|
@ -219,7 +239,7 @@
|
|||
"hosts": [],
|
||||
"task_types": [],
|
||||
"tasks": [],
|
||||
"template": "{family}{Variant}"
|
||||
"template": "{family}{variant}"
|
||||
},
|
||||
{
|
||||
"families": [
|
||||
|
|
@ -264,6 +284,17 @@
|
|||
"task_types": [],
|
||||
"tasks": [],
|
||||
"template": "render{Task}{Variant}"
|
||||
},
|
||||
{
|
||||
"families": [
|
||||
"unrealStaticMesh"
|
||||
],
|
||||
"hosts": [
|
||||
"maya"
|
||||
],
|
||||
"task_types": [],
|
||||
"tasks": [],
|
||||
"template": "S_{asset}{variant}"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
@ -298,6 +329,7 @@
|
|||
{
|
||||
"hosts": [],
|
||||
"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": []
|
||||
|
|
|
|||
|
|
@ -46,6 +46,20 @@
|
|||
"aov_separator": "underscore",
|
||||
"default_render_image_folder": "renders"
|
||||
},
|
||||
"CreateUnrealStaticMesh": {
|
||||
"enabled": true,
|
||||
"defaults": [
|
||||
"",
|
||||
"_Main"
|
||||
],
|
||||
"static_mesh_prefix": "S_",
|
||||
"collision_prefixes": [
|
||||
"UBX",
|
||||
"UCP",
|
||||
"USP",
|
||||
"UCX"
|
||||
]
|
||||
},
|
||||
"CreateAnimation": {
|
||||
"enabled": true,
|
||||
"defaults": [
|
||||
|
|
@ -123,12 +137,6 @@
|
|||
"Anim"
|
||||
]
|
||||
},
|
||||
"CreateUnrealStaticMesh": {
|
||||
"enabled": true,
|
||||
"defaults": [
|
||||
"Main"
|
||||
]
|
||||
},
|
||||
"CreateVrayProxy": {
|
||||
"enabled": true,
|
||||
"defaults": [
|
||||
|
|
@ -162,6 +170,11 @@
|
|||
"optional": true,
|
||||
"active": true
|
||||
},
|
||||
"ValidateFrameRange": {
|
||||
"enabled": true,
|
||||
"optional": true,
|
||||
"active": true
|
||||
},
|
||||
"ValidateShaderName": {
|
||||
"enabled": false,
|
||||
"regex": "(?P<asset>.*)_(.*)_SHD"
|
||||
|
|
@ -180,6 +193,27 @@
|
|||
"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,
|
||||
"families": [
|
||||
"rig"
|
||||
]
|
||||
},
|
||||
"ValidateRenderSettings": {
|
||||
"arnold_render_attributes": [],
|
||||
"vray_render_attributes": [],
|
||||
|
|
@ -197,6 +231,11 @@
|
|||
"regex": "(.*)_(\\d)*_(?P<shader>.*)_(GEO)",
|
||||
"top_level_regex": ".*_GRP"
|
||||
},
|
||||
"ValidateModelContent": {
|
||||
"enabled": true,
|
||||
"optional": false,
|
||||
"validate_top_group": true
|
||||
},
|
||||
"ValidateTransformNamingSuffix": {
|
||||
"enabled": true,
|
||||
"SUFFIX_NAMING_TABLE": {
|
||||
|
|
@ -281,11 +320,6 @@
|
|||
"optional": true,
|
||||
"active": true
|
||||
},
|
||||
"ValidateModelContent": {
|
||||
"enabled": true,
|
||||
"optional": false,
|
||||
"validate_top_group": true
|
||||
},
|
||||
"ValidateNoAnimation": {
|
||||
"enabled": false,
|
||||
"optional": true,
|
||||
|
|
@ -472,6 +506,12 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"ExtractMayaSceneRaw": {
|
||||
"enabled": true,
|
||||
"add_for_families": [
|
||||
"layout"
|
||||
]
|
||||
},
|
||||
"ExtractCameraAlembic": {
|
||||
"enabled": true,
|
||||
"optional": true,
|
||||
|
|
@ -559,6 +599,12 @@
|
|||
12,
|
||||
255
|
||||
],
|
||||
"vrayscene_layer": [
|
||||
255,
|
||||
150,
|
||||
12,
|
||||
255
|
||||
],
|
||||
"yeticache": [
|
||||
99,
|
||||
206,
|
||||
|
|
|
|||
|
|
@ -32,7 +32,8 @@
|
|||
"Fg01",
|
||||
"Branch01",
|
||||
"Part01"
|
||||
]
|
||||
],
|
||||
"reviewable": false
|
||||
}
|
||||
},
|
||||
"publish": {
|
||||
|
|
@ -115,13 +116,42 @@
|
|||
"baking": {
|
||||
"filter": {
|
||||
"task_types": [],
|
||||
"families": []
|
||||
"families": [],
|
||||
"sebsets": []
|
||||
},
|
||||
"extension": "mov",
|
||||
"viewer_process_override": "",
|
||||
"bake_viewer_process": true,
|
||||
"bake_viewer_input_process": true,
|
||||
"add_tags": []
|
||||
"add_tags": [],
|
||||
"reformat_node_add": false,
|
||||
"reformat_node_config": [
|
||||
{
|
||||
"type": "string",
|
||||
"name": "type",
|
||||
"value": "to format"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"name": "format",
|
||||
"value": "HD_1080"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"name": "filter",
|
||||
"value": "Lanczos6"
|
||||
},
|
||||
{
|
||||
"type": "bool",
|
||||
"name": "black_outside",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"type": "bool",
|
||||
"name": "pbb",
|
||||
"value": false
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -7,15 +7,10 @@
|
|||
}
|
||||
},
|
||||
"publish": {
|
||||
"CollectRemoteInstances": {
|
||||
"color_code_mapping": [
|
||||
{
|
||||
"color_code": [],
|
||||
"layer_name_regex": [],
|
||||
"family": "",
|
||||
"subset_template_name": ""
|
||||
}
|
||||
]
|
||||
"CollectColorCodedInstances": {
|
||||
"create_flatten_image": false,
|
||||
"flatten_subset_template": "",
|
||||
"color_code_mapping": []
|
||||
},
|
||||
"ValidateContainers": {
|
||||
"enabled": true,
|
||||
|
|
@ -33,6 +28,7 @@
|
|||
]
|
||||
},
|
||||
"ExtractReview": {
|
||||
"make_image_sequence": false,
|
||||
"jpg_options": {
|
||||
"tags": []
|
||||
},
|
||||
|
|
@ -48,4 +44,4 @@
|
|||
"create_first_version": false,
|
||||
"custom_templates": []
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"publish": {
|
||||
"CollectSequencesFromJob": {
|
||||
"review": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -10,6 +10,7 @@
|
|||
"hosts": [],
|
||||
"task_types": [],
|
||||
"tasks": [],
|
||||
"subsets": [],
|
||||
"channel_messages": []
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@
|
|||
}
|
||||
},
|
||||
"__dynamic_keys_labels__": {
|
||||
"2022": "2022 (Testing Only)"
|
||||
"2022": "2022"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -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"
|
||||
],
|
||||
|
|
@ -1127,7 +1186,9 @@
|
|||
"darwin": [],
|
||||
"linux": []
|
||||
},
|
||||
"environment": {}
|
||||
"environment": {
|
||||
"MULTIPROCESS": "No"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -1171,58 +1232,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 +1257,6 @@
|
|||
"1-1": "1.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"additional_apps": {}
|
||||
}
|
||||
|
|
@ -2,9 +2,6 @@
|
|||
"studio_name": "Studio name",
|
||||
"studio_code": "stu",
|
||||
"admin_password": "",
|
||||
"production_version": "",
|
||||
"staging_version": "",
|
||||
"version_check_interval": 5,
|
||||
"environment": {
|
||||
"__environment_keys__": {
|
||||
"global": []
|
||||
|
|
@ -19,5 +16,8 @@
|
|||
"windows": [],
|
||||
"darwin": [],
|
||||
"linux": []
|
||||
}
|
||||
},
|
||||
"production_version": "",
|
||||
"staging_version": "",
|
||||
"version_check_interval": 5
|
||||
}
|
||||
|
|
@ -13,7 +13,7 @@
|
|||
}
|
||||
},
|
||||
"ftrack": {
|
||||
"enabled": true,
|
||||
"enabled": false,
|
||||
"ftrack_server": "",
|
||||
"ftrack_actions_path": {
|
||||
"windows": [],
|
||||
|
|
|
|||
|
|
@ -752,7 +752,7 @@ class BaseItemEntity(BaseEntity):
|
|||
|
||||
@abstractmethod
|
||||
def _add_to_project_override(self, on_change_trigger):
|
||||
"""Item's implementation to set values as overriden for project.
|
||||
"""Item's implementation to set values as overridden for project.
|
||||
|
||||
Mark item and all it's children to be stored as project overrides.
|
||||
"""
|
||||
|
|
@ -794,7 +794,7 @@ class BaseItemEntity(BaseEntity):
|
|||
"""Item's implementation to remove project overrides.
|
||||
|
||||
Mark item as does not have project overrides. Must not change
|
||||
`was_overriden` attribute value.
|
||||
`was_overridden` attribute value.
|
||||
|
||||
Args:
|
||||
on_change_trigger (list): Callbacks of `on_change` should be stored
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ from .lib import (
|
|||
)
|
||||
from openpype.settings.constants import (
|
||||
METADATA_KEYS,
|
||||
M_OVERRIDEN_KEY,
|
||||
M_OVERRIDDEN_KEY,
|
||||
KEY_REGEX
|
||||
)
|
||||
from . import (
|
||||
|
|
@ -119,7 +119,7 @@ class DictConditionalEntity(ItemEntity):
|
|||
|
||||
# `current_metadata` are still when schema is loaded
|
||||
# - only metadata stored with dict item are gorup overrides in
|
||||
# M_OVERRIDEN_KEY
|
||||
# M_OVERRIDDEN_KEY
|
||||
self._current_metadata = {}
|
||||
self._metadata_are_modified = False
|
||||
|
||||
|
|
@ -377,9 +377,9 @@ class DictConditionalEntity(ItemEntity):
|
|||
):
|
||||
continue
|
||||
|
||||
if M_OVERRIDEN_KEY not in current_metadata:
|
||||
current_metadata[M_OVERRIDEN_KEY] = []
|
||||
current_metadata[M_OVERRIDEN_KEY].append(key)
|
||||
if M_OVERRIDDEN_KEY not in current_metadata:
|
||||
current_metadata[M_OVERRIDDEN_KEY] = []
|
||||
current_metadata[M_OVERRIDDEN_KEY].append(key)
|
||||
|
||||
# Define if current metadata are avaialble for current override state
|
||||
metadata = NOT_SET
|
||||
|
|
@ -535,7 +535,7 @@ class DictConditionalEntity(ItemEntity):
|
|||
|
||||
enum_value = value.get(self.enum_key)
|
||||
|
||||
old_metadata = metadata.get(M_OVERRIDEN_KEY)
|
||||
old_metadata = metadata.get(M_OVERRIDDEN_KEY)
|
||||
if old_metadata:
|
||||
old_metadata_set = set(old_metadata)
|
||||
new_metadata = []
|
||||
|
|
@ -547,7 +547,7 @@ class DictConditionalEntity(ItemEntity):
|
|||
|
||||
for key in old_metadata_set:
|
||||
new_metadata.append(key)
|
||||
metadata[M_OVERRIDEN_KEY] = new_metadata
|
||||
metadata[M_OVERRIDDEN_KEY] = new_metadata
|
||||
|
||||
return value, metadata
|
||||
|
||||
|
|
@ -584,8 +584,9 @@ class DictConditionalEntity(ItemEntity):
|
|||
|
||||
self.enum_entity.update_default_value(enum_value)
|
||||
for children_by_key in self.non_gui_children.values():
|
||||
value_copy = copy.deepcopy(value)
|
||||
for key, child_obj in children_by_key.items():
|
||||
child_value = value.get(key, NOT_SET)
|
||||
child_value = value_copy.get(key, NOT_SET)
|
||||
child_obj.update_default_value(child_value)
|
||||
|
||||
def update_studio_value(self, value):
|
||||
|
|
@ -620,8 +621,9 @@ class DictConditionalEntity(ItemEntity):
|
|||
|
||||
self.enum_entity.update_studio_value(enum_value)
|
||||
for children_by_key in self.non_gui_children.values():
|
||||
value_copy = copy.deepcopy(value)
|
||||
for key, child_obj in children_by_key.items():
|
||||
child_value = value.get(key, NOT_SET)
|
||||
child_value = value_copy.get(key, NOT_SET)
|
||||
child_obj.update_studio_value(child_value)
|
||||
|
||||
def update_project_value(self, value):
|
||||
|
|
@ -656,8 +658,9 @@ class DictConditionalEntity(ItemEntity):
|
|||
|
||||
self.enum_entity.update_project_value(enum_value)
|
||||
for children_by_key in self.non_gui_children.values():
|
||||
value_copy = copy.deepcopy(value)
|
||||
for key, child_obj in children_by_key.items():
|
||||
child_value = value.get(key, NOT_SET)
|
||||
child_value = value_copy.get(key, NOT_SET)
|
||||
child_obj.update_project_value(child_value)
|
||||
|
||||
def _discard_changes(self, on_change_trigger):
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ from .lib import (
|
|||
)
|
||||
from openpype.settings.constants import (
|
||||
METADATA_KEYS,
|
||||
M_OVERRIDEN_KEY,
|
||||
M_OVERRIDDEN_KEY,
|
||||
KEY_REGEX
|
||||
)
|
||||
from . import (
|
||||
|
|
@ -183,7 +183,7 @@ class DictImmutableKeysEntity(ItemEntity):
|
|||
|
||||
# `current_metadata` are still when schema is loaded
|
||||
# - only metadata stored with dict item are gorup overrides in
|
||||
# M_OVERRIDEN_KEY
|
||||
# M_OVERRIDDEN_KEY
|
||||
self._current_metadata = {}
|
||||
self._metadata_are_modified = False
|
||||
|
||||
|
|
@ -257,9 +257,9 @@ class DictImmutableKeysEntity(ItemEntity):
|
|||
):
|
||||
continue
|
||||
|
||||
if M_OVERRIDEN_KEY not in current_metadata:
|
||||
current_metadata[M_OVERRIDEN_KEY] = []
|
||||
current_metadata[M_OVERRIDEN_KEY].append(key)
|
||||
if M_OVERRIDDEN_KEY not in current_metadata:
|
||||
current_metadata[M_OVERRIDDEN_KEY] = []
|
||||
current_metadata[M_OVERRIDDEN_KEY].append(key)
|
||||
|
||||
# Define if current metadata are avaialble for current override state
|
||||
metadata = NOT_SET
|
||||
|
|
@ -399,7 +399,7 @@ class DictImmutableKeysEntity(ItemEntity):
|
|||
if key in value:
|
||||
metadata[key] = value.pop(key)
|
||||
|
||||
old_metadata = metadata.get(M_OVERRIDEN_KEY)
|
||||
old_metadata = metadata.get(M_OVERRIDDEN_KEY)
|
||||
if old_metadata:
|
||||
old_metadata_set = set(old_metadata)
|
||||
new_metadata = []
|
||||
|
|
@ -410,7 +410,7 @@ class DictImmutableKeysEntity(ItemEntity):
|
|||
|
||||
for key in old_metadata_set:
|
||||
new_metadata.append(key)
|
||||
metadata[M_OVERRIDEN_KEY] = new_metadata
|
||||
metadata[M_OVERRIDDEN_KEY] = new_metadata
|
||||
|
||||
return value, metadata
|
||||
|
||||
|
|
|
|||
|
|
@ -222,7 +222,7 @@ class DictMutableKeysEntity(EndpointEntity):
|
|||
self.required_keys = self.schema_data.get("required_keys") or []
|
||||
self.collapsible_key = self.schema_data.get("collapsible_key") or False
|
||||
# GUI attributes
|
||||
self.hightlight_content = (
|
||||
self.highlight_content = (
|
||||
self.schema_data.get("highlight_content") or False
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -121,6 +121,20 @@ class EnumEntity(BaseEnumEntity):
|
|||
)
|
||||
super(EnumEntity, self).schema_validations()
|
||||
|
||||
def set_override_state(self, *args, **kwargs):
|
||||
super(EnumEntity, self).set_override_state(*args, **kwargs)
|
||||
|
||||
# Make sure current value is valid
|
||||
if self.multiselection:
|
||||
new_value = []
|
||||
for key in self._current_value:
|
||||
if key in self.valid_keys:
|
||||
new_value.append(key)
|
||||
self._current_value = new_value
|
||||
|
||||
elif self._current_value not in self.valid_keys:
|
||||
self._current_value = self.value_on_not_set
|
||||
|
||||
|
||||
class HostsEnumEntity(BaseEnumEntity):
|
||||
"""Enumeration of host names.
|
||||
|
|
@ -249,6 +263,7 @@ class HostsEnumEntity(BaseEnumEntity):
|
|||
|
||||
|
||||
class AppsEnumEntity(BaseEnumEntity):
|
||||
"""Enum of applications for project anatomy attributes."""
|
||||
schema_types = ["apps-enum"]
|
||||
|
||||
def _item_initialization(self):
|
||||
|
|
@ -265,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")
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ class OverrideState:
|
|||
- DEFAULTS - Entity cares only about default values. It is not
|
||||
possible to set higher state if any entity does not have filled
|
||||
default value.
|
||||
- STUDIO - First layer of overrides. Hold only studio overriden values
|
||||
- STUDIO - First layer of overrides. Hold only studio overridden values
|
||||
that are applied on top of defaults.
|
||||
- PROJECT - Second layer of overrides. Hold only project overrides that are
|
||||
applied on top of defaults and studio overrides.
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
))
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
- `"is_file"` - this key is for storing openpype defaults in `openpype` repo
|
||||
- reasons of existence: developing new schemas does not require to create defaults manually
|
||||
- key is validated, must be once in hierarchy else it won't be possible to store openpype defaults
|
||||
- `"is_group"` - define that all values under key in hierarchy will be overriden if any value is modified, this information is also stored to overrides
|
||||
- `"is_group"` - define that all values under key in hierarchy will be overridden if any value is modified, this information is also stored to overrides
|
||||
- this keys is not allowed for all inputs as they may have not reason for that
|
||||
- key is validated, can be only once in hierarchy but is not required
|
||||
- currently there are `system settings` and `project settings`
|
||||
|
|
@ -767,7 +767,7 @@ Anatomy represents data stored on project document.
|
|||
|
||||
### anatomy
|
||||
- entity works similarly to `dict`
|
||||
- anatomy has always all keys overriden with overrides
|
||||
- anatomy has always all keys overridden with overrides
|
||||
- overrides are not applied as all anatomy data must be available from project document
|
||||
- all children must be groups
|
||||
|
||||
|
|
|
|||
|
|
@ -66,6 +66,10 @@
|
|||
"type": "schema",
|
||||
"name": "schema_project_deadline"
|
||||
},
|
||||
{
|
||||
"type": "schema",
|
||||
"name": "schema_project_royalrender"
|
||||
},
|
||||
{
|
||||
"type": "schema",
|
||||
"name": "schema_project_slack"
|
||||
|
|
|
|||
|
|
@ -50,39 +50,6 @@
|
|||
"label": "Skip Timeline Check for Tasks"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
"key": "AfterEffectsSubmitDeadline",
|
||||
"label": "AfterEffects 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"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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": [
|
||||
{
|
||||
|
|
@ -185,7 +103,7 @@
|
|||
"DraftTileAssembler": "Draft Tile Assembler"
|
||||
},
|
||||
{
|
||||
"oiio": "Open Image IO"
|
||||
"OpenPypeTileAssembler": "Open Image IO"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
@ -449,6 +367,77 @@
|
|||
"type": "text",
|
||||
"key": "department",
|
||||
"label": "Department"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "multiprocess",
|
||||
"label": "Multiprocess"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,6 +28,11 @@
|
|||
"key": "hierarchy",
|
||||
"label": "Shot parent hierarchy"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "useShotName",
|
||||
"label": "Use Shot Name"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "clipRename",
|
||||
|
|
@ -166,6 +171,11 @@
|
|||
"label": "XML preset folder (optional)",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"key": "colorspace_out",
|
||||
"label": "Output color (imageio)",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"type": "separator"
|
||||
},
|
||||
|
|
@ -189,6 +199,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"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -723,7 +723,6 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
|
|
@ -743,6 +742,22 @@
|
|||
"label": "Custom attributes to validate"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "dict",
|
||||
"key": "IntegrateFtrackInstance",
|
||||
"label": "IntegrateFtrackInstance",
|
||||
"is_group": true,
|
||||
"children": [
|
||||
{
|
||||
"type": "dict-modifiable",
|
||||
"key": "family_mapping",
|
||||
"label": "Family Mapping",
|
||||
"object_type": {
|
||||
"type": "text"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
@ -154,6 +164,11 @@
|
|||
"key": "ExtractReview",
|
||||
"label": "Extract Review",
|
||||
"children": [
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "make_image_sequence",
|
||||
"label": "Makes an image sequence instead of a flatten image"
|
||||
},
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": false,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
"type": "dict",
|
||||
"key": "royalrender",
|
||||
"label": "Royal Render",
|
||||
"collapsible": true,
|
||||
"is_file": true,
|
||||
"children": [
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
"key": "publish",
|
||||
"label": "Publish plugins",
|
||||
"children": [
|
||||
{
|
||||
"type": "label",
|
||||
"label": "Collectors"
|
||||
},
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
"key": "CollectSequencesFromJob",
|
||||
"label": "Collect Sequences from the Job",
|
||||
"children": [
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "review",
|
||||
"label": "Generate reviews from sequences"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -69,6 +69,12 @@
|
|||
"type": "list",
|
||||
"object_type": "text"
|
||||
},
|
||||
{
|
||||
"key": "subsets",
|
||||
"label": "Subset names",
|
||||
"type": "list",
|
||||
"object_type": "text"
|
||||
},
|
||||
{
|
||||
"type": "separator"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -377,11 +377,47 @@
|
|||
"type": "dict",
|
||||
"label": "Maya",
|
||||
"children": [
|
||||
{
|
||||
"key": "colorManagementPreference_v2",
|
||||
"type": "dict",
|
||||
"label": "Color Management Preference v2 (Maya 2022+)",
|
||||
"collapsible": true,
|
||||
"checkbox_key": "enabled",
|
||||
"children": [
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "enabled",
|
||||
"label": "Use Color Management Preference v2"
|
||||
},
|
||||
{
|
||||
"type": "path",
|
||||
"key": "configFilePath",
|
||||
"label": "OCIO Config File Path",
|
||||
"multiplatform": true,
|
||||
"multipath": true
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "renderSpace",
|
||||
"label": "Rendering Space"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "displayName",
|
||||
"label": "Display"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "viewName",
|
||||
"label": "View"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "colorManagementPreference",
|
||||
"type": "dict",
|
||||
"label": "Color Managment Preference",
|
||||
"collapsible": false,
|
||||
"label": "Color Management Preference (legacy)",
|
||||
"collapsible": true,
|
||||
"children": [
|
||||
{
|
||||
"type": "path",
|
||||
|
|
@ -401,7 +437,69 @@
|
|||
"label": "Viewer Transform"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"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"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -143,6 +143,28 @@
|
|||
"label": "Delivery",
|
||||
"object_type": "text"
|
||||
},
|
||||
{
|
||||
"type": "dict",
|
||||
"key": "unreal",
|
||||
"label": "Unreal",
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"key": "folder",
|
||||
"label": "Folder"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "file",
|
||||
"label": "File"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "path",
|
||||
"label": "Path"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "dict-modifiable",
|
||||
"key": "others",
|
||||
|
|
|
|||
|
|
@ -18,6 +18,27 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
"key": "CollectSceneVersion",
|
||||
"label": "Collect Version from Workfile",
|
||||
"is_group": true,
|
||||
"children": [
|
||||
{
|
||||
"key": "hosts",
|
||||
"label": "Host names",
|
||||
"type": "hosts-enum",
|
||||
"multiselection": true
|
||||
},
|
||||
{
|
||||
"key": "skip_hosts_headless_publish",
|
||||
"label": "Skip for host if headless publish",
|
||||
"type": "hosts-enum",
|
||||
"multiselection": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
|
|
@ -270,6 +291,15 @@
|
|||
"label": "Families",
|
||||
"type": "list",
|
||||
"object_type": "text"
|
||||
},
|
||||
{
|
||||
"type": "separator"
|
||||
},
|
||||
{
|
||||
"key": "subsets",
|
||||
"label": "Subsets",
|
||||
"type": "list",
|
||||
"object_type": "text"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
@ -345,19 +375,6 @@
|
|||
"minimum": 0,
|
||||
"maximum": 10000
|
||||
},
|
||||
{
|
||||
"key": "state",
|
||||
"label": "Type",
|
||||
"type": "enum",
|
||||
"enum_items": [
|
||||
{
|
||||
"letterbox": "Letterbox"
|
||||
},
|
||||
{
|
||||
"pillar": "Pillar"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "color",
|
||||
"label": "Fill Color",
|
||||
|
|
@ -656,8 +673,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"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -267,7 +267,9 @@
|
|||
"label": "Task types"
|
||||
},
|
||||
{
|
||||
"type": "splitter"
|
||||
"type": "boolean",
|
||||
"key": "is_include",
|
||||
"label": "Exclude / Include"
|
||||
},
|
||||
{
|
||||
"type": "template",
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -66,6 +66,38 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
"key": "CreateUnrealStaticMesh",
|
||||
"label": "Create Unreal - Static Mesh",
|
||||
"checkbox_key": "enabled",
|
||||
"children": [
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "enabled",
|
||||
"label": "Enabled"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"key": "defaults",
|
||||
"label": "Default Subsets",
|
||||
"object_type": "text"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "static_mesh_prefix",
|
||||
"label": "Static Mesh Prefix"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"key": "collision_prefixes",
|
||||
"label": "Collision Mesh Prefixes",
|
||||
"object_type": "text"
|
||||
}
|
||||
]
|
||||
|
||||
},
|
||||
{
|
||||
"type": "schema_template",
|
||||
"name": "template_create_plugin",
|
||||
|
|
@ -118,10 +150,6 @@
|
|||
"key": "CreateSetDress",
|
||||
"label": "Create Set Dress"
|
||||
},
|
||||
{
|
||||
"key": "CreateUnrealStaticMesh",
|
||||
"label": "Create Unreal - Static Mesh"
|
||||
},
|
||||
{
|
||||
"key": "CreateVrayProxy",
|
||||
"label": "Create VRay Proxy"
|
||||
|
|
|
|||
|
|
@ -75,6 +75,11 @@
|
|||
"label": "Vray Proxy:",
|
||||
"key": "vrayproxy"
|
||||
},
|
||||
{
|
||||
"type": "color",
|
||||
"label": "Vray Scene:",
|
||||
"key": "vrayscene_layer"
|
||||
},
|
||||
{
|
||||
"type": "color",
|
||||
"label": "Yeti Cache:",
|
||||
|
|
|
|||
|
|
@ -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,118 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"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,
|
||||
"key": "ValidateUnrealStaticMeshName",
|
||||
"label": "Validate Unreal Static Mesh Name",
|
||||
"checkbox_key": "enabled",
|
||||
"children": [
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "enabled",
|
||||
"label": "Enabled"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "validate_mesh",
|
||||
"label": "Validate mesh Names "
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "validate_collision",
|
||||
"label": "Validate collision names"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
"checkbox_key": "enabled",
|
||||
"key": "ValidateCycleError",
|
||||
"label": "Validate Cycle Error",
|
||||
"is_group": true,
|
||||
"children": [
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "enabled",
|
||||
"label": "Enabled"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "optional",
|
||||
"label": "Optional"
|
||||
},
|
||||
{
|
||||
"key": "families",
|
||||
"label": "Families",
|
||||
"type": "list",
|
||||
"object_type": "text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
|
|
@ -232,7 +350,7 @@
|
|||
"label": "Validate Model Content",
|
||||
"checkbox_key": "enabled",
|
||||
"children": [
|
||||
{
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "enabled",
|
||||
"label": "Enabled"
|
||||
|
|
@ -449,6 +567,30 @@
|
|||
"type": "schema",
|
||||
"name": "schema_maya_capture"
|
||||
},
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
"key": "ExtractMayaSceneRaw",
|
||||
"label": "Maya Scene (Raw)",
|
||||
"checkbox_key": "enabled",
|
||||
"children": [
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "enabled",
|
||||
"label": "Enabled"
|
||||
},
|
||||
{
|
||||
"type": "label",
|
||||
"label": "Add loaded instances to those published families:"
|
||||
},
|
||||
{
|
||||
"key": "add_for_families",
|
||||
"label": "Families",
|
||||
"type": "list",
|
||||
"object_type": "text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "dict",
|
||||
"collapsible": true,
|
||||
|
|
|
|||
|
|
@ -195,6 +195,12 @@
|
|||
"label": "Families",
|
||||
"type": "list",
|
||||
"object_type": "text"
|
||||
},
|
||||
{
|
||||
"key": "sebsets",
|
||||
"label": "Subsets",
|
||||
"type": "list",
|
||||
"object_type": "text"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
@ -226,6 +232,121 @@
|
|||
"label": "Add additional tags to representations",
|
||||
"type": "list",
|
||||
"object_type": "text"
|
||||
},
|
||||
{
|
||||
"type": "separator"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "reformat_node_add",
|
||||
"label": "Add Reformat Node",
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"type": "collapsible-wrap",
|
||||
"label": "Reformat Node Knobs",
|
||||
"collapsible": true,
|
||||
"collapsed": false,
|
||||
"children": [
|
||||
{
|
||||
"type": "list",
|
||||
"key": "reformat_node_config",
|
||||
"object_type": {
|
||||
"type": "dict-conditional",
|
||||
"enum_key": "type",
|
||||
"enum_label": "Type",
|
||||
"enum_children": [
|
||||
{
|
||||
"key": "string",
|
||||
"label": "String",
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"key": "name",
|
||||
"label": "Name"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"key": "value",
|
||||
"label": "Value"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "bool",
|
||||
"label": "Boolean",
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"key": "name",
|
||||
"label": "Name"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "value",
|
||||
"label": "Value"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "number",
|
||||
"label": "Number",
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"key": "name",
|
||||
"label": "Name"
|
||||
},
|
||||
{
|
||||
"type": "list-strict",
|
||||
"key": "value",
|
||||
"label": "Value",
|
||||
"object_types": [
|
||||
{
|
||||
"type": "number",
|
||||
"key": "number",
|
||||
"default": 1,
|
||||
"decimal": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "list_numbers",
|
||||
"label": "2 Numbers",
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"key": "name",
|
||||
"label": "Name"
|
||||
},
|
||||
{
|
||||
"type": "list-strict",
|
||||
"key": "value",
|
||||
"label": "Value",
|
||||
"object_types": [
|
||||
{
|
||||
"type": "number",
|
||||
"key": "x",
|
||||
"default": 1,
|
||||
"decimal": 4
|
||||
},
|
||||
{
|
||||
"type": "number",
|
||||
"key": "y",
|
||||
"default": 1,
|
||||
"decimal": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,23 +10,39 @@
|
|||
"multiselection": "{multiselection}",
|
||||
"type": "enum",
|
||||
"enum_items": [
|
||||
{"action": "action"},
|
||||
{"animation": "animation"},
|
||||
{"audio": "audio"},
|
||||
{"camera": "camera"},
|
||||
{"editorial": "editorial"},
|
||||
{"layout": "layout"},
|
||||
{"look": "look"},
|
||||
{"mayaAscii": "mayaAscii"},
|
||||
{"model": "model"},
|
||||
{"pointcache": "pointcache"},
|
||||
{"reference": "reference"},
|
||||
{"render": "render"},
|
||||
{"review": "review"},
|
||||
{"rig": "rig"},
|
||||
{"setdress": "setdress"},
|
||||
{"workfile": "workfile"},
|
||||
{"xgen": "xgen"}
|
||||
{"action": "action"},
|
||||
{"animation": "animation"},
|
||||
{"assembly": "assembly"},
|
||||
{"audio": "audio"},
|
||||
{"backgroundComp": "backgroundComp"},
|
||||
{"backgroundLayout": "backgroundLayout"},
|
||||
{"camera": "camera"},
|
||||
{"editorial": "editorial"},
|
||||
{"gizmo": "gizmo"},
|
||||
{"image": "image"},
|
||||
{"layout": "layout"},
|
||||
{"look": "look"},
|
||||
{"matchmove": "matchmove"},
|
||||
{"mayaScene": "mayaScene"},
|
||||
{"model": "model"},
|
||||
{"nukenodes": "nukenodes"},
|
||||
{"plate": "plate"},
|
||||
{"pointcache": "pointcache"},
|
||||
{"prerender": "prerender"},
|
||||
{"redshiftproxy": "redshiftproxy"},
|
||||
{"reference": "reference"},
|
||||
{"render": "render"},
|
||||
{"review": "review"},
|
||||
{"rig": "rig"},
|
||||
{"setdress": "setdress"},
|
||||
{"take": "take"},
|
||||
{"usdShade": "usdShade"},
|
||||
{"vdbcache": "vdbcache"},
|
||||
{"vrayproxy": "vrayproxy"},
|
||||
{"workfile": "workfile"},
|
||||
{"xgen": "xgen"},
|
||||
{"yetiRig": "yetiRig"},
|
||||
{"yeticache": "yeticache"}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -11,13 +11,13 @@
|
|||
},
|
||||
{
|
||||
"type": "dict-conditional",
|
||||
"key": "overriden_value",
|
||||
"label": "Overriden value",
|
||||
"enum_key": "overriden",
|
||||
"key": "overridden_value",
|
||||
"label": "Overridden value",
|
||||
"enum_key": "overridden",
|
||||
"enum_is_horizontal": true,
|
||||
"enum_children": [
|
||||
{
|
||||
"key": "overriden",
|
||||
"key": "overridden",
|
||||
"label": "Override value",
|
||||
"children": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,36 +30,6 @@
|
|||
{
|
||||
"type": "splitter"
|
||||
},
|
||||
{
|
||||
"type": "label",
|
||||
"label": "Define explicit OpenPype version that should be used. Keep empty to use latest available version."
|
||||
},
|
||||
{
|
||||
"type": "production-versions-text",
|
||||
"key": "production_version",
|
||||
"label": "Production version"
|
||||
},
|
||||
{
|
||||
"type": "staging-versions-text",
|
||||
"key": "staging_version",
|
||||
"label": "Staging version"
|
||||
},
|
||||
{
|
||||
"type": "splitter"
|
||||
},
|
||||
{
|
||||
"type": "label",
|
||||
"label": "Trigger validation if running OpenPype is using studio defined version each 'n' <b>minutes</b>. Validation happens in OpenPype tray application."
|
||||
},
|
||||
{
|
||||
"type": "number",
|
||||
"key": "version_check_interval",
|
||||
"label": "Version check interval",
|
||||
"minimum": 0
|
||||
},
|
||||
{
|
||||
"type": "splitter"
|
||||
},
|
||||
{
|
||||
"key": "environment",
|
||||
"label": "Environment",
|
||||
|
|
@ -141,12 +111,49 @@
|
|||
"type": "splitter"
|
||||
},
|
||||
{
|
||||
"type": "path",
|
||||
"key": "openpype_path",
|
||||
"label": "Versions Repository",
|
||||
"multiplatform": true,
|
||||
"multipath": true,
|
||||
"require_restart": true
|
||||
"type": "collapsible-wrap",
|
||||
"label": "OpenPype deployment control",
|
||||
"collapsible": false,
|
||||
"children": [
|
||||
{
|
||||
"type": "path",
|
||||
"key": "openpype_path",
|
||||
"label": "Versions Repository",
|
||||
"multiplatform": true,
|
||||
"multipath": true,
|
||||
"require_restart": true
|
||||
},
|
||||
{
|
||||
"type": "splitter"
|
||||
},
|
||||
{
|
||||
"type": "label",
|
||||
"label": "Define explicit OpenPype version that should be used. Keep empty to use latest available version."
|
||||
},
|
||||
{
|
||||
"type": "production-versions-text",
|
||||
"key": "production_version",
|
||||
"label": "Production version"
|
||||
},
|
||||
{
|
||||
"type": "staging-versions-text",
|
||||
"key": "staging_version",
|
||||
"label": "Staging version"
|
||||
},
|
||||
{
|
||||
"type": "splitter"
|
||||
},
|
||||
{
|
||||
"type": "label",
|
||||
"label": "Trigger validation if running OpenPype is using studio defined version each 'n' <b>minutes</b>. Validation happens in OpenPype tray application."
|
||||
},
|
||||
{
|
||||
"type": "number",
|
||||
"key": "version_check_interval",
|
||||
"label": "Version check interval",
|
||||
"minimum": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -8,7 +8,7 @@ from .exceptions import (
|
|||
SaveWarningExc
|
||||
)
|
||||
from .constants import (
|
||||
M_OVERRIDEN_KEY,
|
||||
M_OVERRIDDEN_KEY,
|
||||
M_ENVIRONMENT_KEY,
|
||||
|
||||
METADATA_KEYS,
|
||||
|
|
@ -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)
|
||||
|
|
@ -546,13 +671,13 @@ def subkey_merge(_dict, value, keys):
|
|||
def merge_overrides(source_dict, override_dict):
|
||||
"""Merge data from override_dict to source_dict."""
|
||||
|
||||
if M_OVERRIDEN_KEY in override_dict:
|
||||
overriden_keys = set(override_dict.pop(M_OVERRIDEN_KEY))
|
||||
if M_OVERRIDDEN_KEY in override_dict:
|
||||
overridden_keys = set(override_dict.pop(M_OVERRIDDEN_KEY))
|
||||
else:
|
||||
overriden_keys = set()
|
||||
overridden_keys = set()
|
||||
|
||||
for key, value in override_dict.items():
|
||||
if (key in overriden_keys or key not in source_dict):
|
||||
if (key in overridden_keys or key not in source_dict):
|
||||
source_dict[key] = value
|
||||
|
||||
elif isinstance(value, dict) and isinstance(source_dict[key], dict):
|
||||
|
|
@ -574,17 +699,32 @@ def apply_local_settings_on_system_settings(system_settings, local_settings):
|
|||
"""Apply local settings on studio system settings.
|
||||
|
||||
ATM local settings can modify only application executables. Executable
|
||||
values are not overriden but prepended.
|
||||
values are not overridden but prepended.
|
||||
"""
|
||||
if not local_settings or "applications" not in 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
|
||||
|
|
@ -914,7 +1054,7 @@ def get_environments():
|
|||
"""Calculated environment based on defaults and system settings.
|
||||
|
||||
Any default environment also found in the system settings will be fully
|
||||
overriden by the one from the system settings.
|
||||
overridden by the one from the system settings.
|
||||
|
||||
Returns:
|
||||
dict: Output should be ready for `acre` module.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue