diff --git a/pype/hooks/aftereffects/pre_launch_args.py b/pype/hooks/aftereffects/pre_launch_args.py index e39247b983..00b3557429 100644 --- a/pype/hooks/aftereffects/pre_launch_args.py +++ b/pype/hooks/aftereffects/pre_launch_args.py @@ -20,16 +20,23 @@ class AfterEffectsPrelaunchHook(PreLaunchHook): while self.launch_context.launch_args: remainders.append(self.launch_context.launch_args.pop(0)) + workfile_path = self.data["last_workfile_path"] + if not os.path.exists(workfile_path): + workfile_path = "" + new_launch_args = [ self.python_executable(), "-c", ( "import avalon.aftereffects;" - "avalon.aftereffects.launch(\"{}\")" - ).format(aftereffects_executable) + "avalon.aftereffects.launch(\"{}\", \"{}\")" + ).format( + aftereffects_executable.replace("\\", "\\\\"), + workfile_path.replace("\\", "\\\\") + ) ] - # Append as whole list as these areguments should not be separated + # Append as whole list as these arguments should not be separated self.launch_context.launch_args.append(new_launch_args) if remainders: diff --git a/pype/hooks/harmony/pre_launch_args.py b/pype/hooks/harmony/pre_launch_args.py index f09cef9384..a61977f4e7 100644 --- a/pype/hooks/harmony/pre_launch_args.py +++ b/pype/hooks/harmony/pre_launch_args.py @@ -26,7 +26,7 @@ class HarmonyPrelaunchHook(PreLaunchHook): ( "import avalon.harmony;" "avalon.harmony.launch(\"{}\")" - ).format(harmony_executable.replace("\\", "/")) + ).format(harmony_executable.replace("\\", "\\\\")) ] # Append as whole list as these areguments should not be separated diff --git a/pype/hooks/photoshop/pre_launch_args.py b/pype/hooks/photoshop/pre_launch_args.py index b13e7d1e0f..6bd40eb2e1 100644 --- a/pype/hooks/photoshop/pre_launch_args.py +++ b/pype/hooks/photoshop/pre_launch_args.py @@ -20,13 +20,20 @@ class PhotoshopPrelaunchHook(PreLaunchHook): while self.launch_context.launch_args: remainders.append(self.launch_context.launch_args.pop(0)) + workfile_path = self.data["last_workfile_path"] + if not os.path.exists(workfile_path): + workfile_path = "" + new_launch_args = [ self.python_executable(), "-c", ( "import avalon.photoshop;" - "avalon.photoshop.launch(\"{}\")" - ).format(photoshop_executable) + "avalon.photoshop.launch(\"{}\", \"{}\")" + ).format( + photoshop_executable.replace("\\", "\\\\"), + workfile_path.replace("\\", "\\\\") + ) ] # Append as whole list as these areguments should not be separated diff --git a/pype/hooks/photoshop/prelaunch.py b/pype/hooks/photoshop/prelaunch.py deleted file mode 100644 index bcd842736e..0000000000 --- a/pype/hooks/photoshop/prelaunch.py +++ /dev/null @@ -1,131 +0,0 @@ -import os -import pype.lib -from pype.api import Logger, Anatomy -import shutil -import getpass -import avalon.api - - -class PhotoshopPrelaunch(pype.lib.PypeHook): - """This hook will check for the existence of PyWin - - PyWin is a requirement for the Photoshop integration. - """ - project_code = None - host_name = "photoshop" - - def __init__(self, logger=None): - if not logger: - self.log = Logger().get_logger(self.__class__.__name__) - else: - self.log = logger - - self.signature = "( {} )".format(self.__class__.__name__) - - def execute(self, *args, env: dict = None) -> bool: - output = pype.lib._subprocess(["pip", "install", "pywin32==227"]) - self.log.info(output) - - workfile_path = self.get_workfile_plath(env, self.host_name) - - # adding compulsory environment var for openting file - env["PYPE_WORKFILE_PATH"] = workfile_path - - return True - - def get_anatomy_filled(self, workdir, project_name, asset_name, - task_name, host_name, extension): - dbcon = avalon.api.AvalonMongoDB() - dbcon.install() - dbcon.Session["AVALON_PROJECT"] = project_name - project_document = dbcon.find_one({"type": "project"}) - asset_document = dbcon.find_one({ - "type": "asset", - "name": asset_name - }) - dbcon.uninstall() - - asset_doc_parents = asset_document["data"].get("parents") - hierarchy = "/".join(asset_doc_parents) - - data = { - "project": { - "name": project_document["name"], - "code": project_document["data"].get("code") - }, - "task": task_name, - "asset": asset_name, - "app": host_name, - "hierarchy": hierarchy - } - anatomy = Anatomy(project_name) - file_template = anatomy.templates["work"]["file"] - data.update({ - "version": 1, - "user": os.environ.get("PYPE_USERNAME") or getpass.getuser(), - "ext": extension - }) - - return avalon.api.last_workfile( - workdir, file_template, data, - avalon.api.HOST_WORKFILE_EXTENSIONS[host_name], True - ) - - def get_workfile_plath(self, env, host_name): - # get context variables - project_name = env["AVALON_PROJECT"] - asset_name = env["AVALON_ASSET"] - task_name = env["AVALON_TASK"] - workdir = env["AVALON_WORKDIR"] - extension = avalon.api.HOST_WORKFILE_EXTENSIONS[host_name][0] - template_env_key = "{}_TEMPLATE".format(host_name.upper()) - - # get workfile path - workfile_path = self.get_anatomy_filled( - workdir, project_name, asset_name, task_name, host_name, extension) - - # create workdir if doesn't exist - os.makedirs(workdir, exist_ok=True) - self.log.info("Work dir is: `{}`".format(workdir)) - - # get last version of workfile - workfile_last = env.get("AVALON_LAST_WORKFILE") - self.log.debug("_ workfile_last: `{}`".format(workfile_last)) - - if workfile_last: - workfile = workfile_last - workfile_path = os.path.join(workdir, workfile) - - # copy workfile from template if doesnt exist any on path - if not os.path.isfile(workfile_path): - # try to get path from environment or use default - # from `pype.hosts.` dir - template_path = env.get(template_env_key) or os.path.join( - env.get("PYPE_MODULE_ROOT"), - "pype/hosts/{}/template{}".format(host_name, extension) - ) - - # try to get template from project config folder - proj_config_path = os.path.join( - env["PYPE_PROJECT_CONFIGS"], project_name) - if os.path.exists(proj_config_path): - - template_file = None - for f in os.listdir(proj_config_path): - if extension in os.path.splitext(f): - template_file = f - - if template_file: - template_path = os.path.join( - proj_config_path, template_file) - self.log.info( - "Creating workfile from template: `{}`".format(template_path)) - - # copy template to new destinantion - shutil.copy2( - os.path.normpath(template_path), - os.path.normpath(workfile_path) - ) - - self.log.info("Workfile to open: `{}`".format(workfile_path)) - return workfile_path diff --git a/pype/hosts/aftereffects/template.aep b/pype/hosts/aftereffects/template.aep new file mode 100644 index 0000000000..0857e418f3 Binary files /dev/null and b/pype/hosts/aftereffects/template.aep differ diff --git a/pype/hosts/celaction/__init__.py b/pype/hosts/celaction/__init__.py index 8c93d93738..e69de29bb2 100644 --- a/pype/hosts/celaction/__init__.py +++ b/pype/hosts/celaction/__init__.py @@ -1 +0,0 @@ -kwargs = None diff --git a/pype/hosts/celaction/api/__init__.py b/pype/hosts/celaction/api/__init__.py new file mode 100644 index 0000000000..8c93d93738 --- /dev/null +++ b/pype/hosts/celaction/api/__init__.py @@ -0,0 +1 @@ +kwargs = None diff --git a/pype/hosts/celaction/cli.py b/pype/hosts/celaction/api/cli.py similarity index 87% rename from pype/hosts/celaction/cli.py rename to pype/hosts/celaction/api/cli.py index 42f7a1a385..9f2d1a1fdb 100644 --- a/pype/hosts/celaction/cli.py +++ b/pype/hosts/celaction/api/cli.py @@ -11,18 +11,19 @@ import pyblish.util from pype.api import Logger import pype -from pype.hosts import celaction +import pype.hosts.celaction +from pype.hosts.celaction import api as celaction log = Logger().get_logger("Celaction_cli_publisher") publish_host = "celaction" -PUBLISH_PATH = os.path.join(pype.PLUGINS_DIR, publish_host, "publish") - -PUBLISH_PATHS = [ - PUBLISH_PATH, - os.path.join(pype.PLUGINS_DIR, "ftrack", "publish") -] +HOST_DIR = os.path.dirname(os.path.abspath(pype.hosts.celaction.__file__)) +PLUGINS_DIR = os.path.join(HOST_DIR, "plugins") +PUBLISH_PATH = os.path.join(PLUGINS_DIR, "publish") +LOAD_PATH = os.path.join(PLUGINS_DIR, "load") +CREATE_PATH = os.path.join(PLUGINS_DIR, "create") +INVENTORY_PATH = os.path.join(PLUGINS_DIR, "inventory") def cli(): diff --git a/pype/plugins/maya/__init__.py b/pype/hosts/celaction/hooks/__init__.py similarity index 100% rename from pype/plugins/maya/__init__.py rename to pype/hosts/celaction/hooks/__init__.py diff --git a/pype/hooks/celaction/pre_celaction_registers.py b/pype/hosts/celaction/hooks/pre_celaction_registers.py similarity index 95% rename from pype/hooks/celaction/pre_celaction_registers.py rename to pype/hosts/celaction/hooks/pre_celaction_registers.py index 04ecf82c5c..1e836a2d63 100644 --- a/pype/hooks/celaction/pre_celaction_registers.py +++ b/pype/hosts/celaction/hooks/pre_celaction_registers.py @@ -2,7 +2,7 @@ import os import shutil import winreg from pype.lib import PreLaunchHook -from pype.hosts import celaction +from pype.hosts.celaction import api as celaction class CelactionPrelaunchHook(PreLaunchHook): @@ -37,7 +37,7 @@ class CelactionPrelaunchHook(PreLaunchHook): "Software\\CelAction\\CelAction2D\\User Settings", 0, winreg.KEY_ALL_ACCESS) - # TODO: change to root path and pyblish standalone to premiere way + # TODO: change to pype executable pype_root_path = os.getenv("PYPE_SETUP_PATH") path = os.path.join(pype_root_path, "pype.bat") @@ -94,11 +94,12 @@ class CelactionPrelaunchHook(PreLaunchHook): if not os.path.exists(workfile_path): # TODO add ability to set different template workfile path via # settings - pype_celaction_dir = os.path.dirname( + pype_celaction_dir = os.path.dirname(os.path.dirname( os.path.abspath(celaction.__file__) - ) + )) template_path = os.path.join( pype_celaction_dir, + "resources", "celaction_template_scene.scn" ) diff --git a/pype/plugins/maya/publish/__init__.py b/pype/hosts/celaction/plugins/__init__.py similarity index 100% rename from pype/plugins/maya/publish/__init__.py rename to pype/hosts/celaction/plugins/__init__.py diff --git a/pype/plugins/celaction/publish/collect_audio.py b/pype/hosts/celaction/plugins/publish/collect_audio.py similarity index 97% rename from pype/plugins/celaction/publish/collect_audio.py rename to pype/hosts/celaction/plugins/publish/collect_audio.py index bab1203642..8d3c1568e6 100644 --- a/pype/plugins/celaction/publish/collect_audio.py +++ b/pype/hosts/celaction/plugins/publish/collect_audio.py @@ -1,126 +1,126 @@ -import os -import collections - -import pyblish.api -from avalon import io - -from pprint import pformat - - -class AppendCelactionAudio(pyblish.api.ContextPlugin): - - label = "Colect Audio for publishing" - order = pyblish.api.CollectorOrder + 0.1 - - def process(self, context): - self.log.info('Collecting Audio Data') - asset_doc = context.data["assetEntity"] - - # get all available representations - subsets = self.get_subsets( - asset_doc, - representations=["audio", "wav"] - ) - self.log.info(f"subsets is: {pformat(subsets)}") - - if not subsets.get("audioMain"): - raise AttributeError("`audioMain` subset does not exist") - - reprs = subsets.get("audioMain", {}).get("representations", []) - self.log.info(f"reprs is: {pformat(reprs)}") - - repr = next((r for r in reprs), None) - if not repr: - raise "Missing `audioMain` representation" - self.log.info(f"represetation is: {repr}") - - audio_file = repr.get('data', {}).get('path', "") - - if os.path.exists(audio_file): - context.data["audioFile"] = audio_file - self.log.info( - 'audio_file: {}, has been added to context'.format(audio_file)) - else: - self.log.warning("Couldn't find any audio file on Ftrack.") - - def get_subsets(self, asset_doc, representations): - """ - Query subsets with filter on name. - - The method will return all found subsets and its defined version - and subsets. Version could be specified with number. Representation - can be filtered. - - Arguments: - asset_doct (dict): Asset (shot) mongo document - representations (list): list for all representations - - Returns: - dict: subsets with version and representaions in keys - """ - - # Query all subsets for asset - subset_docs = io.find({ - "type": "subset", - "parent": asset_doc["_id"] - }) - # Collect all subset ids - subset_ids = [ - subset_doc["_id"] - for subset_doc in subset_docs - ] - - # Check if we found anything - assert subset_ids, ( - "No subsets found. Check correct filter. " - "Try this for start `r'.*'`: asset: `{}`" - ).format(asset_doc["name"]) - - # Last version aggregation - pipeline = [ - # Find all versions of those subsets - {"$match": { - "type": "version", - "parent": {"$in": subset_ids} - }}, - # Sorting versions all together - {"$sort": {"name": 1}}, - # Group them by "parent", but only take the last - {"$group": { - "_id": "$parent", - "_version_id": {"$last": "$_id"}, - "name": {"$last": "$name"} - }} - ] - last_versions_by_subset_id = dict() - for doc in io.aggregate(pipeline): - doc["parent"] = doc["_id"] - doc["_id"] = doc.pop("_version_id") - last_versions_by_subset_id[doc["parent"]] = doc - - version_docs_by_id = {} - for version_doc in last_versions_by_subset_id.values(): - version_docs_by_id[version_doc["_id"]] = version_doc - - repre_docs = io.find({ - "type": "representation", - "parent": {"$in": list(version_docs_by_id.keys())}, - "name": {"$in": representations} - }) - repre_docs_by_version_id = collections.defaultdict(list) - for repre_doc in repre_docs: - version_id = repre_doc["parent"] - repre_docs_by_version_id[version_id].append(repre_doc) - - output_dict = {} - for version_id, repre_docs in repre_docs_by_version_id.items(): - version_doc = version_docs_by_id[version_id] - subset_id = version_doc["parent"] - subset_doc = last_versions_by_subset_id[subset_id] - # Store queried docs by subset name - output_dict[subset_doc["name"]] = { - "representations": repre_docs, - "version": version_doc - } - - return output_dict +import os +import collections + +import pyblish.api +from avalon import io + +from pprint import pformat + + +class AppendCelactionAudio(pyblish.api.ContextPlugin): + + label = "Colect Audio for publishing" + order = pyblish.api.CollectorOrder + 0.1 + + def process(self, context): + self.log.info('Collecting Audio Data') + asset_doc = context.data["assetEntity"] + + # get all available representations + subsets = self.get_subsets( + asset_doc, + representations=["audio", "wav"] + ) + self.log.info(f"subsets is: {pformat(subsets)}") + + if not subsets.get("audioMain"): + raise AttributeError("`audioMain` subset does not exist") + + reprs = subsets.get("audioMain", {}).get("representations", []) + self.log.info(f"reprs is: {pformat(reprs)}") + + repr = next((r for r in reprs), None) + if not repr: + raise "Missing `audioMain` representation" + self.log.info(f"represetation is: {repr}") + + audio_file = repr.get('data', {}).get('path', "") + + if os.path.exists(audio_file): + context.data["audioFile"] = audio_file + self.log.info( + 'audio_file: {}, has been added to context'.format(audio_file)) + else: + self.log.warning("Couldn't find any audio file on Ftrack.") + + def get_subsets(self, asset_doc, representations): + """ + Query subsets with filter on name. + + The method will return all found subsets and its defined version + and subsets. Version could be specified with number. Representation + can be filtered. + + Arguments: + asset_doct (dict): Asset (shot) mongo document + representations (list): list for all representations + + Returns: + dict: subsets with version and representaions in keys + """ + + # Query all subsets for asset + subset_docs = io.find({ + "type": "subset", + "parent": asset_doc["_id"] + }) + # Collect all subset ids + subset_ids = [ + subset_doc["_id"] + for subset_doc in subset_docs + ] + + # Check if we found anything + assert subset_ids, ( + "No subsets found. Check correct filter. " + "Try this for start `r'.*'`: asset: `{}`" + ).format(asset_doc["name"]) + + # Last version aggregation + pipeline = [ + # Find all versions of those subsets + {"$match": { + "type": "version", + "parent": {"$in": subset_ids} + }}, + # Sorting versions all together + {"$sort": {"name": 1}}, + # Group them by "parent", but only take the last + {"$group": { + "_id": "$parent", + "_version_id": {"$last": "$_id"}, + "name": {"$last": "$name"} + }} + ] + last_versions_by_subset_id = dict() + for doc in io.aggregate(pipeline): + doc["parent"] = doc["_id"] + doc["_id"] = doc.pop("_version_id") + last_versions_by_subset_id[doc["parent"]] = doc + + version_docs_by_id = {} + for version_doc in last_versions_by_subset_id.values(): + version_docs_by_id[version_doc["_id"]] = version_doc + + repre_docs = io.find({ + "type": "representation", + "parent": {"$in": list(version_docs_by_id.keys())}, + "name": {"$in": representations} + }) + repre_docs_by_version_id = collections.defaultdict(list) + for repre_doc in repre_docs: + version_id = repre_doc["parent"] + repre_docs_by_version_id[version_id].append(repre_doc) + + output_dict = {} + for version_id, repre_docs in repre_docs_by_version_id.items(): + version_doc = version_docs_by_id[version_id] + subset_id = version_doc["parent"] + subset_doc = last_versions_by_subset_id[subset_id] + # Store queried docs by subset name + output_dict[subset_doc["name"]] = { + "representations": repre_docs, + "version": version_doc + } + + return output_dict diff --git a/pype/plugins/celaction/publish/collect_celaction_cli_kwargs.py b/pype/hosts/celaction/plugins/publish/collect_celaction_cli_kwargs.py similarity index 92% rename from pype/plugins/celaction/publish/collect_celaction_cli_kwargs.py rename to pype/hosts/celaction/plugins/publish/collect_celaction_cli_kwargs.py index f4a9ec341d..463805ce4b 100644 --- a/pype/plugins/celaction/publish/collect_celaction_cli_kwargs.py +++ b/pype/hosts/celaction/plugins/publish/collect_celaction_cli_kwargs.py @@ -1,23 +1,23 @@ -import pyblish.api -from pype.hosts import celaction - - -class CollectCelactionCliKwargs(pyblish.api.Collector): - """ Collects all keyword arguments passed from the terminal """ - - label = "Collect Celaction Cli Kwargs" - order = pyblish.api.Collector.order - 0.1 - - def process(self, context): - kwargs = celaction.kwargs.copy() - - self.log.info("Storing kwargs: %s" % kwargs) - context.set_data("kwargs", kwargs) - - # get kwargs onto context data as keys with values - for k, v in kwargs.items(): - self.log.info(f"Setting `{k}` to instance.data with value: `{v}`") - if k in ["frameStart", "frameEnd"]: - context.data[k] = kwargs[k] = int(v) - else: - context.data[k] = v +import pyblish.api +from pype.hosts.celaction import api as celaction + + +class CollectCelactionCliKwargs(pyblish.api.Collector): + """ Collects all keyword arguments passed from the terminal """ + + label = "Collect Celaction Cli Kwargs" + order = pyblish.api.Collector.order - 0.1 + + def process(self, context): + kwargs = celaction.kwargs.copy() + + self.log.info("Storing kwargs: %s" % kwargs) + context.set_data("kwargs", kwargs) + + # get kwargs onto context data as keys with values + for k, v in kwargs.items(): + self.log.info(f"Setting `{k}` to instance.data with value: `{v}`") + if k in ["frameStart", "frameEnd"]: + context.data[k] = kwargs[k] = int(v) + else: + context.data[k] = v diff --git a/pype/plugins/celaction/publish/collect_celaction_instances.py b/pype/hosts/celaction/plugins/publish/collect_celaction_instances.py similarity index 97% rename from pype/plugins/celaction/publish/collect_celaction_instances.py rename to pype/hosts/celaction/plugins/publish/collect_celaction_instances.py index d3d1d264c0..f393e471c4 100644 --- a/pype/plugins/celaction/publish/collect_celaction_instances.py +++ b/pype/hosts/celaction/plugins/publish/collect_celaction_instances.py @@ -1,96 +1,96 @@ -import os -from avalon import api -import pyblish.api - - -class CollectCelactionInstances(pyblish.api.ContextPlugin): - """ Adds the celaction render instances """ - - label = "Collect Celaction Instances" - order = pyblish.api.CollectorOrder + 0.1 - - def process(self, context): - task = api.Session["AVALON_TASK"] - current_file = context.data["currentFile"] - staging_dir = os.path.dirname(current_file) - scene_file = os.path.basename(current_file) - version = context.data["version"] - asset_entity = context.data["assetEntity"] - project_entity = context.data["projectEntity"] - - shared_instance_data = { - "asset": asset_entity["name"], - "frameStart": asset_entity["data"]["frameStart"], - "frameEnd": asset_entity["data"]["frameEnd"], - "handleStart": asset_entity["data"]["handleStart"], - "handleEnd": asset_entity["data"]["handleEnd"], - "fps": asset_entity["data"]["fps"], - "resolutionWidth": asset_entity["data"].get( - "resolutionWidth", - project_entity["data"]["resolutionWidth"]), - "resolutionHeight": asset_entity["data"].get( - "resolutionHeight", - project_entity["data"]["resolutionHeight"]), - "pixelAspect": 1, - "step": 1, - "version": version - } - - celaction_kwargs = context.data.get("kwargs", {}) - - if celaction_kwargs: - shared_instance_data.update(celaction_kwargs) - - # workfile instance - family = "workfile" - subset = family + task.capitalize() - # Create instance - instance = context.create_instance(subset) - - # creating instance data - instance.data.update({ - "subset": subset, - "label": scene_file, - "family": family, - "families": [family, "ftrack"], - "representations": list() - }) - - # adding basic script data - instance.data.update(shared_instance_data) - - # creating representation - representation = { - 'name': 'scn', - 'ext': 'scn', - 'files': scene_file, - "stagingDir": staging_dir, - } - - instance.data["representations"].append(representation) - - self.log.info('Publishing Celaction workfile') - - # render instance - family = "render.farm" - subset = f"render{task}Main" - instance = context.create_instance(name=subset) - # getting instance state - instance.data["publish"] = True - - # add assetEntity data into instance - instance.data.update({ - "label": "{} - farm".format(subset), - "family": family, - "families": [family], - "subset": subset - }) - - # adding basic script data - instance.data.update(shared_instance_data) - - self.log.info('Publishing Celaction render instance') - self.log.debug(f"Instance data: `{instance.data}`") - - for i in context: - self.log.debug(f"{i.data['families']}") +import os +from avalon import api +import pyblish.api + + +class CollectCelactionInstances(pyblish.api.ContextPlugin): + """ Adds the celaction render instances """ + + label = "Collect Celaction Instances" + order = pyblish.api.CollectorOrder + 0.1 + + def process(self, context): + task = api.Session["AVALON_TASK"] + current_file = context.data["currentFile"] + staging_dir = os.path.dirname(current_file) + scene_file = os.path.basename(current_file) + version = context.data["version"] + asset_entity = context.data["assetEntity"] + project_entity = context.data["projectEntity"] + + shared_instance_data = { + "asset": asset_entity["name"], + "frameStart": asset_entity["data"]["frameStart"], + "frameEnd": asset_entity["data"]["frameEnd"], + "handleStart": asset_entity["data"]["handleStart"], + "handleEnd": asset_entity["data"]["handleEnd"], + "fps": asset_entity["data"]["fps"], + "resolutionWidth": asset_entity["data"].get( + "resolutionWidth", + project_entity["data"]["resolutionWidth"]), + "resolutionHeight": asset_entity["data"].get( + "resolutionHeight", + project_entity["data"]["resolutionHeight"]), + "pixelAspect": 1, + "step": 1, + "version": version + } + + celaction_kwargs = context.data.get("kwargs", {}) + + if celaction_kwargs: + shared_instance_data.update(celaction_kwargs) + + # workfile instance + family = "workfile" + subset = family + task.capitalize() + # Create instance + instance = context.create_instance(subset) + + # creating instance data + instance.data.update({ + "subset": subset, + "label": scene_file, + "family": family, + "families": [family, "ftrack"], + "representations": list() + }) + + # adding basic script data + instance.data.update(shared_instance_data) + + # creating representation + representation = { + 'name': 'scn', + 'ext': 'scn', + 'files': scene_file, + "stagingDir": staging_dir, + } + + instance.data["representations"].append(representation) + + self.log.info('Publishing Celaction workfile') + + # render instance + family = "render.farm" + subset = f"render{task}Main" + instance = context.create_instance(name=subset) + # getting instance state + instance.data["publish"] = True + + # add assetEntity data into instance + instance.data.update({ + "label": "{} - farm".format(subset), + "family": family, + "families": [family], + "subset": subset + }) + + # adding basic script data + instance.data.update(shared_instance_data) + + self.log.info('Publishing Celaction render instance') + self.log.debug(f"Instance data: `{instance.data}`") + + for i in context: + self.log.debug(f"{i.data['families']}") diff --git a/pype/plugins/celaction/publish/collect_render_path.py b/pype/hosts/celaction/plugins/publish/collect_render_path.py similarity index 100% rename from pype/plugins/celaction/publish/collect_render_path.py rename to pype/hosts/celaction/plugins/publish/collect_render_path.py diff --git a/pype/plugins/celaction/publish/integrate_version_up.py b/pype/hosts/celaction/plugins/publish/integrate_version_up.py similarity index 96% rename from pype/plugins/celaction/publish/integrate_version_up.py rename to pype/hosts/celaction/plugins/publish/integrate_version_up.py index e15c5d5bf6..140878e2b9 100644 --- a/pype/plugins/celaction/publish/integrate_version_up.py +++ b/pype/hosts/celaction/plugins/publish/integrate_version_up.py @@ -1,20 +1,20 @@ -import shutil -import pype -import pyblish.api - - -class VersionUpScene(pyblish.api.ContextPlugin): - order = pyblish.api.IntegratorOrder + 0.5 - label = 'Version Up Scene' - families = ['workfile'] - optional = True - active = True - - def process(self, context): - current_file = context.data.get('currentFile') - v_up = pype.lib.version_up(current_file) - self.log.debug('Current file is: {}'.format(current_file)) - self.log.debug('Version up: {}'.format(v_up)) - - shutil.copy2(current_file, v_up) - self.log.info('Scene saved into new version: {}'.format(v_up)) +import shutil +import pype +import pyblish.api + + +class VersionUpScene(pyblish.api.ContextPlugin): + order = pyblish.api.IntegratorOrder + 0.5 + label = 'Version Up Scene' + families = ['workfile'] + optional = True + active = True + + def process(self, context): + current_file = context.data.get('currentFile') + v_up = pype.lib.version_up(current_file) + self.log.debug('Current file is: {}'.format(current_file)) + self.log.debug('Version up: {}'.format(v_up)) + + shutil.copy2(current_file, v_up) + self.log.info('Scene saved into new version: {}'.format(v_up)) diff --git a/pype/plugins/celaction/publish/submit_celaction_deadline.py b/pype/hosts/celaction/plugins/publish/submit_celaction_deadline.py similarity index 100% rename from pype/plugins/celaction/publish/submit_celaction_deadline.py rename to pype/hosts/celaction/plugins/publish/submit_celaction_deadline.py diff --git a/pype/hosts/celaction/celaction_template_scene.scn b/pype/hosts/celaction/resources/celaction_template_scene.scn similarity index 100% rename from pype/hosts/celaction/celaction_template_scene.scn rename to pype/hosts/celaction/resources/celaction_template_scene.scn diff --git a/pype/hosts/maya/__init__.py b/pype/hosts/maya/__init__.py index 06b3e2c63c..e69de29bb2 100644 --- a/pype/hosts/maya/__init__.py +++ b/pype/hosts/maya/__init__.py @@ -1,217 +0,0 @@ -import os -import logging -import weakref - -from maya import utils, cmds - -from avalon import api as avalon, pipeline, maya -from avalon.maya.pipeline import IS_HEADLESS -from avalon.tools import workfiles -from pyblish import api as pyblish - -from ...lib import any_outdated -from pype import PLUGINS_DIR - -from . import menu -from . import lib - -log = logging.getLogger("pype.hosts.maya") - -PUBLISH_PATH = os.path.join(PLUGINS_DIR, "maya", "publish") -LOAD_PATH = os.path.join(PLUGINS_DIR, "maya", "load") -CREATE_PATH = os.path.join(PLUGINS_DIR, "maya", "create") - - -def install(): - pyblish.register_plugin_path(PUBLISH_PATH) - avalon.register_plugin_path(avalon.Loader, LOAD_PATH) - avalon.register_plugin_path(avalon.Creator, CREATE_PATH) - log.info(PUBLISH_PATH) - menu.install() - - log.info("Installing callbacks ... ") - avalon.on("init", on_init) - - # Callbacks below are not required for headless mode, the `init` however - # is important to load referenced Alembics correctly at rendertime. - if IS_HEADLESS: - log.info("Running in headless mode, skipping Colorbleed Maya " - "save/open/new callback installation..") - return - - avalon.on("save", on_save) - avalon.on("open", on_open) - avalon.on("new", on_new) - avalon.before("save", on_before_save) - - log.info("Overriding existing event 'taskChanged'") - override_event("taskChanged", on_task_changed) - - log.info("Setting default family states for loader..") - avalon.data["familiesStateToggled"] = ["imagesequence"] - - -def uninstall(): - pyblish.deregister_plugin_path(PUBLISH_PATH) - avalon.deregister_plugin_path(avalon.Loader, LOAD_PATH) - avalon.deregister_plugin_path(avalon.Creator, CREATE_PATH) - - menu.uninstall() - - -def override_event(event, callback): - """ - Override existing event callback - Args: - event (str): name of the event - callback (function): callback to be triggered - - Returns: - None - - """ - - ref = weakref.WeakSet() - ref.add(callback) - - pipeline._registered_event_handlers[event] = ref - - -def on_init(_): - avalon.logger.info("Running callback on init..") - - def safe_deferred(fn): - """Execute deferred the function in a try-except""" - - def _fn(): - """safely call in deferred callback""" - try: - fn() - except Exception as exc: - print(exc) - - try: - utils.executeDeferred(_fn) - except Exception as exc: - print(exc) - - # Force load Alembic so referenced alembics - # work correctly on scene open - cmds.loadPlugin("AbcImport", quiet=True) - cmds.loadPlugin("AbcExport", quiet=True) - - # Force load objExport plug-in (requested by artists) - cmds.loadPlugin("objExport", quiet=True) - - from .customize import ( - override_component_mask_commands, - override_toolbox_ui - ) - safe_deferred(override_component_mask_commands) - - launch_workfiles = os.environ.get("WORKFILES_STARTUP") - - if launch_workfiles: - safe_deferred(launch_workfiles_app) - - if not IS_HEADLESS: - safe_deferred(override_toolbox_ui) - - -def launch_workfiles_app(*args): - workfiles.show(os.environ["AVALON_WORKDIR"]) - - -def on_before_save(return_code, _): - """Run validation for scene's FPS prior to saving""" - return lib.validate_fps() - - -def on_save(_): - """Automatically add IDs to new nodes - - Any transform of a mesh, without an existing ID, is given one - automatically on file save. - """ - - avalon.logger.info("Running callback on save..") - - # # Update current task for the current scene - # update_task_from_path(cmds.file(query=True, sceneName=True)) - - # Generate ids of the current context on nodes in the scene - nodes = lib.get_id_required_nodes(referenced_nodes=False) - for node, new_id in lib.generate_ids(nodes): - lib.set_id(node, new_id, overwrite=False) - - -def on_open(_): - """On scene open let's assume the containers have changed.""" - - from avalon.vendor.Qt import QtWidgets - from ...widgets import popup - - cmds.evalDeferred( - "from pype.hosts.maya import lib;lib.remove_render_layer_observer()") - cmds.evalDeferred( - "from pype.hosts.maya import lib;lib.add_render_layer_observer()") - cmds.evalDeferred( - "from pype.hosts.maya import lib;lib.add_render_layer_change_observer()") - # # Update current task for the current scene - # update_task_from_path(cmds.file(query=True, sceneName=True)) - - # Validate FPS after update_task_from_path to - # ensure it is using correct FPS for the asset - lib.validate_fps() - lib.fix_incompatible_containers() - - if any_outdated(): - log.warning("Scene has outdated content.") - - # Find maya main window - top_level_widgets = {w.objectName(): w for w in - QtWidgets.QApplication.topLevelWidgets()} - parent = top_level_widgets.get("MayaWindow", None) - - if parent is None: - log.info("Skipping outdated content pop-up " - "because Maya window can't be found.") - else: - - # Show outdated pop-up - def _on_show_inventory(): - import avalon.tools.sceneinventory as tool - tool.show(parent=parent) - - dialog = popup.Popup(parent=parent) - dialog.setWindowTitle("Maya scene has outdated content") - dialog.setMessage("There are outdated containers in " - "your Maya scene.") - dialog.on_show.connect(_on_show_inventory) - dialog.show() - - -def on_new(_): - """Set project resolution and fps when create a new file""" - avalon.logger.info("Running callback on new..") - with maya.suspended_refresh(): - cmds.evalDeferred( - "from pype.hosts.maya import lib;lib.remove_render_layer_observer()") - cmds.evalDeferred( - "from pype.hosts.maya import lib;lib.add_render_layer_observer()") - cmds.evalDeferred( - "from pype.hosts.maya import lib;lib.add_render_layer_change_observer()") - lib.set_context_settings() - - -def on_task_changed(*args): - """Wrapped function of app initialize and maya's on task changed""" - # Run - maya.pipeline._on_task_changed() - with maya.suspended_refresh(): - lib.set_context_settings() - lib.update_content_on_context_change() - - lib.show_message("Context was changed", - ("Context was changed to {}".format( - avalon.Session["AVALON_ASSET"]))) diff --git a/pype/hosts/maya/api/__init__.py b/pype/hosts/maya/api/__init__.py new file mode 100644 index 0000000000..9caca205e6 --- /dev/null +++ b/pype/hosts/maya/api/__init__.py @@ -0,0 +1,226 @@ +import os +import logging +import weakref + +from maya import utils, cmds + +from avalon import api as avalon +from avalon import pipeline +from avalon.maya import suspended_refresh +from avalon.maya.pipeline import IS_HEADLESS, _on_task_changed +from avalon.tools import workfiles +from pyblish import api as pyblish +from pype.lib import any_outdated +import pype.hosts.maya +from . import menu, lib + +log = logging.getLogger("pype.hosts.maya") + +HOST_DIR = os.path.dirname(os.path.abspath(pype.hosts.maya.__file__)) +PLUGINS_DIR = os.path.join(HOST_DIR, "plugins") +PUBLISH_PATH = os.path.join(PLUGINS_DIR, "publish") +LOAD_PATH = os.path.join(PLUGINS_DIR, "load") +CREATE_PATH = os.path.join(PLUGINS_DIR, "create") +INVENTORY_PATH = os.path.join(PLUGINS_DIR, "inventory") + + +def install(): + pyblish.register_plugin_path(PUBLISH_PATH) + avalon.register_plugin_path(avalon.Loader, LOAD_PATH) + avalon.register_plugin_path(avalon.Creator, CREATE_PATH) + log.info(PUBLISH_PATH) + menu.install() + + log.info("Installing callbacks ... ") + avalon.on("init", on_init) + + # Callbacks below are not required for headless mode, the `init` however + # is important to load referenced Alembics correctly at rendertime. + if IS_HEADLESS: + log.info("Running in headless mode, skipping Maya " + "save/open/new callback installation..") + return + + avalon.on("save", on_save) + avalon.on("open", on_open) + avalon.on("new", on_new) + avalon.before("save", on_before_save) + + log.info("Overriding existing event 'taskChanged'") + override_event("taskChanged", on_task_changed) + + log.info("Setting default family states for loader..") + avalon.data["familiesStateToggled"] = ["imagesequence"] + + +def uninstall(): + pyblish.deregister_plugin_path(PUBLISH_PATH) + avalon.deregister_plugin_path(avalon.Loader, LOAD_PATH) + avalon.deregister_plugin_path(avalon.Creator, CREATE_PATH) + + menu.uninstall() + + +def override_event(event, callback): + """ + Override existing event callback + Args: + event (str): name of the event + callback (function): callback to be triggered + + Returns: + None + + """ + + ref = weakref.WeakSet() + ref.add(callback) + + pipeline._registered_event_handlers[event] = ref + + +def on_init(_): + avalon.logger.info("Running callback on init..") + + def safe_deferred(fn): + """Execute deferred the function in a try-except""" + + def _fn(): + """safely call in deferred callback""" + try: + fn() + except Exception as exc: + print(exc) + + try: + utils.executeDeferred(_fn) + except Exception as exc: + print(exc) + + # Force load Alembic so referenced alembics + # work correctly on scene open + cmds.loadPlugin("AbcImport", quiet=True) + cmds.loadPlugin("AbcExport", quiet=True) + + # Force load objExport plug-in (requested by artists) + cmds.loadPlugin("objExport", quiet=True) + + from .customize import ( + override_component_mask_commands, + override_toolbox_ui + ) + safe_deferred(override_component_mask_commands) + + launch_workfiles = os.environ.get("WORKFILES_STARTUP") + + if launch_workfiles: + safe_deferred(launch_workfiles_app) + + if not IS_HEADLESS: + safe_deferred(override_toolbox_ui) + + +def launch_workfiles_app(): + workfiles.show(os.environ["AVALON_WORKDIR"]) + + +def on_before_save(return_code, _): + """Run validation for scene's FPS prior to saving""" + return lib.validate_fps() + + +def on_save(_): + """Automatically add IDs to new nodes + + Any transform of a mesh, without an existing ID, is given one + automatically on file save. + """ + + avalon.logger.info("Running callback on save..") + + # # Update current task for the current scene + # update_task_from_path(cmds.file(query=True, sceneName=True)) + + # Generate ids of the current context on nodes in the scene + nodes = lib.get_id_required_nodes(referenced_nodes=False) + for node, new_id in lib.generate_ids(nodes): + lib.set_id(node, new_id, overwrite=False) + + +def on_open(_): + """On scene open let's assume the containers have changed.""" + + from avalon.vendor.Qt import QtWidgets + from ...widgets import popup + + cmds.evalDeferred( + "from pype.hosts.maya.api import lib;" + "lib.remove_render_layer_observer()") + cmds.evalDeferred( + "from pype.hosts.maya.api import lib;" + "lib.add_render_layer_observer()") + cmds.evalDeferred( + "from pype.hosts.maya.api import lib;" + "lib.add_render_layer_change_observer()") + # # Update current task for the current scene + # update_task_from_path(cmds.file(query=True, sceneName=True)) + + # Validate FPS after update_task_from_path to + # ensure it is using correct FPS for the asset + lib.validate_fps() + lib.fix_incompatible_containers() + + if any_outdated(): + log.warning("Scene has outdated content.") + + # Find maya main window + top_level_widgets = {w.objectName(): w for w in + QtWidgets.QApplication.topLevelWidgets()} + parent = top_level_widgets.get("MayaWindow", None) + + if parent is None: + log.info("Skipping outdated content pop-up " + "because Maya window can't be found.") + else: + + # Show outdated pop-up + def _on_show_inventory(): + import avalon.tools.sceneinventory as tool + tool.show(parent=parent) + + dialog = popup.Popup(parent=parent) + dialog.setWindowTitle("Maya scene has outdated content") + dialog.setMessage("There are outdated containers in " + "your Maya scene.") + dialog.on_show.connect(_on_show_inventory) + dialog.show() + + +def on_new(_): + """Set project resolution and fps when create a new file""" + avalon.logger.info("Running callback on new..") + with suspended_refresh(): + cmds.evalDeferred( + "from pype.hosts.maya.api import lib;" + "lib.remove_render_layer_observer()") + cmds.evalDeferred( + "from pype.hosts.maya.api import lib;" + "lib.add_render_layer_observer()") + cmds.evalDeferred( + "from pype.hosts.maya.api import lib;" + "lib.add_render_layer_change_observer()") + lib.set_context_settings() + + +def on_task_changed(*args): + """Wrapped function of app initialize and maya's on task changed""" + # Run + _on_task_changed() + with suspended_refresh(): + lib.set_context_settings() + lib.update_content_on_context_change() + + lib.show_message( + "Context was changed", + ("Context was changed to {}".format(avalon.Session["AVALON_ASSET"])), + ) \ No newline at end of file diff --git a/pype/hosts/maya/action.py b/pype/hosts/maya/api/action.py similarity index 98% rename from pype/hosts/maya/action.py rename to pype/hosts/maya/api/action.py index bb6815ed7d..35a57a4445 100644 --- a/pype/hosts/maya/action.py +++ b/pype/hosts/maya/api/action.py @@ -4,7 +4,7 @@ from __future__ import absolute_import import pyblish.api -from ...action import get_errored_instances_from_context +from pype.api import get_errored_instances_from_context class GenerateUUIDsOnInvalidAction(pyblish.api.Action): diff --git a/pype/hosts/maya/customize.py b/pype/hosts/maya/api/customize.py similarity index 100% rename from pype/hosts/maya/customize.py rename to pype/hosts/maya/api/customize.py diff --git a/pype/hosts/maya/expected_files.py b/pype/hosts/maya/api/expected_files.py similarity index 99% rename from pype/hosts/maya/expected_files.py rename to pype/hosts/maya/api/expected_files.py index d39e5fa204..0a234baef7 100644 --- a/pype/hosts/maya/expected_files.py +++ b/pype/hosts/maya/api/expected_files.py @@ -44,7 +44,7 @@ from abc import ABCMeta, abstractmethod import six -import pype.hosts.maya.lib as lib +import pype.hosts.maya.api.lib as lib from maya import cmds import maya.app.renderSetup.model.renderSetup as renderSetup diff --git a/pype/hosts/maya/lib.py b/pype/hosts/maya/api/lib.py similarity index 99% rename from pype/hosts/maya/lib.py rename to pype/hosts/maya/api/lib.py index 37e4ccf915..3a820af814 100644 --- a/pype/hosts/maya/lib.py +++ b/pype/hosts/maya/api/lib.py @@ -114,9 +114,7 @@ def matrix_equals(a, b, tolerance=1e-10): bool : True or False """ - if not all(abs(x - y) < tolerance for x, y in zip(a, b)): - return False - return True + return all(abs(x - y) < tolerance for x, y in zip(a, b)) def float_round(num, places=0, direction=ceil): @@ -1084,7 +1082,7 @@ def get_id_required_nodes(referenced_nodes=False, nodes=None): # Check if plugin nodes are available for Maya by checking if the plugin # is loaded - if cmds.pluginInfo("pgYetiMaya", query=True, loaded=True): + if cmds.pluginInfo("pgYetiMaya", query=True, loaded=True): types.append("pgYetiMaya") # We *always* ignore intermediate shapes, so we filter them out directly diff --git a/pype/hosts/maya/menu.json b/pype/hosts/maya/api/menu.json similarity index 100% rename from pype/hosts/maya/menu.json rename to pype/hosts/maya/api/menu.json diff --git a/pype/hosts/maya/menu.py b/pype/hosts/maya/api/menu.py similarity index 99% rename from pype/hosts/maya/menu.py rename to pype/hosts/maya/api/menu.py index fa7690bca7..9381043511 100644 --- a/pype/hosts/maya/menu.py +++ b/pype/hosts/maya/api/menu.py @@ -4,7 +4,7 @@ import logging from avalon.vendor.Qt import QtWidgets, QtGui from avalon.maya import pipeline -from ...lib import BuildWorkfile +from pype.api import BuildWorkfile import maya.cmds as cmds self = sys.modules[__name__] diff --git a/pype/hosts/maya/menu_backup.json b/pype/hosts/maya/api/menu_backup.json similarity index 100% rename from pype/hosts/maya/menu_backup.json rename to pype/hosts/maya/api/menu_backup.json diff --git a/pype/hosts/maya/plugin.py b/pype/hosts/maya/api/plugin.py similarity index 100% rename from pype/hosts/maya/plugin.py rename to pype/hosts/maya/api/plugin.py diff --git a/pype/setdress_api.py b/pype/hosts/maya/api/setdress.py similarity index 99% rename from pype/setdress_api.py rename to pype/hosts/maya/api/setdress.py index 7c764a42df..2c4dd93b18 100644 --- a/pype/setdress_api.py +++ b/pype/hosts/maya/api/setdress.py @@ -9,7 +9,7 @@ from maya import cmds from avalon import api, io from avalon.maya.lib import unique_namespace -from pype.hosts.maya.lib import matrix_equals +from pype.hosts.maya.api.lib import matrix_equals log = logging.getLogger("PackageLoader") diff --git a/pype/hosts/maya/plugins/__init__.py b/pype/hosts/maya/plugins/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/pype/plugins/maya/create/create_animation.py b/pype/hosts/maya/plugins/create/create_animation.py similarity index 96% rename from pype/plugins/maya/create/create_animation.py rename to pype/hosts/maya/plugins/create/create_animation.py index 7bafce774c..6894fffb5d 100644 --- a/pype/plugins/maya/create/create_animation.py +++ b/pype/hosts/maya/plugins/create/create_animation.py @@ -1,5 +1,5 @@ import avalon.maya -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib class CreateAnimation(avalon.maya.Creator): diff --git a/pype/plugins/maya/create/create_ass.py b/pype/hosts/maya/plugins/create/create_ass.py similarity index 96% rename from pype/plugins/maya/create/create_ass.py rename to pype/hosts/maya/plugins/create/create_ass.py index 7fd66e8e15..b7d5f27114 100644 --- a/pype/plugins/maya/create/create_ass.py +++ b/pype/hosts/maya/plugins/create/create_ass.py @@ -1,7 +1,7 @@ from collections import OrderedDict import avalon.maya -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib from maya import cmds diff --git a/pype/plugins/maya/create/create_assembly.py b/pype/hosts/maya/plugins/create/create_assembly.py similarity index 100% rename from pype/plugins/maya/create/create_assembly.py rename to pype/hosts/maya/plugins/create/create_assembly.py diff --git a/pype/plugins/maya/create/create_camera.py b/pype/hosts/maya/plugins/create/create_camera.py similarity index 96% rename from pype/plugins/maya/create/create_camera.py rename to pype/hosts/maya/plugins/create/create_camera.py index acff93c03c..cb438e68ba 100644 --- a/pype/plugins/maya/create/create_camera.py +++ b/pype/hosts/maya/plugins/create/create_camera.py @@ -1,5 +1,5 @@ import avalon.maya -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib class CreateCamera(avalon.maya.Creator): diff --git a/pype/plugins/maya/create/create_layout.py b/pype/hosts/maya/plugins/create/create_layout.py similarity index 100% rename from pype/plugins/maya/create/create_layout.py rename to pype/hosts/maya/plugins/create/create_layout.py diff --git a/pype/plugins/maya/create/create_look.py b/pype/hosts/maya/plugins/create/create_look.py similarity index 94% rename from pype/plugins/maya/create/create_look.py rename to pype/hosts/maya/plugins/create/create_look.py index 5ea64cc7e4..2d8576a8b4 100644 --- a/pype/plugins/maya/create/create_look.py +++ b/pype/hosts/maya/plugins/create/create_look.py @@ -1,5 +1,5 @@ import avalon.maya -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib class CreateLook(avalon.maya.Creator): diff --git a/pype/plugins/maya/create/create_mayaascii.py b/pype/hosts/maya/plugins/create/create_mayaascii.py similarity index 100% rename from pype/plugins/maya/create/create_mayaascii.py rename to pype/hosts/maya/plugins/create/create_mayaascii.py diff --git a/pype/plugins/maya/create/create_model.py b/pype/hosts/maya/plugins/create/create_model.py similarity index 100% rename from pype/plugins/maya/create/create_model.py rename to pype/hosts/maya/plugins/create/create_model.py diff --git a/pype/plugins/maya/create/create_pointcache.py b/pype/hosts/maya/plugins/create/create_pointcache.py similarity index 96% rename from pype/plugins/maya/create/create_pointcache.py rename to pype/hosts/maya/plugins/create/create_pointcache.py index 1eb561b5ce..271257c85e 100644 --- a/pype/plugins/maya/create/create_pointcache.py +++ b/pype/hosts/maya/plugins/create/create_pointcache.py @@ -1,5 +1,5 @@ import avalon.maya -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib class CreatePointCache(avalon.maya.Creator): diff --git a/pype/plugins/maya/create/create_render.py b/pype/hosts/maya/plugins/create/create_render.py similarity index 99% rename from pype/plugins/maya/create/create_render.py rename to pype/hosts/maya/plugins/create/create_render.py index 2b0b0e19f7..0763b19c17 100644 --- a/pype/plugins/maya/create/create_render.py +++ b/pype/hosts/maya/plugins/create/create_render.py @@ -8,7 +8,7 @@ import requests from maya import cmds import maya.app.renderSetup.model.renderSetup as renderSetup -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib from pype.api import get_system_settings import avalon.maya diff --git a/pype/plugins/maya/create/create_rendersetup.py b/pype/hosts/maya/plugins/create/create_rendersetup.py similarity index 97% rename from pype/plugins/maya/create/create_rendersetup.py rename to pype/hosts/maya/plugins/create/create_rendersetup.py index 40e3731bf0..bbf46e2169 100644 --- a/pype/plugins/maya/create/create_rendersetup.py +++ b/pype/hosts/maya/plugins/create/create_rendersetup.py @@ -1,5 +1,5 @@ import avalon.maya -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib from maya import cmds diff --git a/pype/plugins/maya/create/create_review.py b/pype/hosts/maya/plugins/create/create_review.py similarity index 95% rename from pype/plugins/maya/create/create_review.py rename to pype/hosts/maya/plugins/create/create_review.py index bfeab33f5b..8619f90964 100644 --- a/pype/plugins/maya/create/create_review.py +++ b/pype/hosts/maya/plugins/create/create_review.py @@ -1,6 +1,6 @@ from collections import OrderedDict import avalon.maya -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib class CreateReview(avalon.maya.Creator): diff --git a/pype/plugins/maya/create/create_rig.py b/pype/hosts/maya/plugins/create/create_rig.py similarity index 94% rename from pype/plugins/maya/create/create_rig.py rename to pype/hosts/maya/plugins/create/create_rig.py index ae1de4243e..4692997934 100644 --- a/pype/plugins/maya/create/create_rig.py +++ b/pype/hosts/maya/plugins/create/create_rig.py @@ -1,6 +1,6 @@ from maya import cmds -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib import avalon.maya diff --git a/pype/plugins/maya/create/create_setdress.py b/pype/hosts/maya/plugins/create/create_setdress.py similarity index 100% rename from pype/plugins/maya/create/create_setdress.py rename to pype/hosts/maya/plugins/create/create_setdress.py diff --git a/pype/plugins/maya/create/create_unreal_staticmesh.py b/pype/hosts/maya/plugins/create/create_unreal_staticmesh.py similarity index 100% rename from pype/plugins/maya/create/create_unreal_staticmesh.py rename to pype/hosts/maya/plugins/create/create_unreal_staticmesh.py diff --git a/pype/plugins/maya/create/create_vrayproxy.py b/pype/hosts/maya/plugins/create/create_vrayproxy.py similarity index 100% rename from pype/plugins/maya/create/create_vrayproxy.py rename to pype/hosts/maya/plugins/create/create_vrayproxy.py diff --git a/pype/plugins/maya/create/create_vrayscene.py b/pype/hosts/maya/plugins/create/create_vrayscene.py similarity index 100% rename from pype/plugins/maya/create/create_vrayscene.py rename to pype/hosts/maya/plugins/create/create_vrayscene.py diff --git a/pype/plugins/maya/create/create_yeti_cache.py b/pype/hosts/maya/plugins/create/create_yeti_cache.py similarity index 94% rename from pype/plugins/maya/create/create_yeti_cache.py rename to pype/hosts/maya/plugins/create/create_yeti_cache.py index a4b5cc537a..c9edb65d8b 100644 --- a/pype/plugins/maya/create/create_yeti_cache.py +++ b/pype/hosts/maya/plugins/create/create_yeti_cache.py @@ -1,7 +1,7 @@ from collections import OrderedDict import avalon.maya -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib class CreateYetiCache(avalon.maya.Creator): diff --git a/pype/plugins/maya/create/create_yeti_rig.py b/pype/hosts/maya/plugins/create/create_yeti_rig.py similarity index 93% rename from pype/plugins/maya/create/create_yeti_rig.py rename to pype/hosts/maya/plugins/create/create_yeti_rig.py index 0b954f500d..c385ca662d 100644 --- a/pype/plugins/maya/create/create_yeti_rig.py +++ b/pype/hosts/maya/plugins/create/create_yeti_rig.py @@ -1,6 +1,6 @@ from maya import cmds -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib import avalon.maya diff --git a/pype/plugins/maya/load/_load_animation.py b/pype/hosts/maya/plugins/load/_load_animation.py similarity index 93% rename from pype/plugins/maya/load/_load_animation.py rename to pype/hosts/maya/plugins/load/_load_animation.py index 597689ae21..bef97d79bb 100644 --- a/pype/plugins/maya/load/_load_animation.py +++ b/pype/hosts/maya/plugins/load/_load_animation.py @@ -1,7 +1,7 @@ -import pype.hosts.maya.plugin +import pype.hosts.maya.api.plugin -class AbcLoader(pype.hosts.maya.plugin.ReferenceLoader): +class AbcLoader(pype.hosts.maya.api.plugin.ReferenceLoader): """Specific loader of Alembic for the avalon.animation family""" families = ["animation", diff --git a/pype/plugins/maya/load/actions.py b/pype/hosts/maya/plugins/load/actions.py similarity index 100% rename from pype/plugins/maya/load/actions.py rename to pype/hosts/maya/plugins/load/actions.py diff --git a/pype/plugins/maya/load/load_ass.py b/pype/hosts/maya/plugins/load/load_ass.py similarity index 98% rename from pype/plugins/maya/load/load_ass.py rename to pype/hosts/maya/plugins/load/load_ass.py index 9b851a3757..8aaa99369c 100644 --- a/pype/plugins/maya/load/load_ass.py +++ b/pype/hosts/maya/plugins/load/load_ass.py @@ -1,11 +1,11 @@ from avalon import api -import pype.hosts.maya.plugin +import pype.hosts.maya.api.plugin import os from pype.api import get_project_settings import clique -class AssProxyLoader(pype.hosts.maya.plugin.ReferenceLoader): +class AssProxyLoader(pype.hosts.maya.api.plugin.ReferenceLoader): """Load the Proxy""" families = ["ass"] diff --git a/pype/plugins/maya/load/load_assembly.py b/pype/hosts/maya/plugins/load/load_assembly.py similarity index 87% rename from pype/plugins/maya/load/load_assembly.py rename to pype/hosts/maya/plugins/load/load_assembly.py index 4f72ff9e13..a5f2394444 100644 --- a/pype/plugins/maya/load/load_assembly.py +++ b/pype/hosts/maya/plugins/load/load_assembly.py @@ -23,9 +23,9 @@ class AssemblyLoader(api.Loader): suffix="_", ) - from pype import setdress_api + from pype.hosts.maya.api import setdress - containers = setdress_api.load_package(filepath=self.fname, + containers = setdress.load_package(filepath=self.fname, name=name, namespace=namespace) @@ -45,19 +45,19 @@ class AssemblyLoader(api.Loader): def update(self, container, representation): - from pype import setdress_api - return setdress_api.update_package(container, + from pype import setdress + return setdress.update_package(container, representation) def remove(self, container): """Remove all sub containers""" from avalon import api - from pype import setdress_api + from pype import setdress import maya.cmds as cmds # Remove all members - member_containers = setdress_api.get_contained_containers(container) + member_containers = setdress.get_contained_containers(container) for member_container in member_containers: self.log.info("Removing container %s", member_container['objectName']) diff --git a/pype/plugins/maya/load/load_audio.py b/pype/hosts/maya/plugins/load/load_audio.py similarity index 96% rename from pype/plugins/maya/load/load_audio.py rename to pype/hosts/maya/plugins/load/load_audio.py index 81bcca48e1..73a2a4f448 100644 --- a/pype/plugins/maya/load/load_audio.py +++ b/pype/hosts/maya/plugins/load/load_audio.py @@ -1,10 +1,7 @@ -from maya import cmds, mel -import pymel.core as pc - from avalon import api, io from avalon.maya.pipeline import containerise from avalon.maya import lib - +from maya import cmds, mel class AudioLoader(api.Loader): """Specific loader of audio.""" @@ -15,7 +12,9 @@ class AudioLoader(api.Loader): icon = "volume-up" color = "orange" + def load(self, context, name, namespace, data): + start_frame = cmds.playbackOptions(query=True, min=True) sound_node = cmds.sound( file=context["representation"]["data"]["path"], offset=start_frame @@ -43,8 +42,10 @@ class AudioLoader(api.Loader): ) def update(self, container, representation): + import pymel.core as pm + audio_node = None - for node in pc.PyNode(container["objectName"]).members(): + for node in pm.PyNode(container["objectName"]).members(): if node.nodeType() == "audio": audio_node = node diff --git a/pype/plugins/maya/load/load_gpucache.py b/pype/hosts/maya/plugins/load/load_gpucache.py similarity index 98% rename from pype/plugins/maya/load/load_gpucache.py rename to pype/hosts/maya/plugins/load/load_gpucache.py index 0b3daae710..e6fde1eaa8 100644 --- a/pype/plugins/maya/load/load_gpucache.py +++ b/pype/hosts/maya/plugins/load/load_gpucache.py @@ -1,9 +1,6 @@ -from avalon import api -import pype.hosts.maya.plugin import os +from avalon import api from pype.api import get_project_settings -reload(config) - class GpuCacheLoader(api.Loader): """Load model Alembic as gpuCache""" diff --git a/pype/plugins/maya/load/load_image_plane.py b/pype/hosts/maya/plugins/load/load_image_plane.py similarity index 91% rename from pype/plugins/maya/load/load_image_plane.py rename to pype/hosts/maya/plugins/load/load_image_plane.py index 1bb29e90c4..f2640dc2eb 100644 --- a/pype/plugins/maya/load/load_image_plane.py +++ b/pype/hosts/maya/plugins/load/load_image_plane.py @@ -1,11 +1,10 @@ -import pymel.core as pc -import maya.cmds as cmds - from avalon import api, io from avalon.maya.pipeline import containerise from avalon.maya import lib from Qt import QtWidgets, QtCore +from maya import cmds + class CameraWindow(QtWidgets.QDialog): @@ -73,6 +72,8 @@ class ImagePlaneLoader(api.Loader): color = "orange" def load(self, context, name, namespace, data): + import pymel.core as pm + new_nodes = [] image_plane_depth = 1000 asset = context['asset']['name'] @@ -88,7 +89,7 @@ class ImagePlaneLoader(api.Loader): "frontShape", "perspShape", "sideShape", "topShape" ] cameras = [ - x for x in pc.ls(type="camera") if x.name() not in default_cameras + x for x in pm.ls(type="camera") if x.name() not in default_cameras ] camera_names = {x.getParent().name(): x for x in cameras} camera_names["Create new camera."] = "create_camera" @@ -97,7 +98,7 @@ class ImagePlaneLoader(api.Loader): camera = camera_names[window.camera] if camera == "create_camera": - camera = pc.createNode("camera") + camera = pm.createNode("camera") if camera is None: return @@ -109,7 +110,7 @@ class ImagePlaneLoader(api.Loader): pass # Create image plane - image_plane_transform, image_plane_shape = pc.imagePlane( + image_plane_transform, image_plane_shape = pm.imagePlane( camera=camera, showInAllViews=False ) image_plane_shape.depth.set(image_plane_depth) @@ -118,8 +119,8 @@ class ImagePlaneLoader(api.Loader): context["representation"]["data"]["path"] ) - start_frame = pc.playbackOptions(q=True, min=True) - end_frame = pc.playbackOptions(q=True, max=True) + start_frame = pm.playbackOptions(q=True, min=True) + end_frame = pm.playbackOptions(q=True, max=True) image_plane_shape.frameOffset.set(1 - start_frame) image_plane_shape.frameIn.set(start_frame) @@ -130,12 +131,12 @@ class ImagePlaneLoader(api.Loader): movie_representations = ["mov", "preview"] if context["representation"]["name"] in movie_representations: # Need to get "type" by string, because its a method as well. - pc.Attribute(image_plane_shape + ".type").set(2) + pm.Attribute(image_plane_shape + ".type").set(2) # Ask user whether to use sequence or still image. if context["representation"]["name"] == "exr": # Ensure OpenEXRLoader plugin is loaded. - pc.loadPlugin("OpenEXRLoader.mll", quiet=True) + pm.loadPlugin("OpenEXRLoader.mll", quiet=True) message = ( "Hold image sequence on first frame?" @@ -151,7 +152,7 @@ class ImagePlaneLoader(api.Loader): QtWidgets.QMessageBox.Cancel ) if reply == QtWidgets.QMessageBox.Ok: - pc.delete( + pm.delete( image_plane_shape.listConnections(type="expression")[0] ) image_plane_shape.frameExtension.set(start_frame) @@ -164,7 +165,7 @@ class ImagePlaneLoader(api.Loader): ) for node in new_nodes: - pc.rename(node, "{}:{}".format(namespace, node)) + pm.rename(node, "{}:{}".format(namespace, node)) return containerise( name=name, @@ -175,8 +176,9 @@ class ImagePlaneLoader(api.Loader): ) def update(self, container, representation): + import pymel.core as pm image_plane_shape = None - for node in pc.PyNode(container["objectName"]).members(): + for node in pm.PyNode(container["objectName"]).members(): if node.nodeType() == "imagePlane": image_plane_shape = node diff --git a/pype/plugins/maya/load/load_look.py b/pype/hosts/maya/plugins/load/load_look.py similarity index 95% rename from pype/plugins/maya/load/load_look.py rename to pype/hosts/maya/plugins/load/load_look.py index c5b58c9bd5..ab8f971d62 100644 --- a/pype/plugins/maya/load/load_look.py +++ b/pype/hosts/maya/plugins/load/load_look.py @@ -1,13 +1,13 @@ -import pype.hosts.maya.plugin +import pype.hosts.maya.api.plugin from avalon import api, io import json -import pype.hosts.maya.lib +import pype.hosts.maya.api.lib from collections import defaultdict from pype.widgets.message_window import ScrollMessageBox from Qt import QtWidgets -class LookLoader(pype.hosts.maya.plugin.ReferenceLoader): +class LookLoader(pype.hosts.maya.api.plugin.ReferenceLoader): """Specific loader for lookdev""" families = ["look"] @@ -120,7 +120,7 @@ class LookLoader(pype.hosts.maya.plugin.ReferenceLoader): cmds.file(cr=reference_node) # cleanReference # reapply shading groups from json representation on orig nodes - pype.hosts.maya.lib.apply_shaders(relationships, + pype.hosts.maya.api.lib.apply_shaders(relationships, shader_nodes, orig_nodes) @@ -138,8 +138,8 @@ class LookLoader(pype.hosts.maya.plugin.ReferenceLoader): # region compute lookup nodes_by_id = defaultdict(list) for n in nodes: - nodes_by_id[pype.hosts.maya.lib.get_id(n)].append(n) - pype.hosts.maya.lib.apply_attributes(attributes, nodes_by_id) + nodes_by_id[pype.hosts.maya.api.lib.get_id(n)].append(n) + pype.hosts.maya.api.lib.apply_attributes(attributes, nodes_by_id) # Update metadata cmds.setAttr("{}.representation".format(node), diff --git a/pype/plugins/maya/load/load_matchmove.py b/pype/hosts/maya/plugins/load/load_matchmove.py similarity index 100% rename from pype/plugins/maya/load/load_matchmove.py rename to pype/hosts/maya/plugins/load/load_matchmove.py diff --git a/pype/plugins/maya/load/load_reference.py b/pype/hosts/maya/plugins/load/load_reference.py similarity index 98% rename from pype/plugins/maya/load/load_reference.py rename to pype/hosts/maya/plugins/load/load_reference.py index 23b3cedb55..d37579423c 100644 --- a/pype/plugins/maya/load/load_reference.py +++ b/pype/hosts/maya/plugins/load/load_reference.py @@ -1,11 +1,11 @@ -import pype.hosts.maya.plugin +import pype.hosts.maya.api.plugin from avalon import api, maya from maya import cmds import os from pype.api import get_project_settings -class ReferenceLoader(pype.hosts.maya.plugin.ReferenceLoader): +class ReferenceLoader(pype.hosts.maya.api.plugin.ReferenceLoader): """Load the model""" families = ["model", diff --git a/pype/plugins/maya/load/load_rendersetup.py b/pype/hosts/maya/plugins/load/load_rendersetup.py similarity index 96% rename from pype/plugins/maya/load/load_rendersetup.py rename to pype/hosts/maya/plugins/load/load_rendersetup.py index 45a314a9d1..c540c3880e 100644 --- a/pype/plugins/maya/load/load_rendersetup.py +++ b/pype/hosts/maya/plugins/load/load_rendersetup.py @@ -12,7 +12,7 @@ import sys from avalon import api from avalon.maya import lib -from pype.hosts.maya import lib as pypelib +from pype.hosts.maya.api import lib as pypelib from maya import cmds import maya.app.renderSetup.model.renderSetup as renderSetup @@ -32,7 +32,7 @@ class RenderSetupLoader(api.Loader): def load(self, context, name, namespace, data): """Load RenderSetup settings.""" from avalon.maya.pipeline import containerise - # from pype.hosts.maya.lib import namespaced + # from pype.hosts.maya.api.lib import namespaced asset = context['asset']['name'] namespace = namespace or lib.unique_namespace( diff --git a/pype/plugins/maya/load/load_vdb_to_redshift.py b/pype/hosts/maya/plugins/load/load_vdb_to_redshift.py similarity index 100% rename from pype/plugins/maya/load/load_vdb_to_redshift.py rename to pype/hosts/maya/plugins/load/load_vdb_to_redshift.py diff --git a/pype/plugins/maya/load/load_vdb_to_vray.py b/pype/hosts/maya/plugins/load/load_vdb_to_vray.py similarity index 100% rename from pype/plugins/maya/load/load_vdb_to_vray.py rename to pype/hosts/maya/plugins/load/load_vdb_to_vray.py diff --git a/pype/plugins/maya/load/load_vrayproxy.py b/pype/hosts/maya/plugins/load/load_vrayproxy.py similarity index 99% rename from pype/plugins/maya/load/load_vrayproxy.py rename to pype/hosts/maya/plugins/load/load_vrayproxy.py index 73f02b81e4..270d0f9baa 100644 --- a/pype/plugins/maya/load/load_vrayproxy.py +++ b/pype/hosts/maya/plugins/load/load_vrayproxy.py @@ -19,7 +19,7 @@ class VRayProxyLoader(api.Loader): def load(self, context, name, namespace, data): from avalon.maya.pipeline import containerise - from pype.hosts.maya.lib import namespaced + from pype.hosts.maya.api.lib import namespaced try: family = context["representation"]["context"]["family"] diff --git a/pype/plugins/maya/load/load_yeti_cache.py b/pype/hosts/maya/plugins/load/load_yeti_cache.py similarity index 99% rename from pype/plugins/maya/load/load_yeti_cache.py rename to pype/hosts/maya/plugins/load/load_yeti_cache.py index 19cf3920fe..16d51ad56d 100644 --- a/pype/plugins/maya/load/load_yeti_cache.py +++ b/pype/hosts/maya/plugins/load/load_yeti_cache.py @@ -8,7 +8,7 @@ from maya import cmds from avalon import api, io from avalon.maya import lib as avalon_lib, pipeline -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib from pype.api import get_project_settings from pprint import pprint diff --git a/pype/plugins/maya/load/load_yeti_rig.py b/pype/hosts/maya/plugins/load/load_yeti_rig.py similarity index 95% rename from pype/plugins/maya/load/load_yeti_rig.py rename to pype/hosts/maya/plugins/load/load_yeti_rig.py index 3a9339c707..d025ed13cc 100644 --- a/pype/plugins/maya/load/load_yeti_rig.py +++ b/pype/hosts/maya/plugins/load/load_yeti_rig.py @@ -2,11 +2,11 @@ import os from collections import defaultdict from pype.api import get_project_settings -import pype.hosts.maya.plugin -from pype.hosts.maya import lib +import pype.hosts.maya.api.plugin +from pype.hosts.maya.api import lib -class YetiRigLoader(pype.hosts.maya.plugin.ReferenceLoader): +class YetiRigLoader(pype.hosts.maya.api.plugin.ReferenceLoader): """ This loader will load Yeti rig. You can select something in scene and if it has same ID as mesh published with rig, their shapes will be linked diff --git a/pype/hosts/maya/plugins/publish/__init__.py b/pype/hosts/maya/plugins/publish/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/pype/plugins/maya/publish/collect_animation.py b/pype/hosts/maya/plugins/publish/collect_animation.py similarity index 100% rename from pype/plugins/maya/publish/collect_animation.py rename to pype/hosts/maya/plugins/publish/collect_animation.py diff --git a/pype/plugins/maya/publish/collect_ass.py b/pype/hosts/maya/plugins/publish/collect_ass.py similarity index 100% rename from pype/plugins/maya/publish/collect_ass.py rename to pype/hosts/maya/plugins/publish/collect_ass.py diff --git a/pype/plugins/maya/publish/collect_assembly.py b/pype/hosts/maya/plugins/publish/collect_assembly.py similarity index 98% rename from pype/plugins/maya/publish/collect_assembly.py rename to pype/hosts/maya/plugins/publish/collect_assembly.py index f9a933d8e8..be3408a0bd 100644 --- a/pype/plugins/maya/publish/collect_assembly.py +++ b/pype/hosts/maya/plugins/publish/collect_assembly.py @@ -3,7 +3,7 @@ import pyblish.api from maya import cmds, mel from avalon import maya as avalon -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib # TODO : Publish of assembly: -unique namespace for all assets, VALIDATOR! diff --git a/pype/plugins/maya/publish/collect_file_dependencies.py b/pype/hosts/maya/plugins/publish/collect_file_dependencies.py similarity index 100% rename from pype/plugins/maya/publish/collect_file_dependencies.py rename to pype/hosts/maya/plugins/publish/collect_file_dependencies.py diff --git a/pype/plugins/maya/publish/collect_ftrack_family.py b/pype/hosts/maya/plugins/publish/collect_ftrack_family.py similarity index 100% rename from pype/plugins/maya/publish/collect_ftrack_family.py rename to pype/hosts/maya/plugins/publish/collect_ftrack_family.py diff --git a/pype/plugins/maya/publish/collect_history.py b/pype/hosts/maya/plugins/publish/collect_history.py similarity index 100% rename from pype/plugins/maya/publish/collect_history.py rename to pype/hosts/maya/plugins/publish/collect_history.py diff --git a/pype/plugins/maya/publish/collect_instances.py b/pype/hosts/maya/plugins/publish/collect_instances.py similarity index 100% rename from pype/plugins/maya/publish/collect_instances.py rename to pype/hosts/maya/plugins/publish/collect_instances.py diff --git a/pype/plugins/maya/publish/collect_look.py b/pype/hosts/maya/plugins/publish/collect_look.py similarity index 99% rename from pype/plugins/maya/publish/collect_look.py rename to pype/hosts/maya/plugins/publish/collect_look.py index 7df85e4ba7..35abc5a991 100644 --- a/pype/plugins/maya/publish/collect_look.py +++ b/pype/hosts/maya/plugins/publish/collect_look.py @@ -4,7 +4,7 @@ import glob from maya import cmds import pyblish.api -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib SHAPE_ATTRS = ["castsShadows", "receiveShadows", diff --git a/pype/plugins/maya/publish/collect_maya_units.py b/pype/hosts/maya/plugins/publish/collect_maya_units.py similarity index 100% rename from pype/plugins/maya/publish/collect_maya_units.py rename to pype/hosts/maya/plugins/publish/collect_maya_units.py diff --git a/pype/plugins/maya/publish/collect_maya_workspace.py b/pype/hosts/maya/plugins/publish/collect_maya_workspace.py similarity index 100% rename from pype/plugins/maya/publish/collect_maya_workspace.py rename to pype/hosts/maya/plugins/publish/collect_maya_workspace.py diff --git a/pype/plugins/maya/publish/collect_mayaascii.py b/pype/hosts/maya/plugins/publish/collect_mayaascii.py similarity index 100% rename from pype/plugins/maya/publish/collect_mayaascii.py rename to pype/hosts/maya/plugins/publish/collect_mayaascii.py diff --git a/pype/plugins/maya/publish/collect_model.py b/pype/hosts/maya/plugins/publish/collect_model.py similarity index 100% rename from pype/plugins/maya/publish/collect_model.py rename to pype/hosts/maya/plugins/publish/collect_model.py diff --git a/pype/plugins/maya/publish/collect_remove_marked.py b/pype/hosts/maya/plugins/publish/collect_remove_marked.py similarity index 100% rename from pype/plugins/maya/publish/collect_remove_marked.py rename to pype/hosts/maya/plugins/publish/collect_remove_marked.py diff --git a/pype/plugins/maya/publish/collect_render.py b/pype/hosts/maya/plugins/publish/collect_render.py similarity index 99% rename from pype/plugins/maya/publish/collect_render.py rename to pype/hosts/maya/plugins/publish/collect_render.py index 0853473120..208937320d 100644 --- a/pype/plugins/maya/publish/collect_render.py +++ b/pype/hosts/maya/plugins/publish/collect_render.py @@ -49,8 +49,8 @@ import maya.app.renderSetup.model.renderSetup as renderSetup import pyblish.api from avalon import maya, api -from pype.hosts.maya.expected_files import ExpectedFiles -from pype.hosts.maya import lib +from pype.hosts.maya.api.expected_files import ExpectedFiles +from pype.hosts.maya.api import lib class CollectMayaRender(pyblish.api.ContextPlugin): diff --git a/pype/plugins/maya/publish/collect_render_layer_aovs.py b/pype/hosts/maya/plugins/publish/collect_render_layer_aovs.py similarity index 98% rename from pype/plugins/maya/publish/collect_render_layer_aovs.py rename to pype/hosts/maya/plugins/publish/collect_render_layer_aovs.py index ff44497d6d..d776b43907 100644 --- a/pype/plugins/maya/publish/collect_render_layer_aovs.py +++ b/pype/hosts/maya/plugins/publish/collect_render_layer_aovs.py @@ -2,7 +2,7 @@ from maya import cmds import pyblish.api -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib class CollectRenderLayerAOVS(pyblish.api.InstancePlugin): diff --git a/pype/plugins/maya/publish/collect_renderable_camera.py b/pype/hosts/maya/plugins/publish/collect_renderable_camera.py similarity index 95% rename from pype/plugins/maya/publish/collect_renderable_camera.py rename to pype/hosts/maya/plugins/publish/collect_renderable_camera.py index a7d613517b..893a2cab61 100644 --- a/pype/plugins/maya/publish/collect_renderable_camera.py +++ b/pype/hosts/maya/plugins/publish/collect_renderable_camera.py @@ -2,7 +2,7 @@ import pyblish.api from maya import cmds -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib class CollectRenderableCamera(pyblish.api.InstancePlugin): diff --git a/pype/plugins/maya/publish/collect_review.py b/pype/hosts/maya/plugins/publish/collect_review.py similarity index 100% rename from pype/plugins/maya/publish/collect_review.py rename to pype/hosts/maya/plugins/publish/collect_review.py diff --git a/pype/plugins/maya/publish/collect_rig.py b/pype/hosts/maya/plugins/publish/collect_rig.py similarity index 100% rename from pype/plugins/maya/publish/collect_rig.py rename to pype/hosts/maya/plugins/publish/collect_rig.py diff --git a/pype/plugins/maya/publish/collect_scene.py b/pype/hosts/maya/plugins/publish/collect_scene.py similarity index 100% rename from pype/plugins/maya/publish/collect_scene.py rename to pype/hosts/maya/plugins/publish/collect_scene.py diff --git a/pype/plugins/maya/publish/collect_unreal_staticmesh.py b/pype/hosts/maya/plugins/publish/collect_unreal_staticmesh.py similarity index 100% rename from pype/plugins/maya/publish/collect_unreal_staticmesh.py rename to pype/hosts/maya/plugins/publish/collect_unreal_staticmesh.py diff --git a/pype/plugins/maya/publish/collect_workscene_fps.py b/pype/hosts/maya/plugins/publish/collect_workscene_fps.py similarity index 100% rename from pype/plugins/maya/publish/collect_workscene_fps.py rename to pype/hosts/maya/plugins/publish/collect_workscene_fps.py diff --git a/pype/plugins/maya/publish/collect_yeti_cache.py b/pype/hosts/maya/plugins/publish/collect_yeti_cache.py similarity index 98% rename from pype/plugins/maya/publish/collect_yeti_cache.py rename to pype/hosts/maya/plugins/publish/collect_yeti_cache.py index 26c3f601f6..2cfc56e486 100644 --- a/pype/plugins/maya/publish/collect_yeti_cache.py +++ b/pype/hosts/maya/plugins/publish/collect_yeti_cache.py @@ -2,7 +2,7 @@ from maya import cmds import pyblish.api -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib SETTINGS = {"renderDensity", "renderWidth", diff --git a/pype/plugins/maya/publish/collect_yeti_rig.py b/pype/hosts/maya/plugins/publish/collect_yeti_rig.py similarity index 99% rename from pype/plugins/maya/publish/collect_yeti_rig.py rename to pype/hosts/maya/plugins/publish/collect_yeti_rig.py index 73a84b0073..15bcdc51dd 100644 --- a/pype/plugins/maya/publish/collect_yeti_rig.py +++ b/pype/hosts/maya/plugins/publish/collect_yeti_rig.py @@ -5,7 +5,7 @@ from maya import cmds import pyblish.api -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib SETTINGS = {"renderDensity", diff --git a/pype/plugins/maya/publish/determine_future_version.py b/pype/hosts/maya/plugins/publish/determine_future_version.py similarity index 100% rename from pype/plugins/maya/publish/determine_future_version.py rename to pype/hosts/maya/plugins/publish/determine_future_version.py diff --git a/pype/plugins/maya/publish/extract_animation.py b/pype/hosts/maya/plugins/publish/extract_animation.py similarity index 98% rename from pype/plugins/maya/publish/extract_animation.py rename to pype/hosts/maya/plugins/publish/extract_animation.py index f7058b34f1..f56ba2f400 100644 --- a/pype/plugins/maya/publish/extract_animation.py +++ b/pype/hosts/maya/plugins/publish/extract_animation.py @@ -4,7 +4,7 @@ from maya import cmds import avalon.maya import pype.api -from pype.hosts.maya.lib import extract_alembic +from pype.hosts.maya.api.lib import extract_alembic class ExtractAnimation(pype.api.Extractor): diff --git a/pype/plugins/maya/publish/extract_ass.py b/pype/hosts/maya/plugins/publish/extract_ass.py similarity index 100% rename from pype/plugins/maya/publish/extract_ass.py rename to pype/hosts/maya/plugins/publish/extract_ass.py diff --git a/pype/plugins/maya/publish/extract_assembly.py b/pype/hosts/maya/plugins/publish/extract_assembly.py similarity index 97% rename from pype/plugins/maya/publish/extract_assembly.py rename to pype/hosts/maya/plugins/publish/extract_assembly.py index 8c5264713d..c72f1f1835 100644 --- a/pype/plugins/maya/publish/extract_assembly.py +++ b/pype/hosts/maya/plugins/publish/extract_assembly.py @@ -3,7 +3,7 @@ import json import os import pype.api -from pype.hosts.maya.lib import extract_alembic +from pype.hosts.maya.api.lib import extract_alembic from maya import cmds diff --git a/pype/plugins/maya/publish/extract_assproxy.py b/pype/hosts/maya/plugins/publish/extract_assproxy.py similarity index 98% rename from pype/plugins/maya/publish/extract_assproxy.py rename to pype/hosts/maya/plugins/publish/extract_assproxy.py index 0f97d047c1..3579d26534 100644 --- a/pype/plugins/maya/publish/extract_assproxy.py +++ b/pype/hosts/maya/plugins/publish/extract_assproxy.py @@ -5,7 +5,6 @@ import contextlib import avalon.maya import pype.api -from pype.hosts.maya import lib class ExtractAssProxy(pype.api.Extractor): diff --git a/pype/plugins/maya/publish/extract_camera_alembic.py b/pype/hosts/maya/plugins/publish/extract_camera_alembic.py similarity index 99% rename from pype/plugins/maya/publish/extract_camera_alembic.py rename to pype/hosts/maya/plugins/publish/extract_camera_alembic.py index c0538338dc..c37f2ecb76 100644 --- a/pype/plugins/maya/publish/extract_camera_alembic.py +++ b/pype/hosts/maya/plugins/publish/extract_camera_alembic.py @@ -5,7 +5,7 @@ from maya import cmds import avalon.maya import pype.api -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib class ExtractCameraAlembic(pype.api.Extractor): diff --git a/pype/plugins/maya/publish/extract_camera_mayaScene.py b/pype/hosts/maya/plugins/publish/extract_camera_mayaScene.py similarity index 99% rename from pype/plugins/maya/publish/extract_camera_mayaScene.py rename to pype/hosts/maya/plugins/publish/extract_camera_mayaScene.py index a1854b1db0..16ebc39419 100644 --- a/pype/plugins/maya/publish/extract_camera_mayaScene.py +++ b/pype/hosts/maya/plugins/publish/extract_camera_mayaScene.py @@ -7,7 +7,7 @@ from maya import cmds import avalon.maya import pype.api -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib def massage_ma_file(path): diff --git a/pype/plugins/maya/publish/extract_fbx.py b/pype/hosts/maya/plugins/publish/extract_fbx.py similarity index 100% rename from pype/plugins/maya/publish/extract_fbx.py rename to pype/hosts/maya/plugins/publish/extract_fbx.py diff --git a/pype/plugins/maya/publish/extract_look.py b/pype/hosts/maya/plugins/publish/extract_look.py similarity index 99% rename from pype/plugins/maya/publish/extract_look.py rename to pype/hosts/maya/plugins/publish/extract_look.py index 0a7e4fb2ee..2c4837b7a7 100644 --- a/pype/plugins/maya/publish/extract_look.py +++ b/pype/hosts/maya/plugins/publish/extract_look.py @@ -14,7 +14,7 @@ import avalon.maya from avalon import io, api import pype.api -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib # Modes for transfer COPY = 1 diff --git a/pype/plugins/maya/publish/extract_maya_scene_raw.py b/pype/hosts/maya/plugins/publish/extract_maya_scene_raw.py similarity index 100% rename from pype/plugins/maya/publish/extract_maya_scene_raw.py rename to pype/hosts/maya/plugins/publish/extract_maya_scene_raw.py diff --git a/pype/plugins/maya/publish/extract_model.py b/pype/hosts/maya/plugins/publish/extract_model.py similarity index 99% rename from pype/plugins/maya/publish/extract_model.py rename to pype/hosts/maya/plugins/publish/extract_model.py index 8276d1a006..1c268a9e0e 100644 --- a/pype/plugins/maya/publish/extract_model.py +++ b/pype/hosts/maya/plugins/publish/extract_model.py @@ -6,7 +6,7 @@ from maya import cmds import avalon.maya import pype.api -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib class ExtractModel(pype.api.Extractor): diff --git a/pype/plugins/maya/publish/extract_playblast.py b/pype/hosts/maya/plugins/publish/extract_playblast.py similarity index 99% rename from pype/plugins/maya/publish/extract_playblast.py rename to pype/hosts/maya/plugins/publish/extract_playblast.py index 39b02a5a83..770b077e41 100644 --- a/pype/plugins/maya/publish/extract_playblast.py +++ b/pype/hosts/maya/plugins/publish/extract_playblast.py @@ -4,7 +4,7 @@ import contextlib import clique import capture -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib import pype.api from maya import cmds diff --git a/pype/plugins/maya/publish/extract_pointcache.py b/pype/hosts/maya/plugins/publish/extract_pointcache.py similarity index 98% rename from pype/plugins/maya/publish/extract_pointcache.py rename to pype/hosts/maya/plugins/publish/extract_pointcache.py index e43685cac8..58742c8567 100644 --- a/pype/plugins/maya/publish/extract_pointcache.py +++ b/pype/hosts/maya/plugins/publish/extract_pointcache.py @@ -4,7 +4,7 @@ from maya import cmds import avalon.maya import pype.api -from pype.hosts.maya.lib import extract_alembic +from pype.hosts.maya.api.lib import extract_alembic class ExtractAlembic(pype.api.Extractor): diff --git a/pype/plugins/maya/publish/extract_rendersetup.py b/pype/hosts/maya/plugins/publish/extract_rendersetup.py similarity index 100% rename from pype/plugins/maya/publish/extract_rendersetup.py rename to pype/hosts/maya/plugins/publish/extract_rendersetup.py diff --git a/pype/plugins/maya/publish/extract_rig.py b/pype/hosts/maya/plugins/publish/extract_rig.py similarity index 100% rename from pype/plugins/maya/publish/extract_rig.py rename to pype/hosts/maya/plugins/publish/extract_rig.py diff --git a/pype/plugins/maya/publish/extract_thumbnail.py b/pype/hosts/maya/plugins/publish/extract_thumbnail.py similarity index 99% rename from pype/plugins/maya/publish/extract_thumbnail.py rename to pype/hosts/maya/plugins/publish/extract_thumbnail.py index 6956341ffd..49511f6af6 100644 --- a/pype/plugins/maya/publish/extract_thumbnail.py +++ b/pype/hosts/maya/plugins/publish/extract_thumbnail.py @@ -4,7 +4,7 @@ import glob import capture -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib import pype.api from maya import cmds diff --git a/pype/plugins/maya/publish/extract_vrayproxy.py b/pype/hosts/maya/plugins/publish/extract_vrayproxy.py similarity index 100% rename from pype/plugins/maya/publish/extract_vrayproxy.py rename to pype/hosts/maya/plugins/publish/extract_vrayproxy.py diff --git a/pype/plugins/maya/publish/extract_yeti_cache.py b/pype/hosts/maya/plugins/publish/extract_yeti_cache.py similarity index 100% rename from pype/plugins/maya/publish/extract_yeti_cache.py rename to pype/hosts/maya/plugins/publish/extract_yeti_cache.py diff --git a/pype/plugins/maya/publish/extract_yeti_rig.py b/pype/hosts/maya/plugins/publish/extract_yeti_rig.py similarity index 99% rename from pype/plugins/maya/publish/extract_yeti_rig.py rename to pype/hosts/maya/plugins/publish/extract_yeti_rig.py index 71d4cf6198..43908d8742 100644 --- a/pype/plugins/maya/publish/extract_yeti_rig.py +++ b/pype/hosts/maya/plugins/publish/extract_yeti_rig.py @@ -9,7 +9,7 @@ from maya import cmds import avalon.maya.lib as lib import pype.api -import pype.hosts.maya.lib as maya +import pype.hosts.maya.api.lib as maya @contextlib.contextmanager diff --git a/pype/plugins/maya/publish/increment_current_file_deadline.py b/pype/hosts/maya/plugins/publish/increment_current_file_deadline.py similarity index 100% rename from pype/plugins/maya/publish/increment_current_file_deadline.py rename to pype/hosts/maya/plugins/publish/increment_current_file_deadline.py diff --git a/pype/plugins/maya/publish/save_scene.py b/pype/hosts/maya/plugins/publish/save_scene.py similarity index 100% rename from pype/plugins/maya/publish/save_scene.py rename to pype/hosts/maya/plugins/publish/save_scene.py diff --git a/pype/plugins/maya/publish/submit_maya_muster.py b/pype/hosts/maya/plugins/publish/submit_maya_muster.py similarity index 99% rename from pype/plugins/maya/publish/submit_maya_muster.py rename to pype/hosts/maya/plugins/publish/submit_maya_muster.py index b10c4ecbbb..e31f989224 100644 --- a/pype/plugins/maya/publish/submit_maya_muster.py +++ b/pype/hosts/maya/plugins/publish/submit_maya_muster.py @@ -10,7 +10,7 @@ from avalon import api from avalon.vendor import requests import pyblish.api -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib from pype.api import get_system_settings diff --git a/pype/plugins/maya/publish/validate_animation_content.py b/pype/hosts/maya/plugins/publish/validate_animation_content.py similarity index 93% rename from pype/plugins/maya/publish/validate_animation_content.py rename to pype/hosts/maya/plugins/publish/validate_animation_content.py index 63f1135fdc..ec6f33c969 100644 --- a/pype/plugins/maya/publish/validate_animation_content.py +++ b/pype/hosts/maya/plugins/publish/validate_animation_content.py @@ -1,6 +1,6 @@ import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateAnimationContent(pyblish.api.InstancePlugin): @@ -15,7 +15,7 @@ class ValidateAnimationContent(pyblish.api.InstancePlugin): hosts = ["maya"] families = ["animation"] label = "Animation Content" - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] @classmethod def get_invalid(cls, instance): diff --git a/pype/plugins/maya/publish/validate_animation_out_set_related_node_ids.py b/pype/hosts/maya/plugins/publish/validate_animation_out_set_related_node_ids.py similarity index 93% rename from pype/plugins/maya/publish/validate_animation_out_set_related_node_ids.py rename to pype/hosts/maya/plugins/publish/validate_animation_out_set_related_node_ids.py index 4fe676404c..6bea9bf856 100644 --- a/pype/plugins/maya/publish/validate_animation_out_set_related_node_ids.py +++ b/pype/hosts/maya/plugins/publish/validate_animation_out_set_related_node_ids.py @@ -2,8 +2,8 @@ import maya.cmds as cmds import pyblish.api import pype.api -import pype.hosts.maya.action -from pype.hosts.maya import lib +import pype.hosts.maya.api.action +from pype.hosts.maya.api import lib class ValidateOutRelatedNodeIds(pyblish.api.InstancePlugin): @@ -20,7 +20,10 @@ class ValidateOutRelatedNodeIds(pyblish.api.InstancePlugin): families = ['animation', "pointcache"] hosts = ['maya'] label = 'Animation Out Set Related Node Ids' - actions = [pype.hosts.maya.action.SelectInvalidAction, pype.api.RepairAction] + actions = [ + pype.hosts.maya.api.action.SelectInvalidAction, + pype.api.RepairAction + ] def process(self, instance): """Process all meshes""" diff --git a/pype/plugins/maya/publish/validate_ass_relative_paths.py b/pype/hosts/maya/plugins/publish/validate_ass_relative_paths.py similarity index 99% rename from pype/plugins/maya/publish/validate_ass_relative_paths.py rename to pype/hosts/maya/plugins/publish/validate_ass_relative_paths.py index 22ebf52d49..b77a0c1923 100644 --- a/pype/plugins/maya/publish/validate_ass_relative_paths.py +++ b/pype/hosts/maya/plugins/publish/validate_ass_relative_paths.py @@ -5,7 +5,7 @@ import maya.cmds as cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateAssRelativePaths(pyblish.api.InstancePlugin): diff --git a/pype/plugins/maya/publish/validate_assembly_name.py b/pype/hosts/maya/plugins/publish/validate_assembly_name.py similarity index 94% rename from pype/plugins/maya/publish/validate_assembly_name.py rename to pype/hosts/maya/plugins/publish/validate_assembly_name.py index 934275ca47..54479035c5 100644 --- a/pype/plugins/maya/publish/validate_assembly_name.py +++ b/pype/hosts/maya/plugins/publish/validate_assembly_name.py @@ -1,6 +1,6 @@ import pyblish.api import maya.cmds as cmds -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateAssemblyName(pyblish.api.InstancePlugin): @@ -12,7 +12,7 @@ class ValidateAssemblyName(pyblish.api.InstancePlugin): label = "Validate Assembly Name" order = pyblish.api.ValidatorOrder families = ["assembly"] - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] active = False @classmethod diff --git a/pype/plugins/maya/publish/validate_assembly_namespaces.py b/pype/hosts/maya/plugins/publish/validate_assembly_namespaces.py similarity index 91% rename from pype/plugins/maya/publish/validate_assembly_namespaces.py rename to pype/hosts/maya/plugins/publish/validate_assembly_namespaces.py index 50fda1a758..32f4b8db52 100644 --- a/pype/plugins/maya/publish/validate_assembly_namespaces.py +++ b/pype/hosts/maya/plugins/publish/validate_assembly_namespaces.py @@ -1,6 +1,6 @@ import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateAssemblyNamespaces(pyblish.api.InstancePlugin): @@ -18,7 +18,7 @@ class ValidateAssemblyNamespaces(pyblish.api.InstancePlugin): label = "Validate Assembly Namespaces" order = pyblish.api.ValidatorOrder families = ["assembly"] - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] def process(self, instance): diff --git a/pype/plugins/maya/publish/validate_assembly_transforms.py b/pype/hosts/maya/plugins/publish/validate_assembly_transforms.py similarity index 95% rename from pype/plugins/maya/publish/validate_assembly_transforms.py rename to pype/hosts/maya/plugins/publish/validate_assembly_transforms.py index c033f5374a..146736ba8d 100644 --- a/pype/plugins/maya/publish/validate_assembly_transforms.py +++ b/pype/hosts/maya/plugins/publish/validate_assembly_transforms.py @@ -3,7 +3,7 @@ import pype.api from maya import cmds -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateAssemblyModelTransforms(pyblish.api.InstancePlugin): @@ -28,7 +28,7 @@ class ValidateAssemblyModelTransforms(pyblish.api.InstancePlugin): order = pyblish.api.ValidatorOrder + 0.49 label = "Assembly Model Transforms" families = ["assembly"] - actions = [pype.hosts.maya.action.SelectInvalidAction, + actions = [pype.hosts.maya.api.action.SelectInvalidAction, pype.api.RepairAction] prompt_message = ("You are about to reset the matrix to the default values." @@ -44,7 +44,7 @@ class ValidateAssemblyModelTransforms(pyblish.api.InstancePlugin): @classmethod def get_invalid(cls, instance): - from pype.hosts.maya import lib + from pype.hosts.maya.api import lib # Get all transforms in the loaded containers container_roots = cmds.listRelatives(instance.data["hierarchy"], @@ -89,7 +89,7 @@ class ValidateAssemblyModelTransforms(pyblish.api.InstancePlugin): """ - from pype.hosts.maya import lib + from pype.hosts.maya.api import lib from avalon.vendor.Qt import QtWidgets # Store namespace in variable, cosmetics thingy diff --git a/pype/plugins/maya/publish/validate_attributes.py b/pype/hosts/maya/plugins/publish/validate_attributes.py similarity index 100% rename from pype/plugins/maya/publish/validate_attributes.py rename to pype/hosts/maya/plugins/publish/validate_attributes.py diff --git a/pype/plugins/maya/publish/validate_camera_attributes.py b/pype/hosts/maya/plugins/publish/validate_camera_attributes.py similarity index 95% rename from pype/plugins/maya/publish/validate_camera_attributes.py rename to pype/hosts/maya/plugins/publish/validate_camera_attributes.py index 1a1005d0f7..797244ba84 100644 --- a/pype/plugins/maya/publish/validate_camera_attributes.py +++ b/pype/hosts/maya/plugins/publish/validate_camera_attributes.py @@ -2,7 +2,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateCameraAttributes(pyblish.api.InstancePlugin): @@ -18,7 +18,7 @@ class ValidateCameraAttributes(pyblish.api.InstancePlugin): families = ['camera'] hosts = ['maya'] label = 'Camera Attributes' - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] DEFAULTS = [ ("filmFitOffset", 0.0), diff --git a/pype/plugins/maya/publish/validate_camera_contents.py b/pype/hosts/maya/plugins/publish/validate_camera_contents.py similarity index 95% rename from pype/plugins/maya/publish/validate_camera_contents.py rename to pype/hosts/maya/plugins/publish/validate_camera_contents.py index 27e2031e87..644cfd16bf 100644 --- a/pype/plugins/maya/publish/validate_camera_contents.py +++ b/pype/hosts/maya/plugins/publish/validate_camera_contents.py @@ -2,7 +2,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateCameraContents(pyblish.api.InstancePlugin): @@ -19,7 +19,7 @@ class ValidateCameraContents(pyblish.api.InstancePlugin): families = ['camera'] hosts = ['maya'] label = 'Camera Contents' - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] @classmethod def get_invalid(cls, instance): diff --git a/pype/plugins/maya/publish/validate_color_sets.py b/pype/hosts/maya/plugins/publish/validate_color_sets.py similarity index 94% rename from pype/plugins/maya/publish/validate_color_sets.py rename to pype/hosts/maya/plugins/publish/validate_color_sets.py index b1d8847f77..aa5901ee0a 100644 --- a/pype/plugins/maya/publish/validate_color_sets.py +++ b/pype/hosts/maya/plugins/publish/validate_color_sets.py @@ -2,7 +2,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateColorSets(pyblish.api.Validator): @@ -18,7 +18,7 @@ class ValidateColorSets(pyblish.api.Validator): families = ['model'] category = 'geometry' label = 'Mesh ColorSets' - actions = [pype.hosts.maya.action.SelectInvalidAction, + actions = [pype.hosts.maya.api.action.SelectInvalidAction, pype.api.RepairAction] optional = True diff --git a/pype/plugins/maya/publish/validate_current_renderlayer_renderable.py b/pype/hosts/maya/plugins/publish/validate_current_renderlayer_renderable.py similarity index 100% rename from pype/plugins/maya/publish/validate_current_renderlayer_renderable.py rename to pype/hosts/maya/plugins/publish/validate_current_renderlayer_renderable.py diff --git a/pype/plugins/maya/publish/validate_frame_range.py b/pype/hosts/maya/plugins/publish/validate_frame_range.py similarity index 100% rename from pype/plugins/maya/publish/validate_frame_range.py rename to pype/hosts/maya/plugins/publish/validate_frame_range.py diff --git a/pype/plugins/maya/publish/validate_instance_has_members.py b/pype/hosts/maya/plugins/publish/validate_instance_has_members.py similarity index 87% rename from pype/plugins/maya/publish/validate_instance_has_members.py rename to pype/hosts/maya/plugins/publish/validate_instance_has_members.py index 04e7e1c5eb..b28a056198 100644 --- a/pype/plugins/maya/publish/validate_instance_has_members.py +++ b/pype/hosts/maya/plugins/publish/validate_instance_has_members.py @@ -1,6 +1,6 @@ import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateInstanceHasMembers(pyblish.api.InstancePlugin): @@ -9,7 +9,7 @@ class ValidateInstanceHasMembers(pyblish.api.InstancePlugin): order = pype.api.ValidateContentsOrder hosts = ["maya"] label = 'Instance has members' - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] @classmethod def get_invalid(cls, instance): diff --git a/pype/plugins/maya/publish/validate_instance_subset.py b/pype/hosts/maya/plugins/publish/validate_instance_subset.py similarity index 100% rename from pype/plugins/maya/publish/validate_instance_subset.py rename to pype/hosts/maya/plugins/publish/validate_instance_subset.py diff --git a/pype/plugins/maya/publish/validate_instancer_content.py b/pype/hosts/maya/plugins/publish/validate_instancer_content.py similarity index 98% rename from pype/plugins/maya/publish/validate_instancer_content.py rename to pype/hosts/maya/plugins/publish/validate_instancer_content.py index a398aead02..74ed73ef53 100644 --- a/pype/plugins/maya/publish/validate_instancer_content.py +++ b/pype/hosts/maya/plugins/publish/validate_instancer_content.py @@ -1,7 +1,7 @@ import maya.cmds as cmds import pyblish.api -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib class ValidateInstancerContent(pyblish.api.InstancePlugin): diff --git a/pype/plugins/maya/publish/validate_instancer_frame_ranges.py b/pype/hosts/maya/plugins/publish/validate_instancer_frame_ranges.py similarity index 100% rename from pype/plugins/maya/publish/validate_instancer_frame_ranges.py rename to pype/hosts/maya/plugins/publish/validate_instancer_frame_ranges.py diff --git a/pype/plugins/maya/publish/validate_joints_hidden.py b/pype/hosts/maya/plugins/publish/validate_joints_hidden.py similarity index 89% rename from pype/plugins/maya/publish/validate_joints_hidden.py rename to pype/hosts/maya/plugins/publish/validate_joints_hidden.py index 80ca29bfbf..61dfcd563d 100644 --- a/pype/plugins/maya/publish/validate_joints_hidden.py +++ b/pype/hosts/maya/plugins/publish/validate_joints_hidden.py @@ -2,8 +2,8 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action -from pype.hosts.maya import lib +import pype.hosts.maya.api.action +from pype.hosts.maya.api import lib class ValidateJointsHidden(pyblish.api.InstancePlugin): @@ -23,7 +23,7 @@ class ValidateJointsHidden(pyblish.api.InstancePlugin): category = 'rig' version = (0, 1, 0) label = "Joints Hidden" - actions = [pype.hosts.maya.action.SelectInvalidAction, + actions = [pype.hosts.maya.api.action.SelectInvalidAction, pype.api.RepairAction] @staticmethod diff --git a/pype/plugins/maya/publish/validate_look_contents.py b/pype/hosts/maya/plugins/publish/validate_look_contents.py similarity index 97% rename from pype/plugins/maya/publish/validate_look_contents.py rename to pype/hosts/maya/plugins/publish/validate_look_contents.py index 577c88a7e3..8893fdfae8 100644 --- a/pype/plugins/maya/publish/validate_look_contents.py +++ b/pype/hosts/maya/plugins/publish/validate_look_contents.py @@ -1,6 +1,6 @@ import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateLookContents(pyblish.api.InstancePlugin): @@ -21,7 +21,7 @@ class ValidateLookContents(pyblish.api.InstancePlugin): families = ['look'] hosts = ['maya'] label = 'Look Data Contents' - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] def process(self, instance): """Process all the nodes in the instance""" diff --git a/pype/plugins/maya/publish/validate_look_default_shaders_connections.py b/pype/hosts/maya/plugins/publish/validate_look_default_shaders_connections.py similarity index 100% rename from pype/plugins/maya/publish/validate_look_default_shaders_connections.py rename to pype/hosts/maya/plugins/publish/validate_look_default_shaders_connections.py diff --git a/pype/plugins/maya/publish/validate_look_id_reference_edits.py b/pype/hosts/maya/plugins/publish/validate_look_id_reference_edits.py similarity index 97% rename from pype/plugins/maya/publish/validate_look_id_reference_edits.py rename to pype/hosts/maya/plugins/publish/validate_look_id_reference_edits.py index de44a3b31a..8cf5493d20 100644 --- a/pype/plugins/maya/publish/validate_look_id_reference_edits.py +++ b/pype/hosts/maya/plugins/publish/validate_look_id_reference_edits.py @@ -3,7 +3,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateLookIdReferenceEdits(pyblish.api.InstancePlugin): @@ -20,7 +20,7 @@ class ValidateLookIdReferenceEdits(pyblish.api.InstancePlugin): families = ['look'] hosts = ['maya'] label = 'Look Id Reference Edits' - actions = [pype.hosts.maya.action.SelectInvalidAction, + actions = [pype.hosts.maya.api.action.SelectInvalidAction, pype.api.RepairAction] def process(self, instance): diff --git a/pype/plugins/maya/publish/validate_look_members_unique.py b/pype/hosts/maya/plugins/publish/validate_look_members_unique.py similarity index 92% rename from pype/plugins/maya/publish/validate_look_members_unique.py rename to pype/hosts/maya/plugins/publish/validate_look_members_unique.py index 8b6dd60e70..0b0b50715a 100644 --- a/pype/plugins/maya/publish/validate_look_members_unique.py +++ b/pype/hosts/maya/plugins/publish/validate_look_members_unique.py @@ -2,7 +2,7 @@ from collections import defaultdict import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateUniqueRelationshipMembers(pyblish.api.InstancePlugin): @@ -25,8 +25,8 @@ class ValidateUniqueRelationshipMembers(pyblish.api.InstancePlugin): hosts = ['maya'] families = ['look'] - actions = [pype.hosts.maya.action.SelectInvalidAction, - pype.hosts.maya.action.GenerateUUIDsOnInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction, + pype.hosts.maya.api.action.GenerateUUIDsOnInvalidAction] def process(self, instance): """Process all meshes""" diff --git a/pype/plugins/maya/publish/validate_look_no_default_shaders.py b/pype/hosts/maya/plugins/publish/validate_look_no_default_shaders.py similarity index 95% rename from pype/plugins/maya/publish/validate_look_no_default_shaders.py rename to pype/hosts/maya/plugins/publish/validate_look_no_default_shaders.py index 87859d390f..0d6a1ca562 100644 --- a/pype/plugins/maya/publish/validate_look_no_default_shaders.py +++ b/pype/hosts/maya/plugins/publish/validate_look_no_default_shaders.py @@ -2,7 +2,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateLookNoDefaultShaders(pyblish.api.InstancePlugin): @@ -27,7 +27,7 @@ class ValidateLookNoDefaultShaders(pyblish.api.InstancePlugin): families = ['look'] hosts = ['maya'] label = 'Look No Default Shaders' - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] DEFAULT_SHADERS = {"lambert1", "initialShadingGroup", "initialParticleSE", "particleCloud1"} diff --git a/pype/plugins/maya/publish/validate_look_sets.py b/pype/hosts/maya/plugins/publish/validate_look_sets.py similarity index 96% rename from pype/plugins/maya/publish/validate_look_sets.py rename to pype/hosts/maya/plugins/publish/validate_look_sets.py index 4e06b564ed..d044d8ad2e 100644 --- a/pype/plugins/maya/publish/validate_look_sets.py +++ b/pype/hosts/maya/plugins/publish/validate_look_sets.py @@ -1,5 +1,5 @@ -import pype.hosts.maya.action -from pype.hosts.maya import lib +import pype.hosts.maya.api.action +from pype.hosts.maya.api import lib import pyblish.api import pype.api @@ -42,7 +42,7 @@ class ValidateLookSets(pyblish.api.InstancePlugin): families = ['look'] hosts = ['maya'] label = 'Look Sets' - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] def process(self, instance): """Process all the nodes in the instance""" diff --git a/pype/plugins/maya/publish/validate_look_shading_group.py b/pype/hosts/maya/plugins/publish/validate_look_shading_group.py similarity index 93% rename from pype/plugins/maya/publish/validate_look_shading_group.py rename to pype/hosts/maya/plugins/publish/validate_look_shading_group.py index e8911e3f2f..8d4e3ccf70 100644 --- a/pype/plugins/maya/publish/validate_look_shading_group.py +++ b/pype/hosts/maya/plugins/publish/validate_look_shading_group.py @@ -2,7 +2,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateShadingEngine(pyblish.api.InstancePlugin): @@ -16,7 +16,7 @@ class ValidateShadingEngine(pyblish.api.InstancePlugin): hosts = ["maya"] label = "Look Shading Engine Naming" actions = [ - pype.hosts.maya.action.SelectInvalidAction, pype.api.RepairAction + pype.hosts.maya.api.action.SelectInvalidAction, pype.api.RepairAction ] # The default connections to check diff --git a/pype/plugins/maya/publish/validate_look_single_shader.py b/pype/hosts/maya/plugins/publish/validate_look_single_shader.py similarity index 95% rename from pype/plugins/maya/publish/validate_look_single_shader.py rename to pype/hosts/maya/plugins/publish/validate_look_single_shader.py index 600652d16d..8c4835c5bf 100644 --- a/pype/plugins/maya/publish/validate_look_single_shader.py +++ b/pype/hosts/maya/plugins/publish/validate_look_single_shader.py @@ -2,7 +2,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateSingleShader(pyblish.api.InstancePlugin): @@ -16,7 +16,7 @@ class ValidateSingleShader(pyblish.api.InstancePlugin): families = ['look'] hosts = ['maya'] label = 'Look Single Shader Per Shape' - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] # The default connections to check def process(self, instance): diff --git a/pype/plugins/maya/publish/validate_maya_units.py b/pype/hosts/maya/plugins/publish/validate_maya_units.py similarity index 98% rename from pype/plugins/maya/publish/validate_maya_units.py rename to pype/hosts/maya/plugins/publish/validate_maya_units.py index 8712a90f44..c99b8eb813 100644 --- a/pype/plugins/maya/publish/validate_maya_units.py +++ b/pype/hosts/maya/plugins/publish/validate_maya_units.py @@ -3,7 +3,7 @@ import maya.cmds as cmds import pyblish.api import pype.api from pype import lib -import pype.hosts.maya.lib as mayalib +import pype.hosts.maya.api.lib as mayalib from math import ceil diff --git a/pype/plugins/maya/publish/validate_mesh_arnold_attributes.py b/pype/hosts/maya/plugins/publish/validate_mesh_arnold_attributes.py similarity index 96% rename from pype/plugins/maya/publish/validate_mesh_arnold_attributes.py rename to pype/hosts/maya/plugins/publish/validate_mesh_arnold_attributes.py index 04a3cf3c79..a2792693af 100644 --- a/pype/plugins/maya/publish/validate_mesh_arnold_attributes.py +++ b/pype/hosts/maya/plugins/publish/validate_mesh_arnold_attributes.py @@ -2,7 +2,7 @@ import pymel.core as pc from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action from avalon import maya @@ -19,7 +19,7 @@ class ValidateMeshArnoldAttributes(pyblish.api.InstancePlugin): category = "geometry" label = "Mesh Arnold Attributes" actions = [ - pype.hosts.maya.action.SelectInvalidAction, + pype.hosts.maya.api.action.SelectInvalidAction, pype.api.RepairAction ] optional = True diff --git a/pype/plugins/maya/publish/validate_mesh_has_uv.py b/pype/hosts/maya/plugins/publish/validate_mesh_has_uv.py similarity index 96% rename from pype/plugins/maya/publish/validate_mesh_has_uv.py rename to pype/hosts/maya/plugins/publish/validate_mesh_has_uv.py index f7b9b8503d..ae80b6a8f2 100644 --- a/pype/plugins/maya/publish/validate_mesh_has_uv.py +++ b/pype/hosts/maya/plugins/publish/validate_mesh_has_uv.py @@ -4,7 +4,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action def len_flattened(components): @@ -50,7 +50,7 @@ class ValidateMeshHasUVs(pyblish.api.InstancePlugin): families = ['model'] category = 'geometry' label = 'Mesh Has UVs' - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] optional = True @classmethod diff --git a/pype/plugins/maya/publish/validate_mesh_lamina_faces.py b/pype/hosts/maya/plugins/publish/validate_mesh_lamina_faces.py similarity index 90% rename from pype/plugins/maya/publish/validate_mesh_lamina_faces.py rename to pype/hosts/maya/plugins/publish/validate_mesh_lamina_faces.py index 5ebb41b6f9..5628008a38 100644 --- a/pype/plugins/maya/publish/validate_mesh_lamina_faces.py +++ b/pype/hosts/maya/plugins/publish/validate_mesh_lamina_faces.py @@ -2,7 +2,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateMeshLaminaFaces(pyblish.api.InstancePlugin): @@ -18,7 +18,7 @@ class ValidateMeshLaminaFaces(pyblish.api.InstancePlugin): category = 'geometry' version = (0, 1, 0) label = 'Mesh Lamina Faces' - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] @staticmethod def get_invalid(instance): diff --git a/pype/plugins/maya/publish/validate_mesh_no_negative_scale.py b/pype/hosts/maya/plugins/publish/validate_mesh_no_negative_scale.py similarity index 93% rename from pype/plugins/maya/publish/validate_mesh_no_negative_scale.py rename to pype/hosts/maya/plugins/publish/validate_mesh_no_negative_scale.py index 988c94e4ef..8446808459 100644 --- a/pype/plugins/maya/publish/validate_mesh_no_negative_scale.py +++ b/pype/hosts/maya/plugins/publish/validate_mesh_no_negative_scale.py @@ -2,7 +2,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateMeshNoNegativeScale(pyblish.api.Validator): @@ -21,7 +21,7 @@ class ValidateMeshNoNegativeScale(pyblish.api.Validator): hosts = ['maya'] families = ['model'] label = 'Mesh No Negative Scale' - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] @staticmethod def get_invalid(instance): diff --git a/pype/plugins/maya/publish/validate_mesh_non_manifold.py b/pype/hosts/maya/plugins/publish/validate_mesh_non_manifold.py similarity index 91% rename from pype/plugins/maya/publish/validate_mesh_non_manifold.py rename to pype/hosts/maya/plugins/publish/validate_mesh_non_manifold.py index 7559e9e17b..4a2773671d 100644 --- a/pype/plugins/maya/publish/validate_mesh_non_manifold.py +++ b/pype/hosts/maya/plugins/publish/validate_mesh_non_manifold.py @@ -2,7 +2,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateMeshNonManifold(pyblish.api.Validator): @@ -17,7 +17,7 @@ class ValidateMeshNonManifold(pyblish.api.Validator): hosts = ['maya'] families = ['model'] label = 'Mesh Non-Manifold Vertices/Edges' - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] @staticmethod def get_invalid(instance): diff --git a/pype/plugins/maya/publish/validate_mesh_non_zero_edge.py b/pype/hosts/maya/plugins/publish/validate_mesh_non_zero_edge.py similarity index 91% rename from pype/plugins/maya/publish/validate_mesh_non_zero_edge.py rename to pype/hosts/maya/plugins/publish/validate_mesh_non_zero_edge.py index 0d30312cad..0ed02328c8 100644 --- a/pype/plugins/maya/publish/validate_mesh_non_zero_edge.py +++ b/pype/hosts/maya/plugins/publish/validate_mesh_non_zero_edge.py @@ -2,8 +2,8 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action -from pype.hosts.maya import lib +import pype.hosts.maya.api.action +from pype.hosts.maya.api import lib class ValidateMeshNonZeroEdgeLength(pyblish.api.InstancePlugin): @@ -22,7 +22,7 @@ class ValidateMeshNonZeroEdgeLength(pyblish.api.InstancePlugin): category = 'geometry' version = (0, 1, 0) label = 'Mesh Edge Length Non Zero' - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] optional = True __tolerance = 1e-5 diff --git a/pype/plugins/maya/publish/validate_mesh_normals_unlocked.py b/pype/hosts/maya/plugins/publish/validate_mesh_normals_unlocked.py similarity index 94% rename from pype/plugins/maya/publish/validate_mesh_normals_unlocked.py rename to pype/hosts/maya/plugins/publish/validate_mesh_normals_unlocked.py index a764611b5c..d9d740cf13 100644 --- a/pype/plugins/maya/publish/validate_mesh_normals_unlocked.py +++ b/pype/hosts/maya/plugins/publish/validate_mesh_normals_unlocked.py @@ -2,7 +2,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateMeshNormalsUnlocked(pyblish.api.Validator): @@ -19,7 +19,7 @@ class ValidateMeshNormalsUnlocked(pyblish.api.Validator): category = 'geometry' version = (0, 1, 0) label = 'Mesh Normals Unlocked' - actions = [pype.hosts.maya.action.SelectInvalidAction, + actions = [pype.hosts.maya.api.action.SelectInvalidAction, pype.api.RepairAction] optional = True diff --git a/pype/plugins/maya/publish/validate_mesh_overlapping_uvs.py b/pype/hosts/maya/plugins/publish/validate_mesh_overlapping_uvs.py similarity index 98% rename from pype/plugins/maya/publish/validate_mesh_overlapping_uvs.py rename to pype/hosts/maya/plugins/publish/validate_mesh_overlapping_uvs.py index c6479675d2..3619d27298 100644 --- a/pype/plugins/maya/publish/validate_mesh_overlapping_uvs.py +++ b/pype/hosts/maya/plugins/publish/validate_mesh_overlapping_uvs.py @@ -1,6 +1,6 @@ import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action import math import maya.api.OpenMaya as om import pymel.core as pm @@ -235,7 +235,7 @@ class ValidateMeshHasOverlappingUVs(pyblish.api.InstancePlugin): families = ['model'] category = 'geometry' label = 'Mesh Has Overlapping UVs' - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] optional = True @classmethod diff --git a/pype/plugins/maya/publish/validate_mesh_shader_connections.py b/pype/hosts/maya/plugins/publish/validate_mesh_shader_connections.py similarity index 97% rename from pype/plugins/maya/publish/validate_mesh_shader_connections.py rename to pype/hosts/maya/plugins/publish/validate_mesh_shader_connections.py index a31df7c0ae..b9542fe930 100644 --- a/pype/plugins/maya/publish/validate_mesh_shader_connections.py +++ b/pype/hosts/maya/plugins/publish/validate_mesh_shader_connections.py @@ -2,7 +2,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action def pairs(iterable): @@ -77,7 +77,7 @@ class ValidateMeshShaderConnections(pyblish.api.InstancePlugin): hosts = ['maya'] families = ['model'] label = "Mesh Shader Connections" - actions = [pype.hosts.maya.action.SelectInvalidAction, + actions = [pype.hosts.maya.api.action.SelectInvalidAction, pype.api.RepairAction] def process(self, instance): diff --git a/pype/plugins/maya/publish/validate_mesh_single_uv_set.py b/pype/hosts/maya/plugins/publish/validate_mesh_single_uv_set.py similarity index 93% rename from pype/plugins/maya/publish/validate_mesh_single_uv_set.py rename to pype/hosts/maya/plugins/publish/validate_mesh_single_uv_set.py index 87d83c070e..348bcb5fad 100644 --- a/pype/plugins/maya/publish/validate_mesh_single_uv_set.py +++ b/pype/hosts/maya/plugins/publish/validate_mesh_single_uv_set.py @@ -2,8 +2,8 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action -from pype.hosts.maya import lib +import pype.hosts.maya.api.action +from pype.hosts.maya.api import lib class ValidateMeshSingleUVSet(pyblish.api.InstancePlugin): @@ -22,7 +22,7 @@ class ValidateMeshSingleUVSet(pyblish.api.InstancePlugin): optional = True version = (0, 1, 0) label = "Mesh Single UV Set" - actions = [pype.hosts.maya.action.SelectInvalidAction, + actions = [pype.hosts.maya.api.action.SelectInvalidAction, pype.api.RepairAction] @staticmethod diff --git a/pype/plugins/maya/publish/validate_mesh_uv_set_map1.py b/pype/hosts/maya/plugins/publish/validate_mesh_uv_set_map1.py similarity index 96% rename from pype/plugins/maya/publish/validate_mesh_uv_set_map1.py rename to pype/hosts/maya/plugins/publish/validate_mesh_uv_set_map1.py index 8bf5c55f65..5f954ee917 100644 --- a/pype/plugins/maya/publish/validate_mesh_uv_set_map1.py +++ b/pype/hosts/maya/plugins/publish/validate_mesh_uv_set_map1.py @@ -2,7 +2,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateMeshUVSetMap1(pyblish.api.InstancePlugin): @@ -20,7 +20,7 @@ class ValidateMeshUVSetMap1(pyblish.api.InstancePlugin): families = ['model'] optional = True label = "Mesh has map1 UV Set" - actions = [pype.hosts.maya.action.SelectInvalidAction, + actions = [pype.hosts.maya.api.action.SelectInvalidAction, pype.api.RepairAction] @staticmethod diff --git a/pype/plugins/maya/publish/validate_mesh_vertices_have_edges.py b/pype/hosts/maya/plugins/publish/validate_mesh_vertices_have_edges.py similarity index 96% rename from pype/plugins/maya/publish/validate_mesh_vertices_have_edges.py rename to pype/hosts/maya/plugins/publish/validate_mesh_vertices_have_edges.py index 2dd65da7d2..8d39c5cae4 100644 --- a/pype/plugins/maya/publish/validate_mesh_vertices_have_edges.py +++ b/pype/hosts/maya/plugins/publish/validate_mesh_vertices_have_edges.py @@ -4,7 +4,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action def len_flattened(components): @@ -62,7 +62,7 @@ class ValidateMeshVerticesHaveEdges(pyblish.api.InstancePlugin): families = ['model'] category = 'geometry' label = 'Mesh Vertices Have Edges' - actions = [pype.hosts.maya.action.SelectInvalidAction, + actions = [pype.hosts.maya.api.action.SelectInvalidAction, pype.api.RepairAction] @classmethod diff --git a/pype/plugins/maya/publish/validate_model_content.py b/pype/hosts/maya/plugins/publish/validate_model_content.py similarity index 96% rename from pype/plugins/maya/publish/validate_model_content.py rename to pype/hosts/maya/plugins/publish/validate_model_content.py index fd7c69ead7..9bec7187e9 100644 --- a/pype/plugins/maya/publish/validate_model_content.py +++ b/pype/hosts/maya/plugins/publish/validate_model_content.py @@ -2,8 +2,8 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action -from pype.hosts.maya import lib +import pype.hosts.maya.api.action +from pype.hosts.maya.api import lib class ValidateModelContent(pyblish.api.InstancePlugin): @@ -18,7 +18,7 @@ class ValidateModelContent(pyblish.api.InstancePlugin): hosts = ["maya"] families = ["model"] label = "Model Content" - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] @classmethod def get_invalid(cls, instance): diff --git a/pype/plugins/maya/publish/validate_model_name.py b/pype/hosts/maya/plugins/publish/validate_model_name.py similarity index 97% rename from pype/plugins/maya/publish/validate_model_name.py rename to pype/hosts/maya/plugins/publish/validate_model_name.py index 716b7d5f98..f0004dc81e 100644 --- a/pype/plugins/maya/publish/validate_model_name.py +++ b/pype/hosts/maya/plugins/publish/validate_model_name.py @@ -1,7 +1,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action import re @@ -18,7 +18,7 @@ class ValidateModelName(pyblish.api.InstancePlugin): hosts = ["maya"] families = ["model"] label = "Model Name" - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] # path to shader names definitions # TODO: move it to preset file material_file = None diff --git a/pype/plugins/maya/publish/validate_muster_connection.py b/pype/hosts/maya/plugins/publish/validate_muster_connection.py similarity index 99% rename from pype/plugins/maya/publish/validate_muster_connection.py rename to pype/hosts/maya/plugins/publish/validate_muster_connection.py index 35acdb326f..ad1022c71d 100644 --- a/pype/plugins/maya/publish/validate_muster_connection.py +++ b/pype/hosts/maya/plugins/publish/validate_muster_connection.py @@ -5,7 +5,7 @@ import appdirs import pyblish.api from avalon.vendor import requests from pype.plugin import contextplugin_should_run -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateMusterConnection(pyblish.api.ContextPlugin): diff --git a/pype/plugins/maya/publish/validate_no_animation.py b/pype/hosts/maya/plugins/publish/validate_no_animation.py similarity index 91% rename from pype/plugins/maya/publish/validate_no_animation.py rename to pype/hosts/maya/plugins/publish/validate_no_animation.py index fc198745c0..a6daf3246e 100644 --- a/pype/plugins/maya/publish/validate_no_animation.py +++ b/pype/hosts/maya/plugins/publish/validate_no_animation.py @@ -2,7 +2,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateNoAnimation(pyblish.api.Validator): @@ -19,7 +19,7 @@ class ValidateNoAnimation(pyblish.api.Validator): hosts = ["maya"] families = ["model"] optional = True - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] def process(self, instance): diff --git a/pype/plugins/maya/publish/validate_no_default_camera.py b/pype/hosts/maya/plugins/publish/validate_no_default_camera.py similarity index 90% rename from pype/plugins/maya/publish/validate_no_default_camera.py rename to pype/hosts/maya/plugins/publish/validate_no_default_camera.py index 876612c076..07ec2e4325 100644 --- a/pype/plugins/maya/publish/validate_no_default_camera.py +++ b/pype/hosts/maya/plugins/publish/validate_no_default_camera.py @@ -2,7 +2,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateNoDefaultCameras(pyblish.api.InstancePlugin): @@ -18,7 +18,7 @@ class ValidateNoDefaultCameras(pyblish.api.InstancePlugin): families = ['camera'] version = (0, 1, 0) label = "No Default Cameras" - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] @staticmethod def get_invalid(instance): diff --git a/pype/plugins/maya/publish/validate_no_namespace.py b/pype/hosts/maya/plugins/publish/validate_no_namespace.py similarity index 93% rename from pype/plugins/maya/publish/validate_no_namespace.py rename to pype/hosts/maya/plugins/publish/validate_no_namespace.py index 6a6c7792c5..97cd46e68a 100644 --- a/pype/plugins/maya/publish/validate_no_namespace.py +++ b/pype/hosts/maya/plugins/publish/validate_no_namespace.py @@ -3,7 +3,7 @@ import maya.cmds as cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action def get_namespace(node_name): @@ -22,7 +22,7 @@ class ValidateNoNamespace(pyblish.api.InstancePlugin): category = 'cleanup' version = (0, 1, 0) label = 'No Namespaces' - actions = [pype.hosts.maya.action.SelectInvalidAction, + actions = [pype.hosts.maya.api.action.SelectInvalidAction, pype.api.RepairAction] @staticmethod diff --git a/pype/plugins/maya/publish/validate_no_null_transforms.py b/pype/hosts/maya/plugins/publish/validate_no_null_transforms.py similarity index 95% rename from pype/plugins/maya/publish/validate_no_null_transforms.py rename to pype/hosts/maya/plugins/publish/validate_no_null_transforms.py index aa35c47339..78f06bbbd8 100644 --- a/pype/plugins/maya/publish/validate_no_null_transforms.py +++ b/pype/hosts/maya/plugins/publish/validate_no_null_transforms.py @@ -2,7 +2,7 @@ import maya.cmds as cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action def has_shape_children(node): @@ -44,7 +44,7 @@ class ValidateNoNullTransforms(pyblish.api.InstancePlugin): version = (0, 1, 0) label = 'No Empty/Null Transforms' actions = [pype.api.RepairAction, - pype.hosts.maya.action.SelectInvalidAction] + pype.hosts.maya.api.action.SelectInvalidAction] @staticmethod def get_invalid(instance): diff --git a/pype/plugins/maya/publish/validate_no_unknown_nodes.py b/pype/hosts/maya/plugins/publish/validate_no_unknown_nodes.py similarity index 90% rename from pype/plugins/maya/publish/validate_no_unknown_nodes.py rename to pype/hosts/maya/plugins/publish/validate_no_unknown_nodes.py index 04c8fd04bc..6b2f1337d3 100644 --- a/pype/plugins/maya/publish/validate_no_unknown_nodes.py +++ b/pype/hosts/maya/plugins/publish/validate_no_unknown_nodes.py @@ -2,7 +2,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateNoUnknownNodes(pyblish.api.InstancePlugin): @@ -21,7 +21,7 @@ class ValidateNoUnknownNodes(pyblish.api.InstancePlugin): families = ['model', 'rig'] optional = True label = "Unknown Nodes" - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] @staticmethod def get_invalid(instance): diff --git a/pype/plugins/maya/publish/validate_no_vraymesh.py b/pype/hosts/maya/plugins/publish/validate_no_vraymesh.py similarity index 100% rename from pype/plugins/maya/publish/validate_no_vraymesh.py rename to pype/hosts/maya/plugins/publish/validate_no_vraymesh.py diff --git a/pype/plugins/maya/publish/validate_node_ids.py b/pype/hosts/maya/plugins/publish/validate_node_ids.py similarity index 86% rename from pype/plugins/maya/publish/validate_node_ids.py rename to pype/hosts/maya/plugins/publish/validate_node_ids.py index 777d810c80..4942d44d70 100644 --- a/pype/plugins/maya/publish/validate_node_ids.py +++ b/pype/hosts/maya/plugins/publish/validate_node_ids.py @@ -1,8 +1,8 @@ import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib class ValidateNodeIDs(pyblish.api.InstancePlugin): @@ -25,8 +25,8 @@ class ValidateNodeIDs(pyblish.api.InstancePlugin): "yetiRig", "assembly"] - actions = [pype.hosts.maya.action.SelectInvalidAction, - pype.hosts.maya.action.GenerateUUIDsOnInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction, + pype.hosts.maya.api.action.GenerateUUIDsOnInvalidAction] def process(self, instance): """Process all meshes""" diff --git a/pype/plugins/maya/publish/validate_node_ids_deformed_shapes.py b/pype/hosts/maya/plugins/publish/validate_node_ids_deformed_shapes.py similarity index 92% rename from pype/plugins/maya/publish/validate_node_ids_deformed_shapes.py rename to pype/hosts/maya/plugins/publish/validate_node_ids_deformed_shapes.py index 49b78f79bc..757414a074 100644 --- a/pype/plugins/maya/publish/validate_node_ids_deformed_shapes.py +++ b/pype/hosts/maya/plugins/publish/validate_node_ids_deformed_shapes.py @@ -2,8 +2,8 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action -from pype.hosts.maya import lib +import pype.hosts.maya.api.action +from pype.hosts.maya.api import lib class ValidateNodeIdsDeformedShape(pyblish.api.InstancePlugin): @@ -20,7 +20,10 @@ class ValidateNodeIdsDeformedShape(pyblish.api.InstancePlugin): families = ['look'] hosts = ['maya'] label = 'Deformed shape ids' - actions = [pype.hosts.maya.action.SelectInvalidAction, pype.api.RepairAction] + actions = [ + pype.hosts.maya.api.action.SelectInvalidAction, + pype.api.RepairAction + ] def process(self, instance): """Process all the nodes in the instance""" diff --git a/pype/plugins/maya/publish/validate_node_ids_in_database.py b/pype/hosts/maya/plugins/publish/validate_node_ids_in_database.py similarity index 89% rename from pype/plugins/maya/publish/validate_node_ids_in_database.py rename to pype/hosts/maya/plugins/publish/validate_node_ids_in_database.py index 15241411b7..154d0c1d38 100644 --- a/pype/plugins/maya/publish/validate_node_ids_in_database.py +++ b/pype/hosts/maya/plugins/publish/validate_node_ids_in_database.py @@ -3,8 +3,8 @@ import pyblish.api from avalon import io import pype.api -import pype.hosts.maya.action -from pype.hosts.maya import lib +import pype.hosts.maya.api.action +from pype.hosts.maya.api import lib class ValidateNodeIdsInDatabase(pyblish.api.InstancePlugin): @@ -23,8 +23,8 @@ class ValidateNodeIdsInDatabase(pyblish.api.InstancePlugin): hosts = ['maya'] families = ["*"] - actions = [pype.hosts.maya.action.SelectInvalidAction, - pype.hosts.maya.action.GenerateUUIDsOnInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction, + pype.hosts.maya.api.action.GenerateUUIDsOnInvalidAction] def process(self, instance): invalid = self.get_invalid(instance) diff --git a/pype/plugins/maya/publish/validate_node_ids_related.py b/pype/hosts/maya/plugins/publish/validate_node_ids_related.py similarity index 88% rename from pype/plugins/maya/publish/validate_node_ids_related.py rename to pype/hosts/maya/plugins/publish/validate_node_ids_related.py index 193e53440a..390e5c157a 100644 --- a/pype/plugins/maya/publish/validate_node_ids_related.py +++ b/pype/hosts/maya/plugins/publish/validate_node_ids_related.py @@ -2,9 +2,9 @@ import pyblish.api import pype.api from avalon import io -import pype.hosts.maya.action +import pype.hosts.maya.api.action -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib class ValidateNodeIDsRelated(pyblish.api.InstancePlugin): @@ -20,8 +20,8 @@ class ValidateNodeIDsRelated(pyblish.api.InstancePlugin): "rig"] optional = True - actions = [pype.hosts.maya.action.SelectInvalidAction, - pype.hosts.maya.action.GenerateUUIDsOnInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction, + pype.hosts.maya.api.action.GenerateUUIDsOnInvalidAction] def process(self, instance): """Process all nodes in instance (including hierarchy)""" diff --git a/pype/plugins/maya/publish/validate_node_ids_unique.py b/pype/hosts/maya/plugins/publish/validate_node_ids_unique.py similarity index 89% rename from pype/plugins/maya/publish/validate_node_ids_unique.py rename to pype/hosts/maya/plugins/publish/validate_node_ids_unique.py index 3a66941f89..20320854f0 100644 --- a/pype/plugins/maya/publish/validate_node_ids_unique.py +++ b/pype/hosts/maya/plugins/publish/validate_node_ids_unique.py @@ -2,8 +2,8 @@ from collections import defaultdict import pyblish.api import pype.api -import pype.hosts.maya.action -from pype.hosts.maya import lib +import pype.hosts.maya.api.action +from pype.hosts.maya.api import lib class ValidateNodeIdsUnique(pyblish.api.InstancePlugin): @@ -20,8 +20,8 @@ class ValidateNodeIdsUnique(pyblish.api.InstancePlugin): "rig", "yetiRig"] - actions = [pype.hosts.maya.action.SelectInvalidAction, - pype.hosts.maya.action.GenerateUUIDsOnInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction, + pype.hosts.maya.api.action.GenerateUUIDsOnInvalidAction] def process(self, instance): """Process all meshes""" diff --git a/pype/plugins/maya/publish/validate_node_no_ghosting.py b/pype/hosts/maya/plugins/publish/validate_node_no_ghosting.py similarity index 93% rename from pype/plugins/maya/publish/validate_node_no_ghosting.py rename to pype/hosts/maya/plugins/publish/validate_node_no_ghosting.py index a4b3122b34..3acd5b027d 100644 --- a/pype/plugins/maya/publish/validate_node_no_ghosting.py +++ b/pype/hosts/maya/plugins/publish/validate_node_no_ghosting.py @@ -2,7 +2,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateNodeNoGhosting(pyblish.api.InstancePlugin): @@ -21,7 +21,7 @@ class ValidateNodeNoGhosting(pyblish.api.InstancePlugin): hosts = ['maya'] families = ['model', 'rig'] label = "No Ghosting" - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] _attributes = {'ghosting': 0} diff --git a/pype/plugins/maya/publish/validate_render_image_rule.py b/pype/hosts/maya/plugins/publish/validate_render_image_rule.py similarity index 100% rename from pype/plugins/maya/publish/validate_render_image_rule.py rename to pype/hosts/maya/plugins/publish/validate_render_image_rule.py diff --git a/pype/plugins/maya/publish/validate_render_no_default_cameras.py b/pype/hosts/maya/plugins/publish/validate_render_no_default_cameras.py similarity index 91% rename from pype/plugins/maya/publish/validate_render_no_default_cameras.py rename to pype/hosts/maya/plugins/publish/validate_render_no_default_cameras.py index 8c1fb42f1a..38383310a2 100644 --- a/pype/plugins/maya/publish/validate_render_no_default_cameras.py +++ b/pype/hosts/maya/plugins/publish/validate_render_no_default_cameras.py @@ -2,7 +2,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateRenderNoDefaultCameras(pyblish.api.InstancePlugin): @@ -12,7 +12,7 @@ class ValidateRenderNoDefaultCameras(pyblish.api.InstancePlugin): hosts = ['maya'] families = ['renderlayer'] label = "No Default Cameras Renderable" - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] @staticmethod def get_invalid(instance): diff --git a/pype/plugins/maya/publish/validate_render_single_camera.py b/pype/hosts/maya/plugins/publish/validate_render_single_camera.py similarity index 95% rename from pype/plugins/maya/publish/validate_render_single_camera.py rename to pype/hosts/maya/plugins/publish/validate_render_single_camera.py index 482cf2fb59..268a6599e2 100644 --- a/pype/plugins/maya/publish/validate_render_single_camera.py +++ b/pype/hosts/maya/plugins/publish/validate_render_single_camera.py @@ -2,7 +2,7 @@ import re import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action from maya import cmds @@ -28,7 +28,7 @@ class ValidateRenderSingleCamera(pyblish.api.InstancePlugin): hosts = ['maya'] families = ["renderlayer", "vrayscene"] - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] R_CAMERA_TOKEN = re.compile(r'%c|', re.IGNORECASE) diff --git a/pype/plugins/maya/publish/validate_renderlayer_aovs.py b/pype/hosts/maya/plugins/publish/validate_renderlayer_aovs.py similarity index 94% rename from pype/plugins/maya/publish/validate_renderlayer_aovs.py rename to pype/hosts/maya/plugins/publish/validate_renderlayer_aovs.py index aba8fdaa96..7fdd8b377c 100644 --- a/pype/plugins/maya/publish/validate_renderlayer_aovs.py +++ b/pype/hosts/maya/plugins/publish/validate_renderlayer_aovs.py @@ -1,6 +1,6 @@ import pyblish.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action from avalon import io import pype.api @@ -25,7 +25,7 @@ class ValidateRenderLayerAOVs(pyblish.api.InstancePlugin): label = "Render Passes / AOVs Are Registered" hosts = ["maya"] families = ["renderlayer"] - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] def process(self, instance): invalid = self.get_invalid(instance) diff --git a/pype/plugins/maya/publish/validate_rendersettings.py b/pype/hosts/maya/plugins/publish/validate_rendersettings.py similarity index 99% rename from pype/plugins/maya/publish/validate_rendersettings.py rename to pype/hosts/maya/plugins/publish/validate_rendersettings.py index 297ead5ebb..88a386db57 100644 --- a/pype/plugins/maya/publish/validate_rendersettings.py +++ b/pype/hosts/maya/plugins/publish/validate_rendersettings.py @@ -6,7 +6,7 @@ import pymel.core as pm import pyblish.api import pype.api -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib class ValidateRenderSettings(pyblish.api.InstancePlugin): diff --git a/pype/plugins/maya/publish/validate_resources.py b/pype/hosts/maya/plugins/publish/validate_resources.py similarity index 100% rename from pype/plugins/maya/publish/validate_resources.py rename to pype/hosts/maya/plugins/publish/validate_resources.py diff --git a/pype/plugins/maya/publish/validate_rig_contents.py b/pype/hosts/maya/plugins/publish/validate_rig_contents.py similarity index 100% rename from pype/plugins/maya/publish/validate_rig_contents.py rename to pype/hosts/maya/plugins/publish/validate_rig_contents.py diff --git a/pype/plugins/maya/publish/validate_rig_controllers.py b/pype/hosts/maya/plugins/publish/validate_rig_controllers.py similarity index 97% rename from pype/plugins/maya/publish/validate_rig_controllers.py rename to pype/hosts/maya/plugins/publish/validate_rig_controllers.py index a127728155..ef0df2df7c 100644 --- a/pype/plugins/maya/publish/validate_rig_controllers.py +++ b/pype/hosts/maya/plugins/publish/validate_rig_controllers.py @@ -3,8 +3,8 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action -from pype.hosts.maya.lib import undo_chunk +import pype.hosts.maya.api.action +from pype.hosts.maya.api.lib import undo_chunk class ValidateRigControllers(pyblish.api.InstancePlugin): @@ -30,7 +30,7 @@ class ValidateRigControllers(pyblish.api.InstancePlugin): hosts = ["maya"] families = ["rig"] actions = [pype.api.RepairAction, - pype.hosts.maya.action.SelectInvalidAction] + pype.hosts.maya.api.action.SelectInvalidAction] # Default controller values CONTROLLER_DEFAULTS = { diff --git a/pype/plugins/maya/publish/validate_rig_controllers_arnold_attributes.py b/pype/hosts/maya/plugins/publish/validate_rig_controllers_arnold_attributes.py similarity index 95% rename from pype/plugins/maya/publish/validate_rig_controllers_arnold_attributes.py rename to pype/hosts/maya/plugins/publish/validate_rig_controllers_arnold_attributes.py index 8c1f8e4c7b..f19e3fbb61 100644 --- a/pype/plugins/maya/publish/validate_rig_controllers_arnold_attributes.py +++ b/pype/hosts/maya/plugins/publish/validate_rig_controllers_arnold_attributes.py @@ -3,8 +3,8 @@ from maya import cmds import pyblish.api import pype.api -from pype.hosts.maya import lib -import pype.hosts.maya.action +from pype.hosts.maya.api import lib +import pype.hosts.maya.api.action class ValidateRigControllersArnoldAttributes(pyblish.api.InstancePlugin): @@ -31,7 +31,7 @@ class ValidateRigControllersArnoldAttributes(pyblish.api.InstancePlugin): hosts = ["maya"] families = ["rig"] actions = [pype.api.RepairAction, - pype.hosts.maya.action.SelectInvalidAction] + pype.hosts.maya.api.action.SelectInvalidAction] attributes = [ "rcurve", diff --git a/pype/plugins/maya/publish/validate_rig_out_set_node_ids.py b/pype/hosts/maya/plugins/publish/validate_rig_out_set_node_ids.py similarity index 92% rename from pype/plugins/maya/publish/validate_rig_out_set_node_ids.py rename to pype/hosts/maya/plugins/publish/validate_rig_out_set_node_ids.py index 97dca803ee..1782395d96 100644 --- a/pype/plugins/maya/publish/validate_rig_out_set_node_ids.py +++ b/pype/hosts/maya/plugins/publish/validate_rig_out_set_node_ids.py @@ -2,8 +2,8 @@ import maya.cmds as cmds import pyblish.api import pype.api -import pype.hosts.maya.action -from pype.hosts.maya import lib +import pype.hosts.maya.api.action +from pype.hosts.maya.api import lib class ValidateRigOutSetNodeIds(pyblish.api.InstancePlugin): @@ -20,7 +20,10 @@ class ValidateRigOutSetNodeIds(pyblish.api.InstancePlugin): families = ["rig"] hosts = ['maya'] label = 'Rig Out Set Node Ids' - actions = [pype.hosts.maya.action.SelectInvalidAction, pype.api.RepairAction] + actions = [ + pype.hosts.maya.api.action.SelectInvalidAction, + pype.api.RepairAction + ] def process(self, instance): """Process all meshes""" diff --git a/pype/plugins/maya/publish/validate_rig_output_ids.py b/pype/hosts/maya/plugins/publish/validate_rig_output_ids.py similarity index 95% rename from pype/plugins/maya/publish/validate_rig_output_ids.py rename to pype/hosts/maya/plugins/publish/validate_rig_output_ids.py index fe9662d9d9..37a50da910 100644 --- a/pype/plugins/maya/publish/validate_rig_output_ids.py +++ b/pype/hosts/maya/plugins/publish/validate_rig_output_ids.py @@ -3,8 +3,7 @@ import pymel.core as pc import pyblish.api import pype.api -import pype.hosts.maya.action -from pype.hosts.maya.lib import undo_chunk +import pype.hosts.maya.api.action class ValidateRigOutputIds(pyblish.api.InstancePlugin): @@ -19,7 +18,7 @@ class ValidateRigOutputIds(pyblish.api.InstancePlugin): hosts = ["maya"] families = ["rig"] actions = [pype.api.RepairAction, - pype.hosts.maya.action.SelectInvalidAction] + pype.hosts.maya.api.action.SelectInvalidAction] def process(self, instance): invalid = self.get_invalid(instance, compute=True) diff --git a/pype/plugins/maya/publish/validate_scene_set_workspace.py b/pype/hosts/maya/plugins/publish/validate_scene_set_workspace.py similarity index 100% rename from pype/plugins/maya/publish/validate_scene_set_workspace.py rename to pype/hosts/maya/plugins/publish/validate_scene_set_workspace.py diff --git a/pype/plugins/maya/publish/validate_shader_name.py b/pype/hosts/maya/plugins/publish/validate_shader_name.py similarity index 96% rename from pype/plugins/maya/publish/validate_shader_name.py rename to pype/hosts/maya/plugins/publish/validate_shader_name.py index 094ac0afe9..4a42ec6e35 100644 --- a/pype/plugins/maya/publish/validate_shader_name.py +++ b/pype/hosts/maya/plugins/publish/validate_shader_name.py @@ -2,7 +2,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action import re @@ -18,7 +18,7 @@ class ValidateShaderName(pyblish.api.InstancePlugin): families = ["look"] hosts = ['maya'] label = 'Validate Shaders Name' - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] regex = r'(?P.*)_(.*)_SHD' # The default connections to check diff --git a/pype/plugins/maya/publish/validate_shape_default_names.py b/pype/hosts/maya/plugins/publish/validate_shape_default_names.py similarity index 96% rename from pype/plugins/maya/publish/validate_shape_default_names.py rename to pype/hosts/maya/plugins/publish/validate_shape_default_names.py index c0638863da..cd4e9905d9 100644 --- a/pype/plugins/maya/publish/validate_shape_default_names.py +++ b/pype/hosts/maya/plugins/publish/validate_shape_default_names.py @@ -4,7 +4,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action def short_name(node): @@ -38,7 +38,7 @@ class ValidateShapeDefaultNames(pyblish.api.InstancePlugin): optional = True version = (0, 1, 0) label = "Shape Default Naming" - actions = [pype.hosts.maya.action.SelectInvalidAction, + actions = [pype.hosts.maya.api.action.SelectInvalidAction, pype.api.RepairAction] @staticmethod diff --git a/pype/plugins/maya/publish/validate_shape_render_stats.py b/pype/hosts/maya/plugins/publish/validate_shape_render_stats.py similarity index 95% rename from pype/plugins/maya/publish/validate_shape_render_stats.py rename to pype/hosts/maya/plugins/publish/validate_shape_render_stats.py index af48d664ec..c94becabe9 100644 --- a/pype/plugins/maya/publish/validate_shape_render_stats.py +++ b/pype/hosts/maya/plugins/publish/validate_shape_render_stats.py @@ -3,7 +3,7 @@ import pype.api from maya import cmds -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateShapeRenderStats(pyblish.api.Validator): @@ -13,7 +13,7 @@ class ValidateShapeRenderStats(pyblish.api.Validator): hosts = ['maya'] families = ['model'] label = 'Shape Default Render Stats' - actions = [pype.hosts.maya.action.SelectInvalidAction, + actions = [pype.hosts.maya.api.action.SelectInvalidAction, pype.api.RepairAction] defaults = {'castsShadows': 1, diff --git a/pype/plugins/maya/publish/validate_single_assembly.py b/pype/hosts/maya/plugins/publish/validate_single_assembly.py similarity index 100% rename from pype/plugins/maya/publish/validate_single_assembly.py rename to pype/hosts/maya/plugins/publish/validate_single_assembly.py diff --git a/pype/plugins/maya/publish/validate_skinCluster_deformer_set.py b/pype/hosts/maya/plugins/publish/validate_skinCluster_deformer_set.py similarity index 96% rename from pype/plugins/maya/publish/validate_skinCluster_deformer_set.py rename to pype/hosts/maya/plugins/publish/validate_skinCluster_deformer_set.py index 39870658ad..2d28d26b0f 100644 --- a/pype/plugins/maya/publish/validate_skinCluster_deformer_set.py +++ b/pype/hosts/maya/plugins/publish/validate_skinCluster_deformer_set.py @@ -2,7 +2,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateSkinclusterDeformerSet(pyblish.api.InstancePlugin): @@ -18,7 +18,7 @@ class ValidateSkinclusterDeformerSet(pyblish.api.InstancePlugin): hosts = ['maya'] families = ['fbx'] label = "Skincluster Deformer Relationships" - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] def process(self, instance): """Process all the transform nodes in the instance""" diff --git a/pype/plugins/maya/publish/validate_step_size.py b/pype/hosts/maya/plugins/publish/validate_step_size.py similarity index 91% rename from pype/plugins/maya/publish/validate_step_size.py rename to pype/hosts/maya/plugins/publish/validate_step_size.py index 5e46e7df0b..502a1c37c2 100644 --- a/pype/plugins/maya/publish/validate_step_size.py +++ b/pype/hosts/maya/plugins/publish/validate_step_size.py @@ -1,6 +1,6 @@ import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateStepSize(pyblish.api.InstancePlugin): @@ -15,7 +15,7 @@ class ValidateStepSize(pyblish.api.InstancePlugin): families = ['camera', 'pointcache', 'animation'] - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] MIN = 0.01 MAX = 1.0 diff --git a/pype/plugins/maya/publish/validate_transform_naming_suffix.py b/pype/hosts/maya/plugins/publish/validate_transform_naming_suffix.py similarity index 97% rename from pype/plugins/maya/publish/validate_transform_naming_suffix.py rename to pype/hosts/maya/plugins/publish/validate_transform_naming_suffix.py index 120123af4b..14d4e7d5c8 100644 --- a/pype/plugins/maya/publish/validate_transform_naming_suffix.py +++ b/pype/hosts/maya/plugins/publish/validate_transform_naming_suffix.py @@ -4,7 +4,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateTransformNamingSuffix(pyblish.api.InstancePlugin): @@ -34,7 +34,7 @@ class ValidateTransformNamingSuffix(pyblish.api.InstancePlugin): optional = True version = (0, 1, 0) label = 'Suffix Naming Conventions' - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] SUFFIX_NAMING_TABLE = {'mesh': ["_GEO", "_GES", "_GEP", "_OSD"], 'nurbsCurve': ["_CRV"], 'nurbsSurface': ["_NRB"], diff --git a/pype/plugins/maya/publish/validate_transform_zero.py b/pype/hosts/maya/plugins/publish/validate_transform_zero.py similarity index 95% rename from pype/plugins/maya/publish/validate_transform_zero.py rename to pype/hosts/maya/plugins/publish/validate_transform_zero.py index ac5517061f..0cecc3124b 100644 --- a/pype/plugins/maya/publish/validate_transform_zero.py +++ b/pype/hosts/maya/plugins/publish/validate_transform_zero.py @@ -2,7 +2,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateTransformZero(pyblish.api.Validator): @@ -20,7 +20,7 @@ class ValidateTransformZero(pyblish.api.Validator): category = "geometry" version = (0, 1, 0) label = "Transform Zero (Freeze)" - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] _identity = [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, diff --git a/pype/plugins/maya/publish/validate_unicode_strings.py b/pype/hosts/maya/plugins/publish/validate_unicode_strings.py similarity index 96% rename from pype/plugins/maya/publish/validate_unicode_strings.py rename to pype/hosts/maya/plugins/publish/validate_unicode_strings.py index bf44d971af..cfcba4f514 100644 --- a/pype/plugins/maya/publish/validate_unicode_strings.py +++ b/pype/hosts/maya/plugins/publish/validate_unicode_strings.py @@ -3,7 +3,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateUnicodeStrings(pyblish.api.Validator): diff --git a/pype/plugins/maya/publish/validate_unreal_mesh_triangulated.py b/pype/hosts/maya/plugins/publish/validate_unreal_mesh_triangulated.py similarity index 93% rename from pype/plugins/maya/publish/validate_unreal_mesh_triangulated.py rename to pype/hosts/maya/plugins/publish/validate_unreal_mesh_triangulated.py index 2cefe27019..9011b584fe 100644 --- a/pype/plugins/maya/publish/validate_unreal_mesh_triangulated.py +++ b/pype/hosts/maya/plugins/publish/validate_unreal_mesh_triangulated.py @@ -13,7 +13,7 @@ class ValidateUnrealMeshTriangulated(pyblish.api.InstancePlugin): families = ["unrealStaticMesh"] category = "geometry" label = "Mesh is Triangulated" - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] @classmethod def get_invalid(cls, instance): diff --git a/pype/plugins/maya/publish/validate_unreal_staticmesh_naming.py b/pype/hosts/maya/plugins/publish/validate_unreal_staticmesh_naming.py similarity index 97% rename from pype/plugins/maya/publish/validate_unreal_staticmesh_naming.py rename to pype/hosts/maya/plugins/publish/validate_unreal_staticmesh_naming.py index 4116c5f534..8bda849b3f 100644 --- a/pype/plugins/maya/publish/validate_unreal_staticmesh_naming.py +++ b/pype/hosts/maya/plugins/publish/validate_unreal_staticmesh_naming.py @@ -3,7 +3,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action import re @@ -51,7 +51,7 @@ class ValidateUnrealStaticmeshName(pyblish.api.InstancePlugin): hosts = ["maya"] families = ["unrealStaticMesh"] label = "Unreal StaticMesh Name" - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] regex_mesh = r"SM_(?P.*)_(\d{2})" regex_collision = r"((UBX)|(UCP)|(USP)|(UCX))_(?P.*)_(\d{2})" diff --git a/pype/plugins/maya/publish/validate_unreal_up_axis.py b/pype/hosts/maya/plugins/publish/validate_unreal_up_axis.py similarity index 100% rename from pype/plugins/maya/publish/validate_unreal_up_axis.py rename to pype/hosts/maya/plugins/publish/validate_unreal_up_axis.py diff --git a/pype/plugins/maya/publish/validate_vray_distributed_rendering.py b/pype/hosts/maya/plugins/publish/validate_vray_distributed_rendering.py similarity index 98% rename from pype/plugins/maya/publish/validate_vray_distributed_rendering.py rename to pype/hosts/maya/plugins/publish/validate_vray_distributed_rendering.py index 6bec0c88dd..0c3086fee0 100644 --- a/pype/plugins/maya/publish/validate_vray_distributed_rendering.py +++ b/pype/hosts/maya/plugins/publish/validate_vray_distributed_rendering.py @@ -1,6 +1,6 @@ import pyblish.api import pype.api -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib from maya import cmds diff --git a/pype/plugins/maya/publish/validate_vray_referenced_aovs.py b/pype/hosts/maya/plugins/publish/validate_vray_referenced_aovs.py similarity index 98% rename from pype/plugins/maya/publish/validate_vray_referenced_aovs.py rename to pype/hosts/maya/plugins/publish/validate_vray_referenced_aovs.py index 120677021d..f451a08b0b 100644 --- a/pype/plugins/maya/publish/validate_vray_referenced_aovs.py +++ b/pype/hosts/maya/plugins/publish/validate_vray_referenced_aovs.py @@ -4,7 +4,7 @@ import pyblish.api import types from maya import cmds -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateVrayReferencedAOVs(pyblish.api.InstancePlugin): diff --git a/pype/plugins/maya/publish/validate_vray_translator_settings.py b/pype/hosts/maya/plugins/publish/validate_vray_translator_settings.py similarity index 100% rename from pype/plugins/maya/publish/validate_vray_translator_settings.py rename to pype/hosts/maya/plugins/publish/validate_vray_translator_settings.py diff --git a/pype/plugins/maya/publish/validate_vrayproxy.py b/pype/hosts/maya/plugins/publish/validate_vrayproxy.py similarity index 100% rename from pype/plugins/maya/publish/validate_vrayproxy.py rename to pype/hosts/maya/plugins/publish/validate_vrayproxy.py diff --git a/pype/plugins/maya/publish/validate_vrayproxy_members.py b/pype/hosts/maya/plugins/publish/validate_vrayproxy_members.py similarity index 90% rename from pype/plugins/maya/publish/validate_vrayproxy_members.py rename to pype/hosts/maya/plugins/publish/validate_vrayproxy_members.py index 75946a6787..829c2d67ae 100644 --- a/pype/plugins/maya/publish/validate_vrayproxy_members.py +++ b/pype/hosts/maya/plugins/publish/validate_vrayproxy_members.py @@ -3,7 +3,7 @@ import pype.api from maya import cmds -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateVrayProxyMembers(pyblish.api.InstancePlugin): @@ -13,7 +13,7 @@ class ValidateVrayProxyMembers(pyblish.api.InstancePlugin): label = 'VRay Proxy Members' hosts = ['maya'] families = ['vrayproxy'] - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] def process(self, instance): diff --git a/pype/plugins/maya/publish/validate_yeti_renderscript_callbacks.py b/pype/hosts/maya/plugins/publish/validate_yeti_renderscript_callbacks.py similarity index 100% rename from pype/plugins/maya/publish/validate_yeti_renderscript_callbacks.py rename to pype/hosts/maya/plugins/publish/validate_yeti_renderscript_callbacks.py diff --git a/pype/plugins/maya/publish/validate_yeti_rig_cache_state.py b/pype/hosts/maya/plugins/publish/validate_yeti_rig_cache_state.py similarity index 94% rename from pype/plugins/maya/publish/validate_yeti_rig_cache_state.py rename to pype/hosts/maya/plugins/publish/validate_yeti_rig_cache_state.py index 1ed145fecd..7eb3153d1e 100644 --- a/pype/plugins/maya/publish/validate_yeti_rig_cache_state.py +++ b/pype/hosts/maya/plugins/publish/validate_yeti_rig_cache_state.py @@ -1,7 +1,7 @@ import pyblish.api import pype.action import maya.cmds as cmds -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateYetiRigCacheState(pyblish.api.InstancePlugin): @@ -18,7 +18,7 @@ class ValidateYetiRigCacheState(pyblish.api.InstancePlugin): hosts = ["maya"] families = ["yetiRig"] actions = [pype.action.RepairAction, - pype.hosts.maya.action.SelectInvalidAction] + pype.hosts.maya.api.action.SelectInvalidAction] def process(self, instance): invalid = self.get_invalid(instance) diff --git a/pype/plugins/maya/publish/validate_yeti_rig_input_in_instance.py b/pype/hosts/maya/plugins/publish/validate_yeti_rig_input_in_instance.py similarity index 93% rename from pype/plugins/maya/publish/validate_yeti_rig_input_in_instance.py rename to pype/hosts/maya/plugins/publish/validate_yeti_rig_input_in_instance.py index 647a66cb57..c0bd46efc1 100644 --- a/pype/plugins/maya/publish/validate_yeti_rig_input_in_instance.py +++ b/pype/hosts/maya/plugins/publish/validate_yeti_rig_input_in_instance.py @@ -2,7 +2,7 @@ from maya import cmds import pyblish.api import pype.api -import pype.hosts.maya.action +import pype.hosts.maya.api.action class ValidateYetiRigInputShapesInInstance(pyblish.api.Validator): @@ -12,7 +12,7 @@ class ValidateYetiRigInputShapesInInstance(pyblish.api.Validator): hosts = ["maya"] families = ["yetiRig"] label = "Yeti Rig Input Shapes In Instance" - actions = [pype.hosts.maya.action.SelectInvalidAction] + actions = [pype.hosts.maya.api.action.SelectInvalidAction] def process(self, instance): diff --git a/pype/plugins/maya/publish/validate_yeti_rig_settings.py b/pype/hosts/maya/plugins/publish/validate_yeti_rig_settings.py similarity index 100% rename from pype/plugins/maya/publish/validate_yeti_rig_settings.py rename to pype/hosts/maya/plugins/publish/validate_yeti_rig_settings.py diff --git a/pype/resources/maya/workspace.mel b/pype/hosts/maya/resources/workspace.mel similarity index 100% rename from pype/resources/maya/workspace.mel rename to pype/hosts/maya/resources/workspace.mel diff --git a/pype/setup/maya/userSetup.py b/pype/hosts/maya/startup/userSetup.py similarity index 95% rename from pype/setup/maya/userSetup.py rename to pype/hosts/maya/startup/userSetup.py index 6ee008c5fc..a562d3ab9e 100644 --- a/pype/setup/maya/userSetup.py +++ b/pype/hosts/maya/startup/userSetup.py @@ -1,6 +1,6 @@ import os from pype.api import get_project_settings -import pype.hosts.maya.lib as mlib +import pype.hosts.maya.api.lib as mlib from maya import cmds diff --git a/pype/hosts/nuke/api/lib.py b/pype/hosts/nuke/api/lib.py index 96067a3d48..20b00b2d7a 100644 --- a/pype/hosts/nuke/api/lib.py +++ b/pype/hosts/nuke/api/lib.py @@ -1371,6 +1371,7 @@ class ExporterReviewMov(ExporterReview): self.viewer_lut_raw = klass.viewer_lut_raw self.bake_colorspace_fallback = klass.bake_colorspace_fallback self.bake_colorspace_main = klass.bake_colorspace_main + self.write_colorspace = instance.data["colorspace"] self.name = name or "baked" self.ext = ext or "mov" @@ -1416,6 +1417,8 @@ class ExporterReviewMov(ExporterReview): r_node["origfirst"].setValue(self.first_frame) r_node["last"].setValue(self.last_frame) r_node["origlast"].setValue(self.last_frame) + r_node["colorspace"].setValue(self.write_colorspace) + # connect self._temp_nodes.append(r_node) self.previous_node = r_node diff --git a/pype/hosts/nuke/plugins/load/load_image.py b/pype/hosts/nuke/plugins/load/load_image.py index ac54a90bc0..dcaf31c9e3 100644 --- a/pype/hosts/nuke/plugins/load/load_image.py +++ b/pype/hosts/nuke/plugins/load/load_image.py @@ -186,6 +186,7 @@ class LoadImage(api.Loader): last = first = int(frame_number) # Set the global in to the start frame of the sequence + node["file"].setValue(file) node["origfirst"].setValue(first) node["first"].setValue(first) node["origlast"].setValue(last) diff --git a/pype/modules/deadline/plugins/publish/submit_maya_deadline.py b/pype/modules/deadline/plugins/publish/submit_maya_deadline.py index 5811ff4886..08b7479350 100644 --- a/pype/modules/deadline/plugins/publish/submit_maya_deadline.py +++ b/pype/modules/deadline/plugins/publish/submit_maya_deadline.py @@ -35,7 +35,7 @@ from maya import cmds from avalon import api import pyblish.api -from pype.hosts.maya import lib +from pype.hosts.maya.api import lib # Documentation for keys available at: # https://docs.thinkboxsoftware.com diff --git a/pype/modules/websocket_server/stubs/photoshop_server_stub.py b/pype/modules/websocket_server/stubs/photoshop_server_stub.py index 04fb7eff0f..d223153797 100644 --- a/pype/modules/websocket_server/stubs/photoshop_server_stub.py +++ b/pype/modules/websocket_server/stubs/photoshop_server_stub.py @@ -135,13 +135,17 @@ class PhotoshopServerStub(): def group_selected_layers(self, name): """ Group selected layers into new LayerSet (eg. group) - Returns: + Returns: (Layer) """ res = self.websocketserver.call(self.client.call ('Photoshop.group_selected_layers', name=name) ) - return self._to_records(res) + res = self._to_records(res) + + if res: + return res.pop() + raise ValueError("No group record returned") def get_selected_layers(self): """ diff --git a/pype/settings/defaults/system_settings/applications.json b/pype/settings/defaults/system_settings/applications.json index ab2fdcbb57..184da76588 100644 --- a/pype/settings/defaults/system_settings/applications.json +++ b/pype/settings/defaults/system_settings/applications.json @@ -17,7 +17,7 @@ ] }, "PYTHONPATH": [ - "{PYPE_ROOT}/pype/setup/maya", + "{PYPE_ROOT}/pype/hosts/maya/startup", "{PYPE_REPOS_ROOT}/avalon-core/setup/maya", "{PYPE_REPOS_ROOT}/maya-look-assigner", "{PYTHONPATH}" diff --git a/repos/maya-look-assigner b/repos/maya-look-assigner index baf19fe86a..7adabe8f0e 160000 --- a/repos/maya-look-assigner +++ b/repos/maya-look-assigner @@ -1 +1 @@ -Subproject commit baf19fe86a836259c0ce050b229cd521625708bf +Subproject commit 7adabe8f0e6858bfe5b6bf0b39bd428ed72d0452