mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-25 05:14:40 +01:00
adding pype.templates for improving loading contextual templates / implement templates installing into pype.nuke.__init__
This commit is contained in:
parent
e58948f5ba
commit
ddcb6f88de
5 changed files with 83 additions and 17 deletions
|
|
@ -6,8 +6,14 @@ from avalon import api as avalon
|
|||
from .launcher_actions import register_launcher_actions
|
||||
from .lib import collect_container_metadata
|
||||
|
||||
from pype.api import Logger
|
||||
log = Logger.getLogger(__name__)
|
||||
import logging
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
# do not delete these are mandatory
|
||||
Anatomy = None
|
||||
Dataflow = None
|
||||
Metadata = None
|
||||
Colorspace = None
|
||||
|
||||
PACKAGE_DIR = os.path.dirname(__file__)
|
||||
PLUGINS_DIR = os.path.join(PACKAGE_DIR, "plugins")
|
||||
|
|
|
|||
19
pype/api.py
19
pype/api.py
|
|
@ -17,6 +17,16 @@ from .action import (
|
|||
|
||||
from app.api import Logger
|
||||
|
||||
from . import (
|
||||
Anatomy,
|
||||
Colorspace,
|
||||
Metadata,
|
||||
Dataflow
|
||||
)
|
||||
from .templates import (
|
||||
load_data_from_templates,
|
||||
reset_data_from_templates
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
# plugin classes
|
||||
|
|
@ -32,4 +42,13 @@ __all__ = [
|
|||
|
||||
"Logger",
|
||||
|
||||
# contectual templates
|
||||
"load_data_from_templates",
|
||||
"reset_data_from_templates",
|
||||
|
||||
"Anatomy",
|
||||
"Colorspace",
|
||||
"Metadata",
|
||||
"Dataflow"
|
||||
|
||||
]
|
||||
|
|
|
|||
|
|
@ -2,19 +2,21 @@ import os
|
|||
import sys
|
||||
from avalon import api as avalon
|
||||
from pyblish import api as pyblish
|
||||
from ..api import Logger
|
||||
|
||||
from .. import api as pype
|
||||
|
||||
from pype.nuke import menu
|
||||
|
||||
import nuke
|
||||
|
||||
# removing logger handler created in avalon_core
|
||||
for name, handler in [(handler.get_name(), handler)
|
||||
for handler in Logger.logging.root.handlers[:]]:
|
||||
for handler in pype.Logger.logging.root.handlers[:]]:
|
||||
if "pype" not in str(name).lower():
|
||||
Logger.logging.root.removeHandler(handler)
|
||||
pype.Logger.logging.root.removeHandler(handler)
|
||||
|
||||
|
||||
log = Logger.getLogger(__name__, "nuke")
|
||||
log = pype.Logger.getLogger(__name__, "nuke")
|
||||
|
||||
AVALON_CONFIG = os.getenv("AVALON_CONFIG", "pype")
|
||||
|
||||
|
|
@ -31,7 +33,7 @@ self = sys.modules[__name__]
|
|||
self.nLogger = None
|
||||
|
||||
|
||||
class NukeHandler(Logger.logging.Handler):
|
||||
class NukeHandler(pype.Logger.logging.Handler):
|
||||
'''
|
||||
Nuke Handler - emits logs into nuke's script editor.
|
||||
warning will emit nuke.warning()
|
||||
|
|
@ -39,7 +41,7 @@ class NukeHandler(Logger.logging.Handler):
|
|||
'''
|
||||
|
||||
def __init__(self):
|
||||
Logger.logging.Handler.__init__(self)
|
||||
pype.Logger.logging.Handler.__init__(self)
|
||||
self.set_name("Pype_Nuke_Handler")
|
||||
|
||||
def emit(self, record):
|
||||
|
|
@ -59,11 +61,11 @@ class NukeHandler(Logger.logging.Handler):
|
|||
nuke_handler = NukeHandler()
|
||||
if nuke_handler.get_name() \
|
||||
not in [handler.get_name()
|
||||
for handler in Logger.logging.root.handlers[:]]:
|
||||
Logger.logging.getLogger().addHandler(nuke_handler)
|
||||
for handler in pype.Logger.logging.root.handlers[:]]:
|
||||
pype.Logger.logging.getLogger().addHandler(nuke_handler)
|
||||
|
||||
if not self.nLogger:
|
||||
self.nLogger = Logger
|
||||
self.nLogger = pype.Logger
|
||||
|
||||
|
||||
def reload_config():
|
||||
|
|
@ -76,7 +78,7 @@ def reload_config():
|
|||
import importlib
|
||||
|
||||
for module in (
|
||||
"{}".format(AVALON_CONFIG),
|
||||
"{}.templates".format(AVALON_CONFIG),
|
||||
"{}.nuke".format(AVALON_CONFIG),
|
||||
"{}.nuke.lib".format(AVALON_CONFIG),
|
||||
"{}.nuke.menu".format(AVALON_CONFIG)
|
||||
|
|
@ -90,7 +92,9 @@ def reload_config():
|
|||
|
||||
|
||||
def install():
|
||||
|
||||
reload_config()
|
||||
|
||||
log.info("Registering Nuke plug-ins..")
|
||||
pyblish.register_plugin_path(PUBLISH_PATH)
|
||||
avalon.register_plugin_path(avalon.Loader, LOAD_PATH)
|
||||
|
|
@ -112,6 +116,9 @@ def install():
|
|||
|
||||
menu.install()
|
||||
|
||||
# load data from templates
|
||||
pype.load_data_from_templates()
|
||||
|
||||
|
||||
def uninstall():
|
||||
log.info("Deregistering Nuke plug-ins..")
|
||||
|
|
@ -121,6 +128,9 @@ def uninstall():
|
|||
|
||||
pyblish.deregister_callback("instanceToggled", on_pyblish_instance_toggled)
|
||||
|
||||
# reset data from templates
|
||||
pype.reset_data_from_templates()
|
||||
|
||||
|
||||
def on_pyblish_instance_toggled(instance, new_value, old_value):
|
||||
"""Toggle saver tool passthrough states on instance toggles."""
|
||||
|
|
|
|||
|
|
@ -122,12 +122,9 @@ def set_writes_colorspace(write_dict):
|
|||
|
||||
|
||||
def set_colorspace():
|
||||
from app.api import Templates
|
||||
from pype import api as pype
|
||||
|
||||
t = Templates(type=["colorspace"])
|
||||
colorspace = t.colorspace
|
||||
|
||||
nuke_colorspace = getattr(colorspace, "nuke", None)
|
||||
nuke_colorspace = getattr(pype.Colorspace, "nuke", None)
|
||||
|
||||
try:
|
||||
set_root_colorspace(nuke_colorspace.root)
|
||||
|
|
|
|||
34
pype/templates.py
Normal file
34
pype/templates.py
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
import os
|
||||
|
||||
|
||||
from app.api import (Templates, Logger)
|
||||
|
||||
log = Logger.getLogger(__name__,
|
||||
os.getenv("AVALON_APP", "pype-config"))
|
||||
|
||||
|
||||
def load_data_from_templates():
|
||||
from . import api
|
||||
if not any([
|
||||
api.Dataflow,
|
||||
api.Anatomy,
|
||||
api.Colorspace,
|
||||
api.Metadata]
|
||||
):
|
||||
# base = Templates()
|
||||
t = Templates(type=["anatomy", "metadata", "dataflow", "colorspace"])
|
||||
api.Anatomy = t.anatomy
|
||||
api.Metadata = t.metadata.format()
|
||||
data = {"metadata": api.Metadata}
|
||||
api.Dataflow = t.dataflow.format(data)
|
||||
api.Colorspace = t.colorspace
|
||||
log.info("Data from templates were Loaded...")
|
||||
|
||||
|
||||
def reset_data_from_templates():
|
||||
from . import api
|
||||
api.Dataflow = None
|
||||
api.Anatomy = None
|
||||
api.Colorspace = None
|
||||
api.Metadata = None
|
||||
log.info("Data from templates were Unloaded...")
|
||||
Loading…
Add table
Add a link
Reference in a new issue