mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-25 05:14:40 +01:00
fix(pype, nk, nks, premiere, aport): removing Anatomy, Dataflow, Colorspace loading as singleton
This commit is contained in:
parent
28a13f7568
commit
f09b05f7f0
13 changed files with 53 additions and 138 deletions
|
|
@ -7,11 +7,6 @@ from .lib import filter_pyblish_plugins
|
|||
import logging
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
# # do not delete these are mandatory
|
||||
Anatomy = None
|
||||
Dataflow = None
|
||||
Colorspace = None
|
||||
|
||||
PACKAGE_DIR = os.path.dirname(__file__)
|
||||
PLUGINS_DIR = os.path.join(PACKAGE_DIR, "plugins")
|
||||
|
||||
|
|
@ -26,6 +21,7 @@ def install():
|
|||
pyblish.register_discovery_filter(filter_pyblish_plugins)
|
||||
avalon.register_plugin_path(avalon.Loader, LOAD_PATH)
|
||||
|
||||
|
||||
def uninstall():
|
||||
log.info("Deregistering global plug-ins..")
|
||||
pyblish.deregister_plugin_path(PUBLISH_PATH)
|
||||
|
|
|
|||
17
pype/api.py
17
pype/api.py
|
|
@ -18,15 +18,8 @@ from .action import (
|
|||
|
||||
from pypeapp import Logger
|
||||
|
||||
from . import (
|
||||
Anatomy,
|
||||
Colorspace,
|
||||
Dataflow
|
||||
)
|
||||
|
||||
from .templates import (
|
||||
load_data_from_templates,
|
||||
reset_data_from_templates,
|
||||
get_project_name,
|
||||
get_project_code,
|
||||
get_hierarchy,
|
||||
|
|
@ -65,11 +58,6 @@ __all__ = [
|
|||
|
||||
"ValidationException",
|
||||
|
||||
# contectual templates
|
||||
# get data to preloaded templates
|
||||
"load_data_from_templates",
|
||||
"reset_data_from_templates",
|
||||
|
||||
# get contextual data
|
||||
"get_handle_irregular",
|
||||
"get_project_data",
|
||||
|
|
@ -89,9 +77,4 @@ __all__ = [
|
|||
"get_data_hierarchical_attr",
|
||||
"get_avalon_project_template",
|
||||
|
||||
# preloaded templates
|
||||
"Anatomy",
|
||||
"Colorspace",
|
||||
"Dataflow",
|
||||
|
||||
]
|
||||
|
|
|
|||
|
|
@ -50,9 +50,6 @@ def install():
|
|||
avalon.data["familiesStateDefault"] = False
|
||||
avalon.data["familiesStateToggled"] = family_states
|
||||
|
||||
# load data from templates
|
||||
api.load_data_from_templates()
|
||||
|
||||
# launch pico server
|
||||
pico_server_launch()
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
from pype import api as pype
|
||||
from pypeapp import Anatomy, config
|
||||
|
||||
|
||||
log = pype.Logger().get_logger(__name__, "aport")
|
||||
|
||||
|
||||
def get_anatomy(**kwarg):
|
||||
return pype.Anatomy
|
||||
return Anatomy()
|
||||
|
||||
|
||||
def get_dataflow(**kwarg):
|
||||
|
|
@ -15,7 +17,8 @@ def get_dataflow(**kwarg):
|
|||
assert any([host, cls]), log.error("aport.templates.get_dataflow():"
|
||||
"Missing mandatory kwargs `host`, `cls`")
|
||||
|
||||
aport_dataflow = getattr(pype.Dataflow, str(host), None)
|
||||
presets = config.get_init_presets()
|
||||
aport_dataflow = getattr(presets["dataflow"], str(host), None)
|
||||
aport_dataflow_node = getattr(aport_dataflow.nodes, str(cls), None)
|
||||
if preset:
|
||||
aport_dataflow_node = getattr(aport_dataflow_node, str(preset), None)
|
||||
|
|
@ -32,7 +35,8 @@ def get_colorspace(**kwarg):
|
|||
assert any([host, cls]), log.error("aport.templates.get_colorspace():"
|
||||
"Missing mandatory kwargs `host`, `cls`")
|
||||
|
||||
aport_colorspace = getattr(pype.Colorspace, str(host), None)
|
||||
presets = config.get_init_presets()
|
||||
aport_colorspace = getattr(presets["colorspace"], str(host), None)
|
||||
aport_colorspace_node = getattr(aport_colorspace, str(cls), None)
|
||||
if preset:
|
||||
aport_colorspace_node = getattr(aport_colorspace_node, str(preset), None)
|
||||
|
|
|
|||
|
|
@ -132,9 +132,6 @@ def install():
|
|||
|
||||
menu.install()
|
||||
|
||||
# load data from templates
|
||||
api.load_data_from_templates()
|
||||
|
||||
# Workfiles.
|
||||
launch_workfiles = os.environ.get("WORKFILES_STARTUP")
|
||||
|
||||
|
|
@ -156,9 +153,6 @@ def uninstall():
|
|||
|
||||
pyblish.deregister_callback("instanceToggled", on_pyblish_instance_toggled)
|
||||
|
||||
# reset data from templates
|
||||
api.reset_data_from_templates()
|
||||
|
||||
|
||||
def on_pyblish_instance_toggled(instance, old_value, new_value):
|
||||
"""Toggle node passthrough states on instance toggles."""
|
||||
|
|
|
|||
|
|
@ -7,8 +7,9 @@ import avalon.nuke
|
|||
import pype.api as pype
|
||||
import nuke
|
||||
from .templates import (
|
||||
get_dataflow,
|
||||
get_colorspace
|
||||
get_colorspace_preset,
|
||||
get_node_dataflow_preset,
|
||||
get_node_colorspace_preset
|
||||
)
|
||||
|
||||
from pypeapp import Logger
|
||||
|
|
@ -129,8 +130,8 @@ def get_render_path(node):
|
|||
"preset": data['avalon']['families']
|
||||
}
|
||||
|
||||
nuke_dataflow_writes = get_dataflow(**data_preset)
|
||||
nuke_colorspace_writes = get_colorspace(**data_preset)
|
||||
nuke_dataflow_writes = get_node_dataflow_preset(**data_preset)
|
||||
nuke_colorspace_writes = get_node_colorspace_preset(**data_preset)
|
||||
|
||||
application = lib.get_application(os.environ["AVALON_APP_NAME"])
|
||||
data.update({
|
||||
|
|
@ -180,8 +181,8 @@ def script_name():
|
|||
|
||||
|
||||
def create_write_node(name, data):
|
||||
nuke_dataflow_writes = get_dataflow(**data)
|
||||
nuke_colorspace_writes = get_colorspace(**data)
|
||||
nuke_dataflow_writes = get_node_dataflow_preset(**data)
|
||||
nuke_colorspace_writes = get_node_colorspace_preset(**data)
|
||||
application = lib.get_application(os.environ["AVALON_APP_NAME"])
|
||||
|
||||
try:
|
||||
|
|
@ -319,9 +320,8 @@ def set_writes_colorspace(write_dict):
|
|||
|
||||
|
||||
def set_colorspace():
|
||||
from pype import api as pype
|
||||
|
||||
nuke_colorspace = pype.Colorspace.get("nuke", None)
|
||||
nuke_colorspace = get_colorspace_preset().get("nuke", None)
|
||||
|
||||
try:
|
||||
set_root_colorspace(nuke_colorspace["root"])
|
||||
|
|
@ -611,8 +611,8 @@ def get_write_node_template_attr(node):
|
|||
}
|
||||
|
||||
# get template data
|
||||
nuke_dataflow_writes = get_dataflow(**data_preset)
|
||||
nuke_colorspace_writes = get_colorspace(**data_preset)
|
||||
nuke_dataflow_writes = get_node_dataflow_preset(**data_preset)
|
||||
nuke_colorspace_writes = get_node_colorspace_preset(**data_preset)
|
||||
|
||||
# collecting correct data
|
||||
correct_data = OrderedDict({
|
||||
|
|
|
|||
|
|
@ -1,21 +1,33 @@
|
|||
from pype import api as pype
|
||||
from pypeapp import Anatomy, config
|
||||
|
||||
|
||||
log = pype.Logger().get_logger(__name__, "nuke")
|
||||
|
||||
|
||||
def get_anatomy(**kwarg):
|
||||
return pype.Anatomy
|
||||
return Anatomy()
|
||||
|
||||
|
||||
def get_dataflow(**kwarg):
|
||||
def get_dataflow_preset():
|
||||
presets = config.get_init_presets()
|
||||
return presets["dataflow"]
|
||||
|
||||
|
||||
def get_colorspace_preset():
|
||||
presets = config.get_init_presets()
|
||||
return presets["colorspace"]
|
||||
|
||||
|
||||
def get_node_dataflow_preset(**kwarg):
|
||||
log.info(kwarg)
|
||||
host = kwarg.get("host", "nuke")
|
||||
cls = kwarg.get("class", None)
|
||||
preset = kwarg.get("preset", None)
|
||||
assert any([host, cls]), log.error("nuke.templates.get_dataflow():"
|
||||
"Missing mandatory kwargs `host`, `cls`")
|
||||
assert any([host, cls]), log.error("nuke.templates.get_node_dataflow_preset(): \
|
||||
Missing mandatory kwargs `host`, `cls`")
|
||||
|
||||
nuke_dataflow = pype.Dataflow.get(str(host), None)
|
||||
nuke_dataflow = get_dataflow_preset().get(str(host), None)
|
||||
nuke_dataflow_nodes = nuke_dataflow.get('nodes', None)
|
||||
nuke_dataflow_node = nuke_dataflow_nodes.get(str(cls), None)
|
||||
|
||||
|
|
@ -26,15 +38,15 @@ def get_dataflow(**kwarg):
|
|||
return nuke_dataflow_node
|
||||
|
||||
|
||||
def get_colorspace(**kwarg):
|
||||
def get_node_colorspace_preset(**kwarg):
|
||||
log.info(kwarg)
|
||||
host = kwarg.get("host", "nuke")
|
||||
cls = kwarg.get("class", None)
|
||||
preset = kwarg.get("preset", None)
|
||||
assert any([host, cls]), log.error("nuke.templates.get_colorspace():"
|
||||
"Missing mandatory kwargs `host`, `cls`")
|
||||
assert any([host, cls]), log.error("nuke.templates.get_node_colorspace_preset(): \
|
||||
Missing mandatory kwargs `host`, `cls`")
|
||||
|
||||
nuke_colorspace = pype.Colorspace.get(str(host), None)
|
||||
nuke_colorspace = get_colorspace_preset().get(str(host), None)
|
||||
nuke_colorspace_node = nuke_colorspace.get(str(cls), None)
|
||||
if preset:
|
||||
nuke_colorspace_node = nuke_colorspace_node.get(str(preset), None)
|
||||
|
|
|
|||
|
|
@ -55,9 +55,6 @@ def install(config):
|
|||
|
||||
menu_install()
|
||||
|
||||
# load data from templates
|
||||
api.load_data_from_templates()
|
||||
|
||||
# Workfiles.
|
||||
launch_workfiles = os.environ.get("WORKFILES_STARTUP")
|
||||
|
||||
|
|
@ -95,9 +92,6 @@ def uninstall():
|
|||
avalon.deregister_plugin_path(avalon.Loader, LOAD_PATH)
|
||||
avalon.deregister_plugin_path(avalon.Creator, CREATE_PATH)
|
||||
|
||||
# reset data from templates
|
||||
api.reset_data_from_templates()
|
||||
|
||||
|
||||
def _register_events():
|
||||
avalon.on("taskChanged", _update_menu_task_label)
|
||||
|
|
|
|||
|
|
@ -12,6 +12,5 @@ class CollectTemplates(pyblish.api.ContextPlugin):
|
|||
label = "Collect Templates"
|
||||
|
||||
def process(self, context):
|
||||
# pype.load_data_from_templates()
|
||||
context.data['anatomy'] = Anatomy()
|
||||
self.log.info("Anatomy templates collected...")
|
||||
|
|
|
|||
|
|
@ -44,10 +44,7 @@ class PremierePro(api.Action):
|
|||
env = acre.merge(env, current_env=dict(os.environ))
|
||||
|
||||
if not env.get('AVALON_WORKDIR', None):
|
||||
pype.load_data_from_templates()
|
||||
os.environ["AVALON_WORKDIR"] = pype.get_workdir_template(
|
||||
pype.Anatomy)
|
||||
pype.reset_data_from_templates()
|
||||
os.environ["AVALON_WORKDIR"] = pype.get_workdir_template()
|
||||
|
||||
env.update(dict(os.environ))
|
||||
|
||||
|
|
|
|||
|
|
@ -96,9 +96,6 @@ def install():
|
|||
avalon.data["familiesStateDefault"] = False
|
||||
avalon.data["familiesStateToggled"] = family_states
|
||||
|
||||
# load data from templates
|
||||
api.load_data_from_templates()
|
||||
|
||||
# synchronize extensions
|
||||
extensions_sync()
|
||||
message(title="pyblish_paths", message=str(reg_paths), level="info")
|
||||
|
|
@ -109,6 +106,3 @@ def uninstall():
|
|||
pyblish.deregister_plugin_path(PUBLISH_PATH)
|
||||
avalon.deregister_plugin_path(avalon.Loader, LOAD_PATH)
|
||||
avalon.deregister_plugin_path(avalon.Creator, CREATE_PATH)
|
||||
|
||||
# reset data from templates
|
||||
api.reset_data_from_templates()
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
from pype import api as pype
|
||||
from pypeapp import Anatomy, config
|
||||
|
||||
|
||||
log = pype.Logger().get_logger(__name__, "premiere")
|
||||
|
||||
|
||||
def get_anatomy(**kwarg):
|
||||
return pype.Anatomy
|
||||
return Anatomy()
|
||||
|
||||
|
||||
def get_dataflow(**kwarg):
|
||||
|
|
@ -15,7 +17,8 @@ def get_dataflow(**kwarg):
|
|||
assert any([host, cls]), log.error("premiera.templates.get_dataflow():"
|
||||
"Missing mandatory kwargs `host`, `cls`")
|
||||
|
||||
pr_dataflow = getattr(pype.Dataflow, str(host), None)
|
||||
presets = config.get_init_presets()
|
||||
pr_dataflow = getattr(presets["dataflow"], str(host), None)
|
||||
pr_dataflow_node = getattr(pr_dataflow.nodes, str(cls), None)
|
||||
if preset:
|
||||
pr_dataflow_node = getattr(pr_dataflow_node, str(preset), None)
|
||||
|
|
@ -32,7 +35,8 @@ def get_colorspace(**kwarg):
|
|||
assert any([host, cls]), log.error("premiera.templates.get_colorspace():"
|
||||
"Missing mandatory kwargs `host`, `cls`")
|
||||
|
||||
pr_colorspace = getattr(pype.Colorspace, str(host), None)
|
||||
presets = config.get_init_presets()
|
||||
pr_colorspace = getattr(presets["colorspace"], str(host), None)
|
||||
pr_colorspace_node = getattr(pr_colorspace, str(cls), None)
|
||||
if preset:
|
||||
pr_colorspace_node = getattr(pr_colorspace_node, str(preset), None)
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import sys
|
|||
from avalon import io, api as avalon, lib as avalonlib
|
||||
from . import lib
|
||||
# from pypeapp.api import (Templates, Logger, format)
|
||||
from pypeapp import Logger, config, Anatomy
|
||||
from pypeapp import Logger, Anatomy
|
||||
log = Logger().get_logger(__name__, os.getenv("AVALON_APP", "pype-config"))
|
||||
|
||||
|
||||
|
|
@ -17,63 +17,6 @@ def set_session():
|
|||
self.SESSION = avalon.session
|
||||
|
||||
|
||||
def load_data_from_templates():
|
||||
"""
|
||||
Load Presets and Anatomy `contextual` data as singleton object
|
||||
[info](https://en.wikipedia.org/wiki/Singleton_pattern)
|
||||
|
||||
Returns:
|
||||
singleton: adding data to sharable object variable
|
||||
|
||||
"""
|
||||
|
||||
from . import api
|
||||
if not any([
|
||||
api.Dataflow,
|
||||
api.Anatomy,
|
||||
api.Colorspace
|
||||
]
|
||||
):
|
||||
presets = config.get_presets()
|
||||
anatomy = Anatomy()
|
||||
|
||||
try:
|
||||
# try if it is not in projects custom directory
|
||||
# `{PYPE_PROJECT_CONFIGS}/[PROJECT_NAME]/init.json`
|
||||
# init.json define preset names to be used
|
||||
p_init = presets["init"]
|
||||
colorspace = presets["colorspace"][p_init["colorspace"]]
|
||||
dataflow = presets["dataflow"][p_init["dataflow"]]
|
||||
except KeyError:
|
||||
log.warning("No projects custom preset available...")
|
||||
colorspace = presets["colorspace"]["default"]
|
||||
dataflow = presets["dataflow"]["default"]
|
||||
log.info("Presets `colorspace` and `dataflow` loaded from `default`...")
|
||||
|
||||
api.Anatomy = anatomy
|
||||
api.Dataflow = dataflow
|
||||
api.Colorspace = colorspace
|
||||
|
||||
log.info("Data from templates were Loaded...")
|
||||
|
||||
|
||||
def reset_data_from_templates():
|
||||
"""
|
||||
Clear Templates `contextual` data from singleton
|
||||
object variable
|
||||
|
||||
Returns:
|
||||
singleton: clearing data to None
|
||||
|
||||
"""
|
||||
|
||||
from . import api
|
||||
api.Dataflow = None
|
||||
api.Anatomy = None
|
||||
api.Colorspace = None
|
||||
log.info("Data from templates were Unloaded...")
|
||||
|
||||
|
||||
def get_version_from_path(file):
|
||||
"""
|
||||
Finds version number in file path string
|
||||
|
|
@ -265,7 +208,9 @@ def set_avalon_workdir(project=None,
|
|||
if self.SESSION is None:
|
||||
set_session()
|
||||
|
||||
awd = self.SESSION.get("AVALON_WORKDIR", None) or os.getenv("AVALON_WORKDIR", None)
|
||||
awd = self.SESSION.get("AVALON_WORKDIR", None) or \
|
||||
os.getenv("AVALON_WORKDIR", None)
|
||||
|
||||
data = get_context_data(project, hierarchy, asset, task)
|
||||
|
||||
if (not awd) or ("{" not in awd):
|
||||
|
|
@ -280,7 +225,7 @@ def set_avalon_workdir(project=None,
|
|||
|
||||
def get_workdir_template(data=None):
|
||||
"""
|
||||
Obtain workdir templated path from api.Anatomy singleton
|
||||
Obtain workdir templated path from Anatomy()
|
||||
|
||||
Args:
|
||||
data (dict, optional): basic contextual data
|
||||
|
|
@ -288,12 +233,8 @@ def get_workdir_template(data=None):
|
|||
Returns:
|
||||
string: template path
|
||||
"""
|
||||
from . import api
|
||||
|
||||
""" Installs singleton data """
|
||||
load_data_from_templates()
|
||||
|
||||
anatomy = api.Anatomy
|
||||
anatomy = Anatomy()
|
||||
anatomy_filled = anatomy.format(data or get_context_data())
|
||||
|
||||
try:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue