mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-25 13:24:54 +01:00
Merge branch 'develop' of github.com:pypeclub/OpenPype into feature/OP-2204_Feature---Slack-URL-to-reviewable
This commit is contained in:
commit
e55c2e6bb6
8 changed files with 69 additions and 45 deletions
|
|
@ -1,6 +1,7 @@
|
|||
import openpype.api
|
||||
from Qt import QtWidgets
|
||||
from avalon import aftereffects
|
||||
from avalon.api import CreatorError
|
||||
|
||||
import openpype.api
|
||||
|
||||
import logging
|
||||
|
||||
|
|
@ -27,14 +28,13 @@ class CreateRender(openpype.api.Creator):
|
|||
folders=False,
|
||||
footages=False)
|
||||
if len(items) > 1:
|
||||
self._show_msg("Please select only single composition at time.")
|
||||
return False
|
||||
raise CreatorError("Please select only single "
|
||||
"composition at time.")
|
||||
|
||||
if not items:
|
||||
self._show_msg("Nothing to create. Select composition " +
|
||||
"if 'useSelection' or create at least " +
|
||||
"one composition.")
|
||||
return False
|
||||
raise CreatorError("Nothing to create. Select composition " +
|
||||
"if 'useSelection' or create at least " +
|
||||
"one composition.")
|
||||
|
||||
existing_subsets = [instance['subset'].lower()
|
||||
for instance in aftereffects.list_instances()]
|
||||
|
|
@ -42,8 +42,7 @@ class CreateRender(openpype.api.Creator):
|
|||
item = items.pop()
|
||||
if self.name.lower() in existing_subsets:
|
||||
txt = "Instance with name \"{}\" already exists.".format(self.name)
|
||||
self._show_msg(txt)
|
||||
return False
|
||||
raise CreatorError(txt)
|
||||
|
||||
self.data["members"] = [item.id]
|
||||
self.data["uuid"] = item.id # for SubsetManager
|
||||
|
|
@ -54,9 +53,3 @@ class CreateRender(openpype.api.Creator):
|
|||
stub.imprint(item, self.data)
|
||||
stub.set_label_color(item.id, 14) # Cyan options 0 - 16
|
||||
stub.rename_item(item.id, stub.PUBLISH_ICON + self.data["subset"])
|
||||
|
||||
def _show_msg(self, txt):
|
||||
msg = QtWidgets.QMessageBox()
|
||||
msg.setIcon(QtWidgets.QMessageBox.Warning)
|
||||
msg.setText(txt)
|
||||
msg.exec_()
|
||||
|
|
|
|||
|
|
@ -22,21 +22,23 @@ class BackgroundLoader(api.Loader):
|
|||
|
||||
def load(self, context, name=None, namespace=None, data=None):
|
||||
items = stub.get_items(comps=True)
|
||||
existing_items = [layer.name for layer in items]
|
||||
existing_items = [layer.name.replace(stub.LOADED_ICON, '')
|
||||
for layer in items]
|
||||
|
||||
comp_name = get_unique_layer_name(
|
||||
existing_items,
|
||||
"{}_{}".format(context["asset"]["name"], name))
|
||||
|
||||
layers = get_background_layers(self.fname)
|
||||
if not layers:
|
||||
raise ValueError("No layers found in {}".format(self.fname))
|
||||
|
||||
comp = stub.import_background(None, stub.LOADED_ICON + comp_name,
|
||||
layers)
|
||||
|
||||
if not comp:
|
||||
self.log.warning(
|
||||
"Import background failed.")
|
||||
self.log.warning("Check host app for alert error.")
|
||||
return
|
||||
raise ValueError("Import background failed. "
|
||||
"Please contact support")
|
||||
|
||||
self[:] = [comp]
|
||||
namespace = namespace or comp_name
|
||||
|
|
|
|||
|
|
@ -49,32 +49,30 @@ def modules_from_path(folder_path):
|
|||
|
||||
Arguments:
|
||||
path (str): Path to folder containing python scripts.
|
||||
return_crasher (bool): Crashed module paths with exception info
|
||||
will be returned too.
|
||||
|
||||
Returns:
|
||||
list, tuple: List of modules when `return_crashed` is False else tuple
|
||||
with list of modules at first place and tuple of path and exception
|
||||
info at second place.
|
||||
tuple<list, list>: First list contains successfully imported modules
|
||||
and second list contains tuples of path and exception.
|
||||
"""
|
||||
crashed = []
|
||||
modules = []
|
||||
output = (modules, crashed)
|
||||
# Just skip and return empty list if path is not set
|
||||
if not folder_path:
|
||||
return modules
|
||||
return output
|
||||
|
||||
# Do not allow relative imports
|
||||
if folder_path.startswith("."):
|
||||
log.warning((
|
||||
"BUG: Relative paths are not allowed for security reasons. {}"
|
||||
).format(folder_path))
|
||||
return modules
|
||||
return output
|
||||
|
||||
folder_path = os.path.normpath(folder_path)
|
||||
|
||||
if not os.path.isdir(folder_path):
|
||||
log.warning("Not a directory path: {}".format(folder_path))
|
||||
return modules
|
||||
return output
|
||||
|
||||
for filename in os.listdir(folder_path):
|
||||
# Ignore files which start with underscore
|
||||
|
|
@ -101,7 +99,7 @@ def modules_from_path(folder_path):
|
|||
)
|
||||
continue
|
||||
|
||||
return modules, crashed
|
||||
return output
|
||||
|
||||
|
||||
def recursive_bases_from_class(klass):
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import os
|
||||
import json
|
||||
import collections
|
||||
import platform
|
||||
|
||||
import click
|
||||
|
||||
|
|
@ -42,18 +43,26 @@ class FtrackModule(
|
|||
self.ftrack_url = ftrack_url
|
||||
|
||||
current_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
low_platform = platform.system().lower()
|
||||
|
||||
# Server event handler paths
|
||||
server_event_handlers_paths = [
|
||||
os.path.join(current_dir, "event_handlers_server")
|
||||
]
|
||||
server_event_handlers_paths.extend(
|
||||
ftrack_settings["ftrack_events_path"]
|
||||
)
|
||||
settings_server_paths = ftrack_settings["ftrack_events_path"]
|
||||
if isinstance(settings_server_paths, dict):
|
||||
settings_server_paths = settings_server_paths[low_platform]
|
||||
server_event_handlers_paths.extend(settings_server_paths)
|
||||
|
||||
# User event handler paths
|
||||
user_event_handlers_paths = [
|
||||
os.path.join(current_dir, "event_handlers_user")
|
||||
]
|
||||
user_event_handlers_paths.extend(
|
||||
ftrack_settings["ftrack_actions_path"]
|
||||
)
|
||||
settings_action_paths = ftrack_settings["ftrack_actions_path"]
|
||||
if isinstance(settings_action_paths, dict):
|
||||
settings_action_paths = settings_action_paths[low_platform]
|
||||
user_event_handlers_paths.extend(settings_action_paths)
|
||||
|
||||
# Prepare attribute
|
||||
self.server_event_handlers_paths = server_event_handlers_paths
|
||||
self.user_event_handlers_paths = user_event_handlers_paths
|
||||
|
|
|
|||
|
|
@ -63,6 +63,12 @@ class FtrackServer:
|
|||
# Iterate all paths
|
||||
register_functions = []
|
||||
for path in paths:
|
||||
# Try to format path with environments
|
||||
try:
|
||||
path = path.format(**os.environ)
|
||||
except BaseException:
|
||||
pass
|
||||
|
||||
# Get all modules with functions
|
||||
modules, crashed = modules_from_path(path)
|
||||
for filepath, exc_info in crashed:
|
||||
|
|
|
|||
|
|
@ -15,8 +15,16 @@
|
|||
"ftrack": {
|
||||
"enabled": true,
|
||||
"ftrack_server": "",
|
||||
"ftrack_actions_path": [],
|
||||
"ftrack_events_path": [],
|
||||
"ftrack_actions_path": {
|
||||
"windows": [],
|
||||
"darwin": [],
|
||||
"linux": []
|
||||
},
|
||||
"ftrack_events_path": {
|
||||
"windows": [],
|
||||
"darwin": [],
|
||||
"linux": []
|
||||
},
|
||||
"intent": {
|
||||
"items": {
|
||||
"-": "-",
|
||||
|
|
|
|||
|
|
@ -72,6 +72,8 @@ class ProductionVersionsInputEntity(OpenPypeVersionInput):
|
|||
|
||||
def _get_openpype_versions(self):
|
||||
versions = get_remote_versions(staging=False, production=True)
|
||||
if versions is None:
|
||||
return []
|
||||
versions.append(get_installed_version())
|
||||
return sorted(versions)
|
||||
|
||||
|
|
@ -82,4 +84,6 @@ class StagingVersionsInputEntity(OpenPypeVersionInput):
|
|||
|
||||
def _get_openpype_versions(self):
|
||||
versions = get_remote_versions(staging=True, production=False)
|
||||
if versions is None:
|
||||
return []
|
||||
return sorted(versions)
|
||||
|
|
|
|||
|
|
@ -21,19 +21,23 @@
|
|||
},
|
||||
{
|
||||
"type": "label",
|
||||
"label": "Additional Ftrack paths"
|
||||
"label": "Additional Ftrack event handlers paths"
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"type": "path",
|
||||
"key": "ftrack_actions_path",
|
||||
"label": "Action paths",
|
||||
"object_type": "text"
|
||||
"label": "User paths",
|
||||
"use_label_wrap": true,
|
||||
"multipath": true,
|
||||
"multiplatform": true
|
||||
},
|
||||
{
|
||||
"type": "list",
|
||||
"type": "path",
|
||||
"key": "ftrack_events_path",
|
||||
"label": "Event paths",
|
||||
"object_type": "text"
|
||||
"label": "Server paths",
|
||||
"use_label_wrap": true,
|
||||
"multipath": true,
|
||||
"multiplatform": true
|
||||
},
|
||||
{
|
||||
"type": "separator"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue