Host API required Work Files tool
open_file(filepath)
Loading project
Source code in client/ayon_resolve/api/workio.py
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141 | def open_file(filepath):
"""
Loading project
"""
from . import bmdvr
project_manager = get_project_manager()
page = bmdvr.GetCurrentPage()
if page is not None:
# Save current project only if Resolve has an active page, otherwise
# we consider Resolve being in a pre-launch state (no open UI yet)
resolve_project = get_current_resolve_project()
# check if resolve_project is string or binary name
if isinstance(resolve_project, str):
print(f"Saving current resolve project: {resolve_project}")
project_manager.SaveProject()
file = os.path.basename(filepath)
fname, _ = os.path.splitext(file)
# handle project db override if set
project_name = get_current_project_name()
settings = get_project_settings(project_name)
override_is_valid = True
if settings["resolve"]["project_db"].get("enabled", False):
log.info("Handling project database override...")
overrides = settings["resolve"]["project_db"]
override_is_valid = handle_project_db_override(
project_name, overrides
)
if not override_is_valid:
return False
if settings["resolve"]["project_db"]["db_type"] == "Disk":
handle_local_vs_exported_project(
settings, project_name, filepath
)
try:
# load project from input path
resolve_project = project_manager.LoadProject(fname)
log.info(f"Project {resolve_project.GetName()} opened...")
except AttributeError:
log.warning((f"Project with name `{fname}` does not exist! It will "
f"be imported from {filepath} and then loaded..."))
if project_manager.ImportProject(filepath):
# load project from input path
resolve_project = project_manager.LoadProject(fname)
log.info(f"Project imported/loaded {resolve_project.GetName()}...")
return True
return False
return True
|