def install(): """Install Premiere-specific functionality of avalon-core. This is where you install menus and register families, data and loaders into Premiere. It is called automatically when installing via `api.install(premiere)`. See the Maya equivalent for inspiration on how to implement this. """ # Disable all families except for the ones we explicitly want to see family_states = ["imagesequence", "mov"] avalon.data["familiesStateDefault"] = False avalon.data["familiesStateToggled"] = family_states log.info("pype.hosts.premiere installed") pyblish.register_host("premiere") pyblish.register_plugin_path(PUBLISH_PATH) log.info("Registering Premiera plug-ins..") avalon.register_plugin_path(avalon.Loader, LOAD_PATH) avalon.register_plugin_path(avalon.Creator, CREATE_PATH)
def install(): """Install resolve-specific functionality of avalon-core. This is where you install menus and register families, data and loaders into resolve. It is called automatically when installing via `api.install(resolve)`. See the Maya equivalent for inspiration on how to implement this. """ from .. import get_resolve_module # Disable all families except for the ones we explicitly want to see family_states = [ "imagesequence", "render2d", "plate", "render", "mov", "clip" ] avalon.data["familiesStateDefault"] = False avalon.data["familiesStateToggled"] = family_states log.info("pype.hosts.resolve installed") pyblish.register_host("resolve") pyblish.register_plugin_path(PUBLISH_PATH) log.info("Registering DaVinci Resovle plug-ins..") avalon.register_plugin_path(avalon.Loader, LOAD_PATH) avalon.register_plugin_path(avalon.Creator, CREATE_PATH) avalon.register_plugin_path(avalon.InventoryAction, INVENTORY_PATH) # register callback for switching publishable pyblish.register_callback("instanceToggled", on_pyblish_instance_toggled) get_resolve_module()
def install(): pyblish.register_plugin_path(PUBLISH_PATH) avalon.register_plugin_path(avalon.Loader, LOAD_PATH) avalon.register_plugin_path(avalon.Creator, CREATE_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"] = ["colorbleed.imagesequence"]
def install(): pyblish.register_plugin_path(PUBLISH_PATH) avalon.register_plugin_path(avalon.Loader, LOAD_PATH) avalon.register_plugin_path(avalon.Creator, CREATE_PATH) avalon.register_plugin_path(avalon.InventoryAction, INVENTORY_PATH) # install callbacks print("Installing callbacks ... ") avalon.before("save", callbacks.before_save) avalon.on("save", callbacks.on_save) avalon.on("open", callbacks.on_open) avalon.on("taskChanged", callbacks.on_task_changed) # Config Pyblish QML pyblish_qml.settings.Directions = { "Local Publish": { "awesomeIcon": "motorcycle", "description": "Publish from this computer", "targets": ["default", "localhost"], }, "Deadline Publish": { "awesomeIcon": "rocket", "description": "Publish in Deadline render farm", "targets": ["default", "deadline"], }, }
def install(): """Install fusion-specific functionality of avalon-core. This is where you install menus and register families, data and loaders into fusion. It is called automatically when installing via `api.install(avalon.fusion)` See the Maya equivalent for inspiration on how to implement this. """ # Disable all families except for the ones we explicitly want to see family_states = ["imagesequence", "camera", "pointcache"] avalon.data["familiesStateDefault"] = False avalon.data["familiesStateToggled"] = family_states log.info("openpype.hosts.fusion installed") pyblish.register_host("fusion") pyblish.register_plugin_path(PUBLISH_PATH) log.info("Registering Fusion plug-ins..") avalon.register_plugin_path(avalon.Loader, LOAD_PATH) avalon.register_plugin_path(avalon.Creator, CREATE_PATH) avalon.register_plugin_path(avalon.InventoryAction, INVENTORY_PATH) pyblish.register_callback("instanceToggled", on_pyblish_instance_toggled)
def install(): ''' Installing all requarements for Nuke host ''' log.info("Registering Nuke plug-ins..") pyblish.register_plugin_path(PUBLISH_PATH) avalon.register_plugin_path(avalon.Loader, LOAD_PATH) avalon.register_plugin_path(avalon.Creator, CREATE_PATH) avalon.register_plugin_path(avalon.InventoryAction, INVENTORY_PATH) # Register Avalon event for workfiles loading. avalon.on("workio.open_file", lib.check_inventory_versions) pyblish.register_callback("instanceToggled", on_pyblish_instance_toggled) workfile_settings = lib.WorkfileSettings() # Disable all families except for the ones we explicitly want to see family_states = ["write", "review", "nukenodes" "gizmo"] avalon.data["familiesStateDefault"] = False avalon.data["familiesStateToggled"] = family_states # Workfiles. launch_workfiles = os.environ.get("WORKFILES_STARTUP") if launch_workfiles: nuke.addOnCreate(launch_workfiles_app, nodeClass="Root") # Set context settings. nuke.addOnCreate(workfile_settings.set_context_settings, nodeClass="Root") # nuke.addOnCreate(workfile_settings.set_favorites, nodeClass="Root") menu.install()
def install(): """ Installing Nukestudio integration for avalon Args: config (obj): avalon config module `pype` in our case, it is not used but required by avalon.api.install() """ # adding all events _register_events() log.info("Registering NukeStudio plug-ins..") pyblish.register_host("nukestudio") pyblish.register_plugin_path(PUBLISH_PATH) avalon.register_plugin_path(avalon.Loader, LOAD_PATH) avalon.register_plugin_path(avalon.Creator, CREATE_PATH) avalon.register_plugin_path(avalon.InventoryAction, INVENTORY_PATH) # Disable all families except for the ones we explicitly want to see family_states = ["write", "review", "plate"] avalon.data["familiesStateDefault"] = False avalon.data["familiesStateToggled"] = family_states # install menu menu_install() # register hiero events register_hiero_events()
def install(): log.info("Registering global plug-ins..") pyblish.register_plugin_path(PUBLISH_PATH) pyblish.register_discovery_filter(filter_pyblish_plugins) avalon.register_plugin_path(avalon.Loader, LOAD_PATH) # apply monkey patched discover to original one avalon.discover = patched_discover
def install(): """Install Blender configuration for Avalon.""" sys.excepthook = pype_excepthook_handler pyblish.register_plugin_path(str(PUBLISH_PATH)) avalon.register_plugin_path(avalon.Loader, str(LOAD_PATH)) avalon.register_plugin_path(avalon.Creator, str(CREATE_PATH)) avalon.on("new", on_new) avalon.on("open", on_open)
def uninstall(): # pragma: no cover print("Deregistering global plug-ins..") pyblish.deregister_plugin_path(PUBLISH_PATH) avalon.deregister_plugin_path(avalon.Loader, LOADER_PATH) avalon.deregister_plugin_path(avalon.Loader, DEV_LOADER_PATH) # Restore pyblish-base default plugins pyblish.register_plugin_path(PYBLISH_DEFAULT) self.installed = False
def install(): # pragma: no cover print("Registering global plug-ins..") pyblish.register_plugin_path(PUBLISH_PATH) avalon.register_plugin_path(avalon.InventoryAction, INVENTORY_PATH) avalon.register_plugin_path(avalon.Loader, LOADER_PATH) avalon.register_plugin_path(avalon.Loader, DEV_LOADER_PATH) # Remove pyblish-base default plugins pyblish.deregister_plugin_path(PYBLISH_DEFAULT) self.installed = True
def install(): pyblish.register_plugin_path(PUBLISH_PATH) avalon.register_plugin_path(avalon.Loader, LOAD_PATH) avalon.register_plugin_path(avalon.Creator, CREATE_PATH) menu.install() avalon.on("init", on_init) avalon.on("new", on_new) avalon.on("save", on_save) avalon.before("save", before_save)
def install(): print("Installing Pype config...") 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) pyblish.register_callback("instanceToggled", on_pyblish_instance_toggled) avalon.on("application.launched", application_launch)
def install(): pyblish.register_plugin_path(PUBLISH_PATH) avalon.register_plugin_path(avalon.Loader, LOAD_PATH) avalon.register_plugin_path(avalon.Creator, CREATE_PATH) avalon.register_plugin_path(avalon.InventoryAction, INVENTORY_PATH) # install callbacks log.info("Installing callbacks ... ") avalon.on("init", on_init) avalon.before("save", before_save) avalon.on("save", on_save) avalon.on("open", on_open)
def install(): # pragma: no cover from . import menu, callbacks # install pipeline menu menu.install() # install pipeline plugins pyblish.register_plugin_path(PUBLISH_PATH) avalon.register_plugin_path(avalon.Loader, LOAD_PATH) avalon.register_plugin_path(avalon.Creator, CREATE_PATH) avalon.register_plugin_path(avalon.InventoryAction, INVENTORY_PATH) # install callbacks log.info("Installing callbacks ... ") avalon.on("init", callbacks.on_init) avalon.on("new", callbacks.on_new) avalon.on("open", callbacks.on_open) avalon.on("save", callbacks.on_save) avalon.before("save", callbacks.before_save) log.info("Overriding existing event 'taskChanged'") override_event("taskChanged", callbacks.on_task_changed) # Temporarily workaround # script node: uiConfigurationScriptNode # (TODO): Should try to cleanup that script node if possible... mel.eval("global proc CgAbBlastPanelOptChangeCallback(string $pass){}") log.info("Unknown proc <CgAbBlastPanelOptChangeCallback> " "workaround init.") mel.eval("global proc look(){}") log.info("Unknown proc <look> workaround init.") _override() cmds.evalDeferred("import reveries.maya;" "reveries.maya._override_deferred()") # Config Pyblish QML pyblish_qml.settings.Directions = { "Local Publish": { "awesomeIcon": "motorcycle", "description": "Publish from this computer", "targets": ["default", "localhost"], }, "Deadline Publish": { "awesomeIcon": "rocket", "description": "Publish in Deadline render farm", "targets": ["default", "deadline"], }, } self.installed = True
def install(): print("Registering Fusion plug-ins..") pyblish.register_plugin_path(PUBLISH_PATH) avalon.register_plugin_path(avalon.Loader, LOAD_PATH) avalon.register_plugin_path(avalon.Creator, CREATE_PATH) avalon.register_plugin_path(avalon.InventoryAction, INVENTORY_PATH) pyblish.register_callback("instanceToggled", on_pyblish_instance_toggled) # Disable all families except for the ones we explicitly want to see family_states = ["imagesequence", "camera", "pointcache"] avalon.data["familiesStateDefault"] = False avalon.data["familiesStateToggled"] = family_states
def install(): # install pipeline menu menu.install() # install pipeline plugins pyblish.register_plugin_path(PUBLISH_PATH) # install task plugins install_tasks() # install callbacks log.info("Installing callbacks ... ") avalon.on("taskChanged", on_task_changed) avalon.on("init", on_init) avalon.on("new", on_new) avalon.on("save", on_save) avalon.before("save", before_save)
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("Installing callbacks ... ") avalon.on("init", on_init) avalon.before("save", before_save) avalon.on("save", on_save) avalon.on("open", on_open) pyblish.register_callback("instanceToggled", on_pyblish_instance_toggled) log.info("Setting default family states for loader..") avalon.data["familiesStateToggled"] = ["imagesequence"]
def test_extracted_traceback_contains_correct_backtrace(): api.register_plugin_path(os.path.dirname(__file__)) context = api.Context() context.create_instance('test instance') plugins = api.discover() plugins = [p for p in plugins if p.__name__ in ('FailingExplicitPlugin', 'FailingImplicitPlugin')] util.publish(context, plugins) for result in context.data['results']: assert result["error"].traceback[0] == plugins[0].__module__ formatted_tb = result['error'].formatted_traceback assert formatted_tb.startswith('Traceback (most recent call last):\n') assert formatted_tb.endswith('\nException: A test exception\n') assert 'File "{0}",'.format(plugins[0].__module__) in formatted_tb
def register_additional_plugin_paths(): '''Adding additional host plugins ''' for host in ADDITIONAL_PLUGINS: publish_path = os.path.join(PLUGINS_DIR, host, "publish").replace("\\", "/") pyblish.register_plugin_path(publish_path) # adding path to PUBLISH_PATH environment if os.getenv("PUBLISH_PATH", None): os.environ["PUBLISH_PATH"] = os.pathsep.join( os.environ["PUBLISH_PATH"].split(os.pathsep) + [publish_path]) else: os.environ["PUBLISH_PATH"] = publish_path log.info("Registered additional plugin path: " "{}".format(publish_path))
def install(config): """ Installing Nukestudio integration for avalon Args: config (obj): avalon config module `pype` in our case, it is not used but required by avalon.api.install() """ # adding all events _register_events() log.info("Registering NukeStudio plug-ins..") pyblish.register_host("nukestudio") pyblish.register_plugin_path(PUBLISH_PATH) avalon.register_plugin_path(avalon.Loader, LOAD_PATH) avalon.register_plugin_path(avalon.Creator, CREATE_PATH) avalon.register_plugin_path(avalon.InventoryAction, INVENTORY_PATH) # Disable all families except for the ones we explicitly want to see family_states = [ "write", "review" ] avalon.data["familiesStateDefault"] = False avalon.data["familiesStateToggled"] = family_states # install menu menu_install() # Workfiles. launch_workfiles = os.environ.get("WORKFILES_STARTUP") if launch_workfiles: hiero.core.events.registerInterest( "kAfterNewProjectCreated", launch_workfiles_app ) # Add tags on project load. hiero.core.events.registerInterest( "kAfterProjectLoad", add_tags )
def install(): api.set_avalon_workdir() log.info("Registering Aport plug-ins..") pyblish.register_plugin_path(PUBLISH_PATH) avalon.register_plugin_path(avalon.Loader, LOAD_PATH) avalon.register_plugin_path(avalon.Creator, CREATE_PATH) avalon.register_plugin_path(avalon.InventoryAction, INVENTORY_PATH) # Disable all families except for the ones we explicitly want to see family_states = ["imagesequence", "mov"] avalon.data["familiesStateDefault"] = False avalon.data["familiesStateToggled"] = family_states # load data from templates api.load_data_from_templates() # launch pico server pico_server_launch()
def install(): from . import callbacks, pipeline # install pipeline menu menu.install() # install pipeline plugins log.info("Registering Nuke plug-ins..") pyblish.register_plugin_path(PUBLISH_PATH) avalon.register_plugin_path(avalon.Loader, LOAD_PATH) avalon.register_plugin_path(avalon.Creator, CREATE_PATH) avalon.register_plugin_path(avalon.InventoryAction, INVENTORY_PATH) # install callbacks log.info("Installing callbacks ... ") avalon.on("taskChanged", callbacks.on_task_changed) nuke.callbacks.addOnScriptSave(callbacks.on_save) nuke.callbacks.addOnScriptLoad(callbacks.on_load) nuke.callbacks.addBeforeRender(callbacks.before_render) pipeline.eval_deferred(callbacks.on_task_changed)
def install(): log.info("Registering global plug-ins..") pyblish.register_plugin_path(PUBLISH_PATH) pyblish.register_discovery_filter(filter_pyblish_plugins) avalon.register_plugin_path(avalon.Loader, LOAD_PATH) # Register project specific plugins project_name = os.environ.get("AVALON_PROJECT") if PROJECT_PLUGINS_PATH and project_name: for path in PROJECT_PLUGINS_PATH.split(os.pathsep): if not path: continue plugin_path = os.path.join(path, project_name, "plugins") if os.path.exists(plugin_path): pyblish.register_plugin_path(plugin_path) avalon.register_plugin_path(avalon.Loader, plugin_path) avalon.register_plugin_path(avalon.Creator, plugin_path) # apply monkey patched discover to original one avalon.discover = patched_discover
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("Installing callbacks ... ") avalon.before("save", before_save) avalon.on("save", on_save) avalon.on("open", on_open) avalon.on("new", on_new) pyblish.register_callback("instanceToggled", on_pyblish_instance_toggled) log.info("Setting default family states for loader..") avalon.data["familiesStateToggled"] = ["colorbleed.imagesequence"] # Set asset FPS for the empty scene directly after launch of Houdini # so it initializes into the correct scene FPS _set_asset_fps()
def install(): """Install Unreal configuration for Avalon.""" print("-=" * 40) logo = '''. . ____________ / \\ __ \\ \\ \\ \\/_\\ \\ \\ \\ _____/ ______ \\ \\ \\___// \\ \\ \\ \\____\\ \\ \\_____\\ \\/_____/ \\/______/ PYPE Club . . ''' print(logo) print("installing OpenPype for Unreal ...") print("-=" * 40) logger.info("installing OpenPype for Unreal") pyblish.register_plugin_path(str(PUBLISH_PATH)) avalon.register_plugin_path(avalon.Loader, str(LOAD_PATH)) avalon.register_plugin_path(avalon.Creator, str(CREATE_PATH))
def install(): api.set_avalon_workdir() reload_config() log.info("Registering Nuke plug-ins..") pyblish.register_plugin_path(PUBLISH_PATH) avalon.register_plugin_path(avalon.Loader, LOAD_PATH) avalon.register_plugin_path(avalon.Creator, CREATE_PATH) avalon.register_plugin_path(avalon.InventoryAction, INVENTORY_PATH) pyblish.register_callback("instanceToggled", on_pyblish_instance_toggled) # Disable all families except for the ones we explicitly want to see family_states = ["write", "review"] avalon.data["familiesStateDefault"] = False avalon.data["familiesStateToggled"] = family_states menu.install() # load data from templates api.load_data_from_templates()
def install(): log.info("Dress on.") # install pipeline menu menu.install() # install pipeline plugins pyblish.register_plugin_path(PUBLISH_PATH) avalon.register_plugin_path(avalon.Loader, LOAD_PATH) avalon.register_plugin_path(avalon.Creator, CREATE_PATH) # install callbacks log.info("Installing callbacks ... ") avalon.on("init", on_init) avalon.on("new", on_new) avalon.on("save", on_save) # Temporarily workaround # script node: uiConfigurationScriptNode mel.eval("global proc CgAbBlastPanelOptChangeCallback(string $pass){}") log.info("Unknown proc <CgAbBlastPanelOptChangeCallback> " "workaround init.") # Load Alembic cmds.loadPlugin("AbcExport.mll", quiet=True) cmds.loadPlugin("AbcImport.mll", quiet=True)
def install(): # pragma: no cover from . import menu, callbacks # install pipeline menu menu.install() # install pipeline plugins pyblish.register_plugin_path(PUBLISH_PATH) avalon.register_plugin_path(avalon.Loader, LOAD_PATH) avalon.register_plugin_path(avalon.Creator, CREATE_PATH) avalon.register_plugin_path(avalon.InventoryAction, INVENTORY_PATH) # install callbacks log.info("Installing callbacks ... ") avalon.on("init", callbacks.on_init) avalon.on("new", callbacks.on_new) avalon.on("open", callbacks.on_open) avalon.on("save", callbacks.on_save) avalon.before("save", callbacks.before_save) log.info("Overriding existing event 'taskChanged'") override_event("taskChanged", callbacks.on_task_changed) # Temporarily workaround # script node: uiConfigurationScriptNode # (TODO): Should try to cleanup that script node if possible... mel.eval("global proc CgAbBlastPanelOptChangeCallback(string $pass){}") log.info("Unknown proc <CgAbBlastPanelOptChangeCallback> " "workaround init.") mel.eval("global proc look(){}") log.info("Unknown proc <look> workaround init.") _override() cmds.evalDeferred("import reveries.maya;" "reveries.maya._override_deferred()") self.installed = True
def install(): log.info("Registering global plug-ins..") pyblish.register_plugin_path(PUBLISH_PATH) pyblish.register_discovery_filter(filter_pyblish_plugins) avalon.register_plugin_path(avalon.Loader, LOAD_PATH) # Register project specific plugins project_name = os.environ.get("AVALON_PROJECT") if PROJECT_PLUGINS_PATH and project_name: for path in PROJECT_PLUGINS_PATH.split(os.pathsep): if not path: continue plugin_path = os.path.join(path, project_name, "plugins") if os.path.exists(plugin_path): pyblish.register_plugin_path(plugin_path) avalon.register_plugin_path(avalon.Loader, plugin_path) avalon.register_plugin_path(avalon.Creator, plugin_path) avalon.register_plugin_path( avalon.InventoryAction, plugin_path ) # Register studio specific plugins if STUDIO_PLUGINS_PATH and project_name: for path in STUDIO_PLUGINS_PATH.split(os.pathsep): if not path: continue if os.path.exists(path): pyblish.register_plugin_path(path) avalon.register_plugin_path(avalon.Loader, path) avalon.register_plugin_path(avalon.Creator, path) avalon.register_plugin_path(avalon.InventoryAction, path) if project_name: anatomy = Anatomy(project_name) anatomy.set_root_environments() avalon.register_root(anatomy.roots) # apply monkey patched discover to original one avalon.discover = patched_discover