mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 12:54:40 +01:00
47 lines
1 KiB
Python
47 lines
1 KiB
Python
"""Host API required Work Files tool"""
|
|
import sys
|
|
import os
|
|
|
|
from openpype.pipeline import HOST_WORKFILE_EXTENSIONS
|
|
|
|
from .pipeline import get_current_comp
|
|
|
|
|
|
def file_extensions():
|
|
return HOST_WORKFILE_EXTENSIONS["fusion"]
|
|
|
|
|
|
def has_unsaved_changes():
|
|
comp = get_current_comp()
|
|
return comp.GetAttrs()["COMPB_Modified"]
|
|
|
|
|
|
def save_file(filepath):
|
|
comp = get_current_comp()
|
|
comp.Save(filepath)
|
|
|
|
|
|
def open_file(filepath):
|
|
# Hack to get fusion, see
|
|
# openpype.hosts.fusion.api.pipeline.get_current_comp()
|
|
fusion = getattr(sys.modules["__main__"], "fusion", None)
|
|
|
|
return fusion.LoadComp(filepath)
|
|
|
|
|
|
def current_file():
|
|
comp = get_current_comp()
|
|
current_filepath = comp.GetAttrs()["COMPS_FileName"]
|
|
if not current_filepath:
|
|
return None
|
|
|
|
return current_filepath
|
|
|
|
|
|
def work_root(session):
|
|
work_dir = session["AVALON_WORKDIR"]
|
|
scene_dir = session.get("AVALON_SCENEDIR")
|
|
if scene_dir:
|
|
return os.path.join(work_dir, scene_dir)
|
|
else:
|
|
return work_dir
|