mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 16:34:53 +01:00
Merge branch '2.0/develop' into develop
This commit is contained in:
commit
2460cd1fdc
236 changed files with 13976 additions and 1252 deletions
|
|
@ -8,11 +8,11 @@ import avalon
|
|||
import avalon.api
|
||||
from avalon import schema
|
||||
from avalon.vendor import toml, jsonschema
|
||||
from app.api import Logger
|
||||
from pypeapp import Logger
|
||||
|
||||
ValidationError = jsonschema.ValidationError
|
||||
|
||||
log = Logger.getLogger(__name__)
|
||||
log = Logger().get_logger(__name__)
|
||||
|
||||
|
||||
def get_ca_mongoid():
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ from pype import lib as pypelib
|
|||
from .avalon_sync import get_config_data
|
||||
from .ftrack_base_handler import BaseHandler
|
||||
|
||||
from pypeapp import Anatomy
|
||||
|
||||
|
||||
class AppAction(BaseHandler):
|
||||
'''Custom Action base class
|
||||
|
|
@ -177,7 +179,8 @@ class AppAction(BaseHandler):
|
|||
os.environ["AVALON_APP"] = self.identifier.split("_")[0]
|
||||
os.environ["AVALON_APP_NAME"] = self.identifier
|
||||
|
||||
anatomy = pype.Anatomy
|
||||
anatomy = Anatomy()
|
||||
|
||||
hierarchy = ""
|
||||
parents = database[project_name].find_one({
|
||||
"type": 'asset',
|
||||
|
|
@ -190,7 +193,7 @@ class AppAction(BaseHandler):
|
|||
application = avalonlib.get_application(os.environ["AVALON_APP_NAME"])
|
||||
|
||||
data = {
|
||||
"root": os.environ["AVALON_PROJECTS"],
|
||||
"root": os.environ.get("PYPE_STUDIO_PROJECTS_MOUNT"),
|
||||
"project": {
|
||||
"name": entity['project']['full_name'],
|
||||
"code": entity['project']['name']
|
||||
|
|
@ -213,12 +216,10 @@ class AppAction(BaseHandler):
|
|||
except Exception:
|
||||
try:
|
||||
anatomy = anatomy.format(data)
|
||||
work_template = os.path.join(
|
||||
anatomy.work.root,
|
||||
anatomy.work.folder
|
||||
)
|
||||
work_template = anatomy["work"]["folder"]
|
||||
|
||||
except Exception as e:
|
||||
self.log.error(
|
||||
self.log.exception(
|
||||
"{0} Error in anatomy.format: {1}".format(__name__, e)
|
||||
)
|
||||
os.environ["AVALON_WORKDIR"] = os.path.normpath(work_template)
|
||||
|
|
@ -239,13 +240,22 @@ class AppAction(BaseHandler):
|
|||
tools_env = acre.get_tools(tools_attr)
|
||||
env = acre.compute(tools_env)
|
||||
env = acre.merge(env, current_env=dict(os.environ))
|
||||
env = acre.append(dict(os.environ), env)
|
||||
|
||||
|
||||
#
|
||||
# tools_env = acre.get_tools(tools)
|
||||
# env = acre.compute(dict(tools_env))
|
||||
# env = acre.merge(env, dict(os.environ))
|
||||
# os.environ = acre.append(dict(os.environ), env)
|
||||
# os.environ = acre.compute(os.environ)
|
||||
|
||||
# Get path to execute
|
||||
st_temp_path = os.environ['PYPE_STUDIO_TEMPLATES']
|
||||
st_temp_path = os.environ['PYPE_CONFIG']
|
||||
os_plat = platform.system().lower()
|
||||
|
||||
# Path to folder with launchers
|
||||
path = os.path.join(st_temp_path, 'bin', os_plat)
|
||||
path = os.path.join(st_temp_path, 'launchers', os_plat)
|
||||
# Full path to executable launcher
|
||||
execfile = None
|
||||
|
||||
|
|
@ -275,7 +285,7 @@ class AppAction(BaseHandler):
|
|||
try:
|
||||
fp = open(execfile)
|
||||
except PermissionError as p:
|
||||
self.log.error('Access denied on {0} - {1}'.format(
|
||||
self.log.exception('Access denied on {0} - {1}'.format(
|
||||
execfile, p))
|
||||
return {
|
||||
'success': False,
|
||||
|
|
@ -344,6 +354,8 @@ class AppAction(BaseHandler):
|
|||
|
||||
# Set origin avalon environments
|
||||
for key, value in env_origin.items():
|
||||
if value == None:
|
||||
value = ""
|
||||
os.environ[key] = value
|
||||
|
||||
return {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
import ftrack_api
|
||||
import functools
|
||||
import time
|
||||
from pype import api as pype
|
||||
from pype.vendor import ftrack_api
|
||||
from pype.vendor.ftrack_api import session as fa_session
|
||||
|
||||
|
||||
class MissingPermision(Exception):
|
||||
|
|
@ -30,7 +31,7 @@ class BaseHandler(object):
|
|||
def __init__(self, session):
|
||||
'''Expects a ftrack_api.Session instance'''
|
||||
self._session = session
|
||||
self.log = pype.Logger.getLogger(self.__class__.__name__)
|
||||
self.log = pype.Logger().get_logger(self.__class__.__name__)
|
||||
|
||||
# Using decorator
|
||||
self.register = self.register_decorator(self.register)
|
||||
|
|
@ -71,7 +72,7 @@ class BaseHandler(object):
|
|||
self.type, label)
|
||||
)
|
||||
except Exception as e:
|
||||
self.log.error('{} "{}" - Registration failed ({})'.format(
|
||||
self.log.exception('{} "{}" - Registration failed ({})'.format(
|
||||
self.type, label, str(e))
|
||||
)
|
||||
return wrapper_register
|
||||
|
|
@ -94,7 +95,7 @@ class BaseHandler(object):
|
|||
return result
|
||||
except Exception as e:
|
||||
msg = '{} "{}": Failed ({})'.format(self.type, label, str(e))
|
||||
self.log.error(msg)
|
||||
self.log.exception(msg)
|
||||
return {
|
||||
'success': False,
|
||||
'message': msg
|
||||
|
|
@ -110,7 +111,6 @@ class BaseHandler(object):
|
|||
self.session.reset()
|
||||
|
||||
def _preregister(self):
|
||||
# Rolecheck
|
||||
if hasattr(self, "role_list") and len(self.role_list) > 0:
|
||||
username = self.session.api_user
|
||||
user = self.session.query(
|
||||
|
|
@ -197,7 +197,9 @@ class BaseHandler(object):
|
|||
_entities = event['data'].get('entities_object', None)
|
||||
if (
|
||||
_entities is None or
|
||||
_entities[0].get('link', None) == ftrack_api.symbol.NOT_SET
|
||||
_entities[0].get(
|
||||
'link', None
|
||||
) == fa_session.ftrack_api.symbol.NOT_SET
|
||||
):
|
||||
_entities = self._get_entities(event)
|
||||
|
||||
|
|
@ -302,7 +304,7 @@ class BaseHandler(object):
|
|||
|
||||
# Launch preactions
|
||||
for preaction in self.preactions:
|
||||
event = ftrack_api.event.base.Event(
|
||||
event = fa_session.ftrack_api.event.base.Event(
|
||||
topic='ftrack.action.launch',
|
||||
data=dict(
|
||||
actionIdentifier=preaction,
|
||||
|
|
@ -314,7 +316,7 @@ class BaseHandler(object):
|
|||
)
|
||||
session.event_hub.publish(event, on_error='ignore')
|
||||
# Relaunch this action
|
||||
event = ftrack_api.event.base.Event(
|
||||
event = fa_session.ftrack_api.event.base.Event(
|
||||
topic='ftrack.action.launch',
|
||||
data=dict(
|
||||
actionIdentifier=self.identifier,
|
||||
|
|
@ -415,7 +417,7 @@ class BaseHandler(object):
|
|||
'applicationId=ftrack.client.web and user.id="{0}"'
|
||||
).format(user_id)
|
||||
self.session.event_hub.publish(
|
||||
ftrack_api.event.base.Event(
|
||||
fa_session.ftrack_api.event.base.Event(
|
||||
topic='ftrack.action.trigger-user-interface',
|
||||
data=dict(
|
||||
type='message',
|
||||
|
|
@ -438,7 +440,7 @@ class BaseHandler(object):
|
|||
).format(user_id)
|
||||
|
||||
self.session.event_hub.publish(
|
||||
ftrack_api.event.base.Event(
|
||||
fa_session.ftrack_api.event.base.Event(
|
||||
topic='ftrack.action.trigger-user-interface',
|
||||
data=dict(
|
||||
type='widget',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue