mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 16:34:53 +01:00
58 lines
2.2 KiB
Python
58 lines
2.2 KiB
Python
import os
|
|
import importlib
|
|
from pype.lib import PreLaunchHook
|
|
from pype.hosts.resolve import utils
|
|
|
|
|
|
class ResolvePrelaunch(PreLaunchHook):
|
|
"""
|
|
This hook will check if current workfile path has Resolve
|
|
project inside. IF not, it initialize it and finally it pass
|
|
path to the project by environment variable to Premiere launcher
|
|
shell script.
|
|
"""
|
|
app_groups = ["resolve"]
|
|
|
|
def execute(self):
|
|
# making sure pyton 3.6 is installed at provided path
|
|
py36_dir = os.path.normpath(self.env.get("PYTHON36_RESOLVE", ""))
|
|
assert os.path.isdir(py36_dir), (
|
|
"Python 3.6 is not installed at the provided folder path. Either "
|
|
"make sure the `environments\resolve.json` is having correctly "
|
|
"set `PYTHON36_RESOLVE` or make sure Python 3.6 is installed "
|
|
f"in given path. \nPYTHON36_RESOLVE: `{py36_dir}`"
|
|
)
|
|
self.log.info(f"Path to Resolve Python folder: `{py36_dir}`...")
|
|
self.env["PYTHON36_RESOLVE"] = py36_dir
|
|
|
|
# setting utility scripts dir for scripts syncing
|
|
us_dir = os.path.normpath(
|
|
self.env.get("RESOLVE_UTILITY_SCRIPTS_DIR", "")
|
|
)
|
|
assert os.path.isdir(us_dir), (
|
|
"Resolve utility script dir does not exists. Either make sure "
|
|
"the `environments\resolve.json` is having correctly set "
|
|
"`RESOLVE_UTILITY_SCRIPTS_DIR` or reinstall DaVinci Resolve. \n"
|
|
f"RESOLVE_UTILITY_SCRIPTS_DIR: `{us_dir}`"
|
|
)
|
|
self.log.debug(f"-- us_dir: `{us_dir}`")
|
|
|
|
# correctly format path for pre python script
|
|
pre_py_sc = os.path.normpath(self.env.get("PRE_PYTHON_SCRIPT", ""))
|
|
self.env["PRE_PYTHON_SCRIPT"] = pre_py_sc
|
|
self.log.debug(f"-- pre_py_sc: `{pre_py_sc}`...")
|
|
try:
|
|
__import__("pype.hosts.resolve")
|
|
__import__("pyblish")
|
|
|
|
except ImportError:
|
|
self.log.warning(
|
|
"pyblish: Could not load Resolve integration.",
|
|
exc_info=True
|
|
)
|
|
|
|
else:
|
|
# Resolve Setup integration
|
|
importlib.reload(utils)
|
|
self.log.debug(f"-- utils.__file__: `{utils.__file__}`")
|
|
utils.setup(self.env)
|