mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 16:34:53 +01:00
Merge branch 'develop' of github.com:pypeclub/pype into feature/1121-site-sync-add-site-information-and-buttons-to-loader_op
This commit is contained in:
commit
f2609f5f12
376 changed files with 21577 additions and 233 deletions
|
|
@ -57,27 +57,12 @@ def _prepare_publish_environments():
|
|||
project_name = os.getenv("AVALON_PROJECT")
|
||||
asset_name = os.getenv("AVALON_ASSET")
|
||||
|
||||
io.install()
|
||||
project_doc = io.find_one({
|
||||
"type": "project"
|
||||
})
|
||||
av_asset = io.find_one({
|
||||
"type": "asset",
|
||||
"name": asset_name
|
||||
})
|
||||
parents = av_asset["data"]["parents"]
|
||||
hierarchy = ""
|
||||
if parents:
|
||||
hierarchy = "/".join(parents)
|
||||
|
||||
env["AVALON_PROJECT"] = project_name
|
||||
env["AVALON_ASSET"] = asset_name
|
||||
env["AVALON_TASK"] = os.getenv("AVALON_TASK")
|
||||
env["AVALON_WORKDIR"] = os.getenv("AVALON_WORKDIR")
|
||||
env["AVALON_HIERARCHY"] = hierarchy
|
||||
env["AVALON_PROJECTCODE"] = project_doc["data"].get("code", "")
|
||||
env["AVALON_APP"] = f"hosts.{publish_host}"
|
||||
env["AVALON_APP_NAME"] = "celaction_local"
|
||||
env["AVALON_APP_NAME"] = "celaction/local"
|
||||
|
||||
env["PYBLISH_HOSTS"] = publish_host
|
||||
|
||||
|
|
|
|||
|
|
@ -1,18 +1,12 @@
|
|||
import os
|
||||
import sys
|
||||
import nuke
|
||||
|
||||
from avalon import api as avalon
|
||||
from openpype.tools import workfiles
|
||||
from pyblish import api as pyblish
|
||||
from openpype.api import Logger
|
||||
import openpype.hosts.nuke
|
||||
import avalon.api
|
||||
import pyblish.api
|
||||
import openpype
|
||||
from . import lib, menu
|
||||
|
||||
|
||||
self = sys.modules[__name__]
|
||||
self.workfiles_launched = False
|
||||
log = Logger().get_logger(__name__)
|
||||
log = openpype.api.Logger().get_logger(__name__)
|
||||
|
||||
AVALON_CONFIG = os.getenv("AVALON_CONFIG", "pype")
|
||||
HOST_DIR = os.path.dirname(os.path.abspath(openpype.hosts.nuke.__file__))
|
||||
|
|
@ -25,7 +19,7 @@ INVENTORY_PATH = os.path.join(PLUGINS_DIR, "inventory")
|
|||
|
||||
# registering pyblish gui regarding settings in presets
|
||||
if os.getenv("PYBLISH_GUI", None):
|
||||
pyblish.register_gui(os.getenv("PYBLISH_GUI", None))
|
||||
pyblish.api.register_gui(os.getenv("PYBLISH_GUI", None))
|
||||
|
||||
|
||||
def reload_config():
|
||||
|
|
@ -61,15 +55,16 @@ def install():
|
|||
'''
|
||||
|
||||
log.info("Registering Nuke plug-ins..")
|
||||
pyblish.register_plugin_path(PUBLISH_PATH)
|
||||
avalon.register_plugin_path(avalon.Loader, LOAD_PATH)
|
||||
avalon.register_plugin_path(avalon.Creator, CREATE_PATH)
|
||||
avalon.register_plugin_path(avalon.InventoryAction, INVENTORY_PATH)
|
||||
pyblish.api.register_plugin_path(PUBLISH_PATH)
|
||||
avalon.api.register_plugin_path(avalon.api.Loader, LOAD_PATH)
|
||||
avalon.api.register_plugin_path(avalon.api.Creator, CREATE_PATH)
|
||||
avalon.api.register_plugin_path(avalon.api.InventoryAction, INVENTORY_PATH)
|
||||
|
||||
# Register Avalon event for workfiles loading.
|
||||
avalon.on("workio.open_file", lib.check_inventory_versions)
|
||||
avalon.api.on("workio.open_file", lib.check_inventory_versions)
|
||||
|
||||
pyblish.register_callback("instanceToggled", on_pyblish_instance_toggled)
|
||||
pyblish.api.register_callback(
|
||||
"instanceToggled", on_pyblish_instance_toggled)
|
||||
workfile_settings = lib.WorkfileSettings()
|
||||
# Disable all families except for the ones we explicitly want to see
|
||||
family_states = [
|
||||
|
|
@ -79,39 +74,27 @@ def install():
|
|||
"gizmo"
|
||||
]
|
||||
|
||||
avalon.data["familiesStateDefault"] = False
|
||||
avalon.data["familiesStateToggled"] = family_states
|
||||
|
||||
# Workfiles.
|
||||
launch_workfiles = os.environ.get("WORKFILES_STARTUP")
|
||||
|
||||
if launch_workfiles:
|
||||
nuke.addOnCreate(launch_workfiles_app, nodeClass="Root")
|
||||
avalon.api.data["familiesStateDefault"] = False
|
||||
avalon.api.data["familiesStateToggled"] = family_states
|
||||
|
||||
# Set context settings.
|
||||
nuke.addOnCreate(workfile_settings.set_context_settings, nodeClass="Root")
|
||||
# nuke.addOnCreate(workfile_settings.set_favorites, nodeClass="Root")
|
||||
|
||||
nuke.addOnCreate(workfile_settings.set_favorites, nodeClass="Root")
|
||||
nuke.addOnCreate(lib.open_last_workfile, nodeClass="Root")
|
||||
nuke.addOnCreate(lib.launch_workfiles_app, nodeClass="Root")
|
||||
menu.install()
|
||||
|
||||
|
||||
def launch_workfiles_app():
|
||||
'''Function letting start workfiles after start of host
|
||||
'''
|
||||
if not self.workfiles_launched:
|
||||
self.workfiles_launched = True
|
||||
workfiles.show(os.environ["AVALON_WORKDIR"])
|
||||
|
||||
|
||||
def uninstall():
|
||||
'''Uninstalling host's integration
|
||||
'''
|
||||
log.info("Deregistering Nuke plug-ins..")
|
||||
pyblish.deregister_plugin_path(PUBLISH_PATH)
|
||||
avalon.deregister_plugin_path(avalon.Loader, LOAD_PATH)
|
||||
avalon.deregister_plugin_path(avalon.Creator, CREATE_PATH)
|
||||
pyblish.api.deregister_plugin_path(PUBLISH_PATH)
|
||||
avalon.api.deregister_plugin_path(avalon.api.Loader, LOAD_PATH)
|
||||
avalon.api.deregister_plugin_path(avalon.api.Creator, CREATE_PATH)
|
||||
|
||||
pyblish.deregister_callback("instanceToggled", on_pyblish_instance_toggled)
|
||||
pyblish.api.deregister_callback(
|
||||
"instanceToggled", on_pyblish_instance_toggled)
|
||||
|
||||
reload_config()
|
||||
menu.uninstall()
|
||||
|
|
@ -123,7 +106,7 @@ def on_pyblish_instance_toggled(instance, old_value, new_value):
|
|||
log.info("instance toggle: {}, old_value: {}, new_value:{} ".format(
|
||||
instance, old_value, new_value))
|
||||
|
||||
from avalon.nuke import (
|
||||
from avalon.api.nuke import (
|
||||
viewer_update_and_undo_stop,
|
||||
add_publish_knob
|
||||
)
|
||||
|
|
|
|||
|
|
@ -3,9 +3,14 @@ import re
|
|||
import sys
|
||||
from collections import OrderedDict
|
||||
|
||||
|
||||
from avalon import api, io, lib
|
||||
from avalon.tools import workfiles
|
||||
import avalon.nuke
|
||||
from avalon.nuke import lib as anlib
|
||||
from avalon.nuke import (
|
||||
save_file, open_file
|
||||
)
|
||||
from openpype.api import (
|
||||
Logger,
|
||||
Anatomy,
|
||||
|
|
@ -13,6 +18,7 @@ from openpype.api import (
|
|||
get_anatomy_settings,
|
||||
get_hierarchy,
|
||||
get_asset,
|
||||
get_current_project_settings,
|
||||
config,
|
||||
ApplicationManager
|
||||
)
|
||||
|
|
@ -25,8 +31,10 @@ log = Logger().get_logger(__name__)
|
|||
|
||||
self = sys.modules[__name__]
|
||||
self._project = None
|
||||
self.workfiles_launched = False
|
||||
self._node_tab_name = "{}".format(os.getenv("AVALON_LABEL") or "Avalon")
|
||||
|
||||
|
||||
def get_node_imageio_setting(**kwarg):
|
||||
''' Get preset data for dataflow (fileType, compression, bitDepth)
|
||||
'''
|
||||
|
|
@ -1616,3 +1624,41 @@ def find_free_space_to_paste_nodes(
|
|||
xpos = min(group_xpos)
|
||||
ypos = max(group_ypos) + abs(offset)
|
||||
return xpos, ypos
|
||||
|
||||
|
||||
def launch_workfiles_app():
|
||||
'''Function letting start workfiles after start of host
|
||||
'''
|
||||
# get state from settings
|
||||
open_at_start = get_current_project_settings()["nuke"].get(
|
||||
"general", {}).get("open_workfile_at_start")
|
||||
|
||||
# return if none is defined
|
||||
if not open_at_start:
|
||||
return
|
||||
|
||||
if not self.workfiles_launched:
|
||||
self.workfiles_launched = True
|
||||
workfiles.show(os.environ["AVALON_WORKDIR"])
|
||||
|
||||
|
||||
def open_last_workfile():
|
||||
# get state from settings
|
||||
open_last_version = get_current_project_settings()["nuke"].get(
|
||||
"general", {}).get("create_initial_workfile")
|
||||
|
||||
log.info("Opening last workfile...")
|
||||
last_workfile_path = os.environ.get("AVALON_LAST_WORKFILE")
|
||||
|
||||
if not os.path.exists(last_workfile_path):
|
||||
# return if none is defined
|
||||
if not open_last_version:
|
||||
return
|
||||
|
||||
save_file(last_workfile_path)
|
||||
else:
|
||||
# to avoid looping of the callback, remove it!
|
||||
nuke.removeOnCreate(open_last_workfile, nodeClass="Root")
|
||||
|
||||
# open workfile
|
||||
open_file(last_workfile_path)
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ class ApplictionExecutableNotFound(Exception):
|
|||
for executable in application.executables:
|
||||
details += "\n- " + executable.executable_path
|
||||
|
||||
self.msg = msg.format(application.full_label, application.name)
|
||||
self.msg = msg.format(application.full_label, application.full_name)
|
||||
self.details = details
|
||||
|
||||
exc_mgs = str(self.msg)
|
||||
|
|
@ -244,7 +244,7 @@ class Application:
|
|||
Returns:
|
||||
subprocess.Popen: Return executed process as Popen object.
|
||||
"""
|
||||
return self.manager.launch(self.name, *args, **kwargs)
|
||||
return self.manager.launch(self.full_name, *args, **kwargs)
|
||||
|
||||
|
||||
class ApplicationManager:
|
||||
|
|
@ -273,7 +273,7 @@ class ApplicationManager:
|
|||
self.app_groups[group_name] = group
|
||||
for app in group:
|
||||
# TODO This should be replaced with `full_name` in future
|
||||
self.applications[app.name] = app
|
||||
self.applications[app.full_name] = app
|
||||
|
||||
tools_definitions = settings["tools"]["tool_groups"]
|
||||
for tool_group_name, tool_group_data in tools_definitions.items():
|
||||
|
|
@ -502,7 +502,7 @@ class LaunchHook:
|
|||
|
||||
@property
|
||||
def app_name(self):
|
||||
return getattr(self.application, "name", None)
|
||||
return getattr(self.application, "full_name", None)
|
||||
|
||||
def validate(self):
|
||||
"""Optional validation of launch hook on initialization.
|
||||
|
|
@ -939,7 +939,7 @@ def get_app_environments_for_context(
|
|||
"project_name": project_name,
|
||||
"asset_name": asset_name,
|
||||
"task_name": task_name,
|
||||
"app_name": app_name,
|
||||
|
||||
"app": app,
|
||||
|
||||
"dbcon": dbcon,
|
||||
|
|
@ -1117,8 +1117,7 @@ def prepare_context_environments(data):
|
|||
"AVALON_ASSET": asset_doc["name"],
|
||||
"AVALON_TASK": task_name,
|
||||
"AVALON_APP": app.host_name,
|
||||
# TODO this hould be `app.full_name` in future PRs
|
||||
"AVALON_APP_NAME": app.name,
|
||||
"AVALON_APP_NAME": app.full_name,
|
||||
"AVALON_WORKDIR": workdir
|
||||
}
|
||||
log.debug(
|
||||
|
|
|
|||
|
|
@ -252,7 +252,7 @@ class HarmonySubmitDeadline(
|
|||
def get_job_info(self):
|
||||
job_info = DeadlineJobInfo("Harmony")
|
||||
job_info.Name = self._instance.data["name"]
|
||||
job_info.Plugin = "HarmonyPype"
|
||||
job_info.Plugin = "HarmonyOpenPype"
|
||||
job_info.Frames = "{}-{}".format(
|
||||
self._instance.data["frameStartHandle"],
|
||||
self._instance.data["frameEndHandle"]
|
||||
|
|
@ -42,7 +42,7 @@ class FtrackModule(
|
|||
ftrack_settings = settings[self.name]
|
||||
|
||||
self.enabled = ftrack_settings["enabled"]
|
||||
self.ftrack_url = ftrack_settings["ftrack_server"]
|
||||
self.ftrack_url = ftrack_settings["ftrack_server"].strip("/ ")
|
||||
|
||||
current_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
server_event_handlers_paths = [
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
"priority": 50,
|
||||
"primary_pool": "",
|
||||
"secondary_pool": "",
|
||||
"chunk_size": 0
|
||||
"chunk_size": 1000000
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -6,7 +6,9 @@
|
|||
"load": "ctrl+alt+l",
|
||||
"manage": "ctrl+alt+m",
|
||||
"build_workfile": "ctrl+alt+b"
|
||||
}
|
||||
},
|
||||
"open_workfile_at_start": false,
|
||||
"create_initial_workfile": true
|
||||
},
|
||||
"create": {
|
||||
"CreateWriteRender": {
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
"OPENPYPE_LOG_NO_COLORS": "Yes"
|
||||
},
|
||||
"variants": {
|
||||
"maya_2020": {
|
||||
"2020": {
|
||||
"enabled": true,
|
||||
"variant_label": "2020",
|
||||
"executables": {
|
||||
|
|
@ -40,7 +40,7 @@
|
|||
"MAYA_VERSION": "2020"
|
||||
}
|
||||
},
|
||||
"maya_2019": {
|
||||
"2019": {
|
||||
"enabled": true,
|
||||
"variant_label": "2019",
|
||||
"executables": {
|
||||
|
|
@ -61,7 +61,7 @@
|
|||
"MAYA_VERSION": "2019"
|
||||
}
|
||||
},
|
||||
"maya_2018": {
|
||||
"2018": {
|
||||
"enabled": true,
|
||||
"variant_label": "2018",
|
||||
"executables": {
|
||||
|
|
@ -105,7 +105,7 @@
|
|||
"MAYA_TEST": "{MAYA_VERSION}"
|
||||
},
|
||||
"variants": {
|
||||
"mayabatch_2020": {
|
||||
"2020": {
|
||||
"enabled": true,
|
||||
"variant_label": "2020",
|
||||
"executables": {
|
||||
|
|
@ -124,7 +124,7 @@
|
|||
"MAYA_VERSION": "2020"
|
||||
}
|
||||
},
|
||||
"mayabatch_2019": {
|
||||
"2019": {
|
||||
"enabled": true,
|
||||
"variant_label": "2019",
|
||||
"executables": {
|
||||
|
|
@ -143,7 +143,7 @@
|
|||
"MAYA_VERSION": "2019"
|
||||
}
|
||||
},
|
||||
"mayabatch_2018": {
|
||||
"2018": {
|
||||
"enabled": true,
|
||||
"variant_label": "2018",
|
||||
"executables": {
|
||||
|
|
@ -181,7 +181,7 @@
|
|||
"LOGLEVEL": "DEBUG"
|
||||
},
|
||||
"variants": {
|
||||
"nuke_12-2": {
|
||||
"12-2": {
|
||||
"enabled": true,
|
||||
"variant_label": "12.2",
|
||||
"executables": {
|
||||
|
|
@ -200,7 +200,7 @@
|
|||
},
|
||||
"environment": {}
|
||||
},
|
||||
"nuke_12-0": {
|
||||
"12-0": {
|
||||
"enabled": true,
|
||||
"variant_label": "12.0",
|
||||
"executables": {
|
||||
|
|
@ -219,7 +219,7 @@
|
|||
},
|
||||
"environment": {}
|
||||
},
|
||||
"nuke_11-3": {
|
||||
"11-3": {
|
||||
"enabled": true,
|
||||
"variant_label": "11.3",
|
||||
"executables": {
|
||||
|
|
@ -238,7 +238,7 @@
|
|||
},
|
||||
"environment": {}
|
||||
},
|
||||
"nuke_11-2": {
|
||||
"11-2": {
|
||||
"enabled": true,
|
||||
"variant_label": "11.2",
|
||||
"executables": {
|
||||
|
|
@ -274,7 +274,7 @@
|
|||
"LOGLEVEL": "DEBUG"
|
||||
},
|
||||
"variants": {
|
||||
"nukex_12-2": {
|
||||
"12-2": {
|
||||
"enabled": true,
|
||||
"variant_label": "12.2",
|
||||
"executables": {
|
||||
|
|
@ -299,7 +299,7 @@
|
|||
},
|
||||
"environment": {}
|
||||
},
|
||||
"nukex_12-0": {
|
||||
"12-0": {
|
||||
"enabled": true,
|
||||
"variant_label": "12.0",
|
||||
"executables": {
|
||||
|
|
@ -324,7 +324,7 @@
|
|||
},
|
||||
"environment": {}
|
||||
},
|
||||
"nukex_11-3": {
|
||||
"11-3": {
|
||||
"enabled": true,
|
||||
"variant_label": "11.3",
|
||||
"executables": {
|
||||
|
|
@ -349,7 +349,7 @@
|
|||
},
|
||||
"environment": {}
|
||||
},
|
||||
"nukex_11-2": {
|
||||
"11-2": {
|
||||
"enabled": true,
|
||||
"variant_label": "11.2",
|
||||
"executables": {
|
||||
|
|
@ -391,7 +391,7 @@
|
|||
"LOGLEVEL": "DEBUG"
|
||||
},
|
||||
"variants": {
|
||||
"nukestudio_12-2": {
|
||||
"12-2": {
|
||||
"enabled": true,
|
||||
"variant_label": "12.2",
|
||||
"executables": {
|
||||
|
|
@ -416,7 +416,7 @@
|
|||
},
|
||||
"environment": {}
|
||||
},
|
||||
"nukestudio_12-0": {
|
||||
"12-0": {
|
||||
"enabled": true,
|
||||
"variant_label": "12.0",
|
||||
"executables": {
|
||||
|
|
@ -441,7 +441,7 @@
|
|||
},
|
||||
"environment": {}
|
||||
},
|
||||
"nukestudio_11-3": {
|
||||
"11-3": {
|
||||
"enabled": true,
|
||||
"variant_label": "11.3",
|
||||
"executables": {
|
||||
|
|
@ -466,7 +466,7 @@
|
|||
},
|
||||
"environment": {}
|
||||
},
|
||||
"nukestudio_11-2": {
|
||||
"11-2": {
|
||||
"enabled": true,
|
||||
"variant_label": "11.2",
|
||||
"executables": {
|
||||
|
|
@ -506,7 +506,7 @@
|
|||
"LOGLEVEL": "DEBUG"
|
||||
},
|
||||
"variants": {
|
||||
"hiero_12-2": {
|
||||
"12-2": {
|
||||
"enabled": true,
|
||||
"variant_label": "12.2",
|
||||
"executables": {
|
||||
|
|
@ -531,7 +531,7 @@
|
|||
},
|
||||
"environment": {}
|
||||
},
|
||||
"hiero_12-0": {
|
||||
"12-0": {
|
||||
"enabled": true,
|
||||
"variant_label": "12.0",
|
||||
"executables": {
|
||||
|
|
@ -556,7 +556,7 @@
|
|||
},
|
||||
"environment": {}
|
||||
},
|
||||
"hiero_11-3": {
|
||||
"11-3": {
|
||||
"enabled": true,
|
||||
"variant_label": "11.3",
|
||||
"executables": {
|
||||
|
|
@ -581,7 +581,7 @@
|
|||
},
|
||||
"environment": {}
|
||||
},
|
||||
"hiero_11-2": {
|
||||
"11-2": {
|
||||
"enabled": true,
|
||||
"variant_label": "11.2",
|
||||
"executables": {
|
||||
|
|
@ -636,7 +636,7 @@
|
|||
"OPENPYPE_LOG_NO_COLORS": "Yes"
|
||||
},
|
||||
"variants": {
|
||||
"fusion_16": {
|
||||
"16": {
|
||||
"enabled": true,
|
||||
"variant_label": "16",
|
||||
"executables": {
|
||||
|
|
@ -651,7 +651,7 @@
|
|||
},
|
||||
"environment": {}
|
||||
},
|
||||
"fusion_9": {
|
||||
"9": {
|
||||
"enabled": true,
|
||||
"variant_label": "9",
|
||||
"executables": {
|
||||
|
|
@ -714,7 +714,7 @@
|
|||
"RESOLVE_DEV": "True"
|
||||
},
|
||||
"variants": {
|
||||
"resolve_16": {
|
||||
"16": {
|
||||
"enabled": true,
|
||||
"variant_label": "16",
|
||||
"executables": {
|
||||
|
|
@ -751,7 +751,7 @@
|
|||
}
|
||||
},
|
||||
"variants": {
|
||||
"houdini_18-5": {
|
||||
"18-5": {
|
||||
"enabled": true,
|
||||
"variant_label": "18.5",
|
||||
"executables": {
|
||||
|
|
@ -768,7 +768,7 @@
|
|||
},
|
||||
"environment": {}
|
||||
},
|
||||
"houdini_18": {
|
||||
"18": {
|
||||
"enabled": true,
|
||||
"variant_label": "18",
|
||||
"executables": {
|
||||
|
|
@ -783,7 +783,7 @@
|
|||
},
|
||||
"environment": {}
|
||||
},
|
||||
"houdini_17": {
|
||||
"17": {
|
||||
"enabled": true,
|
||||
"variant_label": "17",
|
||||
"executables": {
|
||||
|
|
@ -814,7 +814,7 @@
|
|||
"CREATE_NEW_CONSOLE": "yes"
|
||||
},
|
||||
"variants": {
|
||||
"blender_2-83": {
|
||||
"2-83": {
|
||||
"enabled": true,
|
||||
"variant_label": "2.83",
|
||||
"executables": {
|
||||
|
|
@ -837,7 +837,7 @@
|
|||
},
|
||||
"environment": {}
|
||||
},
|
||||
"blender_2-90": {
|
||||
"2-90": {
|
||||
"enabled": true,
|
||||
"variant_label": "2.90",
|
||||
"executables": {
|
||||
|
|
@ -872,7 +872,7 @@
|
|||
"LIB_OPENHARMONY_PATH": "{OPENPYPE_ROOT}/pype/vendor/OpenHarmony"
|
||||
},
|
||||
"variants": {
|
||||
"harmony_20": {
|
||||
"20": {
|
||||
"enabled": true,
|
||||
"variant_label": "20",
|
||||
"executables": {
|
||||
|
|
@ -887,7 +887,7 @@
|
|||
},
|
||||
"environment": {}
|
||||
},
|
||||
"harmony_17": {
|
||||
"17": {
|
||||
"enabled": true,
|
||||
"variant_label": "17",
|
||||
"executables": {
|
||||
|
|
@ -915,7 +915,7 @@
|
|||
"OPENPYPE_LOG_NO_COLORS": "True"
|
||||
},
|
||||
"variants": {
|
||||
"tvpaint_animation_11-64bits": {
|
||||
"animation_11-64bits": {
|
||||
"enabled": true,
|
||||
"variant_label": "11 (64bits)",
|
||||
"executables": {
|
||||
|
|
@ -932,7 +932,7 @@
|
|||
},
|
||||
"environment": {}
|
||||
},
|
||||
"tvpaint_animation_11-32bits": {
|
||||
"animation_11-32bits": {
|
||||
"enabled": true,
|
||||
"variant_label": "11 (32bits)",
|
||||
"executables": {
|
||||
|
|
@ -963,7 +963,7 @@
|
|||
"WORKFILES_SAVE_AS": "Yes"
|
||||
},
|
||||
"variants": {
|
||||
"photoshop_2020": {
|
||||
"2020": {
|
||||
"enabled": true,
|
||||
"variant_label": "2020",
|
||||
"executables": {
|
||||
|
|
@ -980,7 +980,7 @@
|
|||
},
|
||||
"environment": {}
|
||||
},
|
||||
"photoshop_2021": {
|
||||
"2021": {
|
||||
"enabled": true,
|
||||
"variant_label": "2021",
|
||||
"executables": {
|
||||
|
|
@ -1011,7 +1011,7 @@
|
|||
"WORKFILES_SAVE_AS": "Yes"
|
||||
},
|
||||
"variants": {
|
||||
"aftereffects_2020": {
|
||||
"2020": {
|
||||
"enabled": true,
|
||||
"variant_label": "2020",
|
||||
"executables": {
|
||||
|
|
@ -1028,7 +1028,7 @@
|
|||
},
|
||||
"environment": {}
|
||||
},
|
||||
"aftereffects_2021": {
|
||||
"2021": {
|
||||
"enabled": true,
|
||||
"variant_label": "2021",
|
||||
"executables": {
|
||||
|
|
@ -1056,10 +1056,14 @@
|
|||
"CELACTION_TEMPLATE": "{OPENPYPE_ROOT}/openpype/hosts/celaction/celaction_template_scene.scn"
|
||||
},
|
||||
"variants": {
|
||||
"celation_Local": {
|
||||
"local": {
|
||||
"enabled": true,
|
||||
"variant_label": "Local",
|
||||
"executables": "",
|
||||
"executables": {
|
||||
"windows": [],
|
||||
"darwin": [],
|
||||
"linux": []
|
||||
},
|
||||
"arguments": {
|
||||
"windows": [],
|
||||
"darwin": [],
|
||||
|
|
@ -1080,7 +1084,7 @@
|
|||
"QT_PREFERRED_BINDING": "PySide"
|
||||
},
|
||||
"variants": {
|
||||
"unreal_4-24": {
|
||||
"4-24": {
|
||||
"enabled": true,
|
||||
"variant_label": "4.24",
|
||||
"executables": {
|
||||
|
|
@ -1101,7 +1105,7 @@
|
|||
"enabled": true,
|
||||
"environment": {},
|
||||
"variants": {
|
||||
"python_python_3-7": {
|
||||
"python_3-7": {
|
||||
"enabled": true,
|
||||
"variant_label": "3.7",
|
||||
"executables": {
|
||||
|
|
@ -1116,7 +1120,7 @@
|
|||
},
|
||||
"environment": {}
|
||||
},
|
||||
"python_python_2-7": {
|
||||
"python_2-7": {
|
||||
"enabled": true,
|
||||
"variant_label": "2.7",
|
||||
"executables": {
|
||||
|
|
@ -1131,7 +1135,7 @@
|
|||
},
|
||||
"environment": {}
|
||||
},
|
||||
"terminal_terminal": {
|
||||
"terminal": {
|
||||
"enabled": true,
|
||||
"variant_label": "",
|
||||
"executables": {
|
||||
|
|
@ -1155,7 +1159,7 @@
|
|||
"host_name": "",
|
||||
"environment": {},
|
||||
"variants": {
|
||||
"djvview_1-1": {
|
||||
"1-1": {
|
||||
"enabled": true,
|
||||
"variant_label": "1.1",
|
||||
"executables": {
|
||||
|
|
|
|||
|
|
@ -117,7 +117,8 @@ class AppsEnumEntity(BaseEnumEntity):
|
|||
|
||||
valid_keys = set()
|
||||
enum_items = []
|
||||
for app_group in system_settings_entity["applications"].values():
|
||||
applications_entity = system_settings_entity["applications"]
|
||||
for group_name, app_group in applications_entity.items():
|
||||
enabled_entity = app_group.get("enabled")
|
||||
if enabled_entity and not enabled_entity.value:
|
||||
continue
|
||||
|
|
@ -134,10 +135,14 @@ class AppsEnumEntity(BaseEnumEntity):
|
|||
continue
|
||||
|
||||
variant_label = variant_entity["variant_label"].value
|
||||
if group_label:
|
||||
full_label = "{} {}".format(group_label, variant_label)
|
||||
else:
|
||||
full_label = variant_label
|
||||
|
||||
full_label = "{} {}".format(group_label, variant_label)
|
||||
enum_items.append({variant_name: full_label})
|
||||
valid_keys.add(variant_name)
|
||||
full_name = "/".join((group_name, variant_name))
|
||||
enum_items.append({full_name: full_label})
|
||||
valid_keys.add(full_name)
|
||||
return enum_items, valid_keys
|
||||
|
||||
def set_override_state(self, *args, **kwargs):
|
||||
|
|
|
|||
|
|
@ -43,6 +43,16 @@
|
|||
"label": "Build Workfile"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "open_workfile_at_start",
|
||||
"label": "Open Workfile window at start of a Nuke session"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"key": "create_initial_workfile",
|
||||
"label": "Create initial workfile version if none available"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
@ -87,7 +97,7 @@
|
|||
"name": "schema_nuke_publish",
|
||||
"template_data": []
|
||||
},
|
||||
{
|
||||
{
|
||||
"type": "schema",
|
||||
"name": "schema_nuke_load",
|
||||
"template_data": []
|
||||
|
|
@ -101,4 +111,4 @@
|
|||
"name": "schema_publish_gui_filter"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -29,13 +29,11 @@
|
|||
"template_data": [
|
||||
{
|
||||
"app_variant_label": "2020",
|
||||
"app_variant": "2020",
|
||||
"app_name": "aftereffects"
|
||||
"app_variant": "2020"
|
||||
},
|
||||
{
|
||||
"app_variant_label": "2021",
|
||||
"app_variant": "2021",
|
||||
"app_name": "aftereffects"
|
||||
"app_variant": "2021"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,13 +29,11 @@
|
|||
"template_data": [
|
||||
{
|
||||
"app_variant_label": "2.83",
|
||||
"app_variant": "2-83",
|
||||
"app_name": "blender"
|
||||
"app_variant": "2-83"
|
||||
},
|
||||
{
|
||||
"app_variant_label": "2.90",
|
||||
"app_variant": "2-90",
|
||||
"app_name": "blender"
|
||||
"app_variant": "2-90"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,10 +29,7 @@
|
|||
"template_data": [
|
||||
{
|
||||
"app_variant_label": "Local",
|
||||
"app_variant": "Local",
|
||||
"app_name": "celation",
|
||||
"multiplatform": false,
|
||||
"multipath_executables": false
|
||||
"app_variant": "local"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,8 +28,7 @@
|
|||
"name": "template_host_variant",
|
||||
"template_data": {
|
||||
"app_variant_label": "1.1",
|
||||
"app_variant": "1-1",
|
||||
"app_name": "djvview"
|
||||
"app_variant": "1-1"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -29,13 +29,11 @@
|
|||
"template_data": [
|
||||
{
|
||||
"app_variant_label": "16",
|
||||
"app_variant": "16",
|
||||
"app_name": "fusion"
|
||||
"app_variant": "16"
|
||||
},
|
||||
{
|
||||
"app_variant_label": "9",
|
||||
"app_variant": "9",
|
||||
"app_name": "fusion"
|
||||
"app_variant": "9"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,13 +29,11 @@
|
|||
"template_data": [
|
||||
{
|
||||
"app_variant_label": "20",
|
||||
"app_variant": "20",
|
||||
"app_name": "harmony"
|
||||
"app_variant": "20"
|
||||
},
|
||||
{
|
||||
"app_variant_label": "17",
|
||||
"app_variant": "17",
|
||||
"app_name": "harmony"
|
||||
"app_variant": "17"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,18 +29,15 @@
|
|||
"template_data": [
|
||||
{
|
||||
"app_variant_label": "18.5",
|
||||
"app_variant": "18-5",
|
||||
"app_name": "houdini"
|
||||
"app_variant": "18-5"
|
||||
},
|
||||
{
|
||||
"app_variant_label": "18",
|
||||
"app_variant": "18",
|
||||
"app_name": "houdini"
|
||||
"app_variant": "18"
|
||||
},
|
||||
{
|
||||
"app_variant_label": "17",
|
||||
"app_variant": "17",
|
||||
"app_name": "houdini"
|
||||
"app_variant": "17"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,18 +29,15 @@
|
|||
"template_data": [
|
||||
{
|
||||
"app_variant_label": "2020",
|
||||
"app_variant": "2020",
|
||||
"app_name": "maya"
|
||||
"app_variant": "2020"
|
||||
},
|
||||
{
|
||||
"app_variant_label": "2019",
|
||||
"app_variant": "2019",
|
||||
"app_name": "maya"
|
||||
"app_variant": "2019"
|
||||
},
|
||||
{
|
||||
"app_variant_label": "2018",
|
||||
"app_variant": "2018",
|
||||
"app_name": "maya"
|
||||
"app_variant": "2018"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,18 +29,15 @@
|
|||
"template_data": [
|
||||
{
|
||||
"app_variant_label": "2020",
|
||||
"app_variant": "2020",
|
||||
"app_name": "mayabatch"
|
||||
"app_variant": "2020"
|
||||
},
|
||||
{
|
||||
"app_variant_label": "2019",
|
||||
"app_variant": "2019",
|
||||
"app_name": "mayabatch"
|
||||
"app_variant": "2019"
|
||||
},
|
||||
{
|
||||
"app_variant_label": "2018",
|
||||
"app_variant": "2018",
|
||||
"app_name": "mayabatch"
|
||||
"app_variant": "2018"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,13 +29,11 @@
|
|||
"template_data": [
|
||||
{
|
||||
"app_variant_label": "2020",
|
||||
"app_variant": "2020",
|
||||
"app_name": "photoshop"
|
||||
"app_variant": "2020"
|
||||
},
|
||||
{
|
||||
"app_variant_label": "2021",
|
||||
"app_variant": "2021",
|
||||
"app_name": "photoshop"
|
||||
"app_variant": "2021"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,8 +29,7 @@
|
|||
"template_data": [
|
||||
{
|
||||
"app_variant_label": "16",
|
||||
"app_variant": "16",
|
||||
"app_name": "resolve"
|
||||
"app_variant": "16"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,18 +25,15 @@
|
|||
"template_data": [
|
||||
{
|
||||
"app_variant": "python_3-7",
|
||||
"app_variant_label": "Python 3.7",
|
||||
"app_name": "python"
|
||||
"app_variant_label": "Python 3.7"
|
||||
},
|
||||
{
|
||||
"app_variant": "python_2-7",
|
||||
"app_variant_label": "Python 2.7",
|
||||
"app_name": "python"
|
||||
"app_variant_label": "Python 2.7"
|
||||
},
|
||||
{
|
||||
"app_variant": "terminal",
|
||||
"app_variant_label": "Terminal",
|
||||
"app_name": "terminal"
|
||||
"app_variant_label": "Terminal"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,13 +29,11 @@
|
|||
"template_data": [
|
||||
{
|
||||
"app_variant_label": "Animation 11 (64bits)",
|
||||
"app_variant": "animation_11-64bits",
|
||||
"app_name": "tvpaint"
|
||||
"app_variant": "animation_11-64bits"
|
||||
},
|
||||
{
|
||||
"app_variant_label": "Animation 11 (32bits)",
|
||||
"app_variant": "animation_11-32bits",
|
||||
"app_name": "tvpaint"
|
||||
"app_variant": "animation_11-32bits"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,8 +29,7 @@
|
|||
"template_data": [
|
||||
{
|
||||
"app_variant": "4-24",
|
||||
"app_variant_label": "4.24",
|
||||
"app_name": "unreal"
|
||||
"app_variant_label": "4.24"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,7 @@
|
|||
[
|
||||
{
|
||||
"__default_values__": {
|
||||
"multipath_executables": true,
|
||||
"multiplatform": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "dict",
|
||||
"key": "{app_name}_{app_variant}",
|
||||
"key": "{app_variant}",
|
||||
"label": "{app_variant_label}",
|
||||
"collapsible": true,
|
||||
"checkbox_key": "enabled",
|
||||
|
|
@ -21,15 +15,14 @@
|
|||
"type": "text",
|
||||
"key": "variant_label",
|
||||
"label": "Variant label",
|
||||
"placeholder": "Only \"Label\" is used if not filled.",
|
||||
"roles": ["developer"]
|
||||
"placeholder": "Only \"Label\" is used if not filled."
|
||||
},
|
||||
{
|
||||
"type": "path",
|
||||
"key": "executables",
|
||||
"label": "Executables",
|
||||
"multiplatform": "{multiplatform}",
|
||||
"multipath": "{multipath_executables}"
|
||||
"multiplatform": true,
|
||||
"multipath": true
|
||||
},
|
||||
{
|
||||
"type":"separator"
|
||||
|
|
|
|||
|
|
@ -30,23 +30,19 @@
|
|||
"template_data": [
|
||||
{
|
||||
"app_variant": "12-2",
|
||||
"app_variant_label": "12.2",
|
||||
"app_name": "{nuke_type}"
|
||||
"app_variant_label": "12.2"
|
||||
},
|
||||
{
|
||||
"app_variant": "12-0",
|
||||
"app_variant_label": "12.0",
|
||||
"app_name": "{nuke_type}"
|
||||
"app_variant_label": "12.0"
|
||||
},
|
||||
{
|
||||
"app_variant": "11-3",
|
||||
"app_variant_label": "11.3",
|
||||
"app_name": "{nuke_type}"
|
||||
"app_variant_label": "11.3"
|
||||
},
|
||||
{
|
||||
"app_variant": "11-2",
|
||||
"app_variant_label": "11.2",
|
||||
"app_name": "{nuke_type}"
|
||||
"app_variant_label": "11.2"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ from avalon.tools import lib as tools_lib
|
|||
from avalon.tools.widgets import AssetWidget
|
||||
from avalon.vendor import qtawesome
|
||||
from .models import ProjectModel
|
||||
from .lib import get_action_label
|
||||
from .widgets import (
|
||||
ProjectBar,
|
||||
ActionBar,
|
||||
|
|
@ -407,7 +408,7 @@ class LauncherWindow(QtWidgets.QDialog):
|
|||
self.discover_actions()
|
||||
|
||||
def on_action_clicked(self, action):
|
||||
self.echo("Running action: {}".format(action.name))
|
||||
self.echo("Running action: {}".format(get_action_label(action)))
|
||||
self.run_action(action)
|
||||
|
||||
def on_history_action(self, history_data):
|
||||
|
|
|
|||
|
|
@ -550,7 +550,9 @@ class DictMutableKeysWidget(BaseWidget):
|
|||
|
||||
label = self.entity.label
|
||||
body_widget = None
|
||||
content_left_margin = 0
|
||||
if label:
|
||||
content_left_margin = CHILD_OFFSET
|
||||
body_widget = ExpandingWidget(label, self)
|
||||
main_layout.addWidget(body_widget)
|
||||
label = None
|
||||
|
|
@ -565,7 +567,9 @@ class DictMutableKeysWidget(BaseWidget):
|
|||
content_widget.setObjectName("ContentWidget")
|
||||
content_widget.setProperty("content_state", content_state)
|
||||
content_layout = QtWidgets.QVBoxLayout(content_widget)
|
||||
content_layout.setContentsMargins(CHILD_OFFSET, 5, 0, bottom_margin)
|
||||
content_layout.setContentsMargins(
|
||||
content_left_margin, 5, 0, bottom_margin
|
||||
)
|
||||
|
||||
if body_widget is None:
|
||||
main_layout.addWidget(content_widget)
|
||||
|
|
|
|||
|
|
@ -160,32 +160,11 @@ def set_context(project, asset, task):
|
|||
os.environ["AVALON_TASK"] = task
|
||||
io.Session["AVALON_TASK"] = task
|
||||
|
||||
io.install()
|
||||
|
||||
av_project = io.find_one({'type': 'project'})
|
||||
av_asset = io.find_one({
|
||||
"type": 'asset',
|
||||
"name": asset
|
||||
})
|
||||
|
||||
parents = av_asset['data']['parents']
|
||||
hierarchy = ''
|
||||
if parents and len(parents) > 0:
|
||||
hierarchy = os.path.sep.join(parents)
|
||||
|
||||
os.environ["AVALON_HIERARCHY"] = hierarchy
|
||||
io.Session["AVALON_HIERARCHY"] = hierarchy
|
||||
|
||||
os.environ["AVALON_PROJECTCODE"] = av_project['data'].get('code', '')
|
||||
io.Session["AVALON_PROJECTCODE"] = av_project['data'].get('code', '')
|
||||
|
||||
io.Session["current_dir"] = os.path.normpath(os.getcwd())
|
||||
|
||||
os.environ["AVALON_APP"] = HOST_NAME
|
||||
io.Session["AVALON_APP"] = HOST_NAME
|
||||
|
||||
io.uninstall()
|
||||
|
||||
|
||||
def cli_publish(data, publish_paths, gui=True):
|
||||
PUBLISH_SCRIPT_PATH = os.path.join(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue