move public method above private

This commit is contained in:
Jakub Trllo 2025-04-28 17:04:18 +02:00
parent 98acfd8dfc
commit 60c2c4e018

View file

@ -626,63 +626,7 @@ class PublishWorkfilesModel:
self._cached_extensions = None
self._cached_repre_extensions = None
@property
def _extensions(self):
if self._cached_extensions is None:
exts = self._controller.get_workfile_extensions() or []
self._cached_extensions = exts
return self._cached_extensions
@property
def _repre_extensions(self):
if self._cached_repre_extensions is None:
self._cached_repre_extensions = {
ext.lstrip(".") for ext in self._extensions
}
return self._cached_repre_extensions
def _file_item_from_representation(
self, repre_entity, project_anatomy, author, task_name=None
):
if task_name is not None:
task_info = repre_entity["context"].get("task")
if not task_info or task_info["name"] != task_name:
return None
# Filter by extension
extensions = self._repre_extensions
workfile_path = None
for repre_file in repre_entity["files"]:
ext = (
os.path.splitext(repre_file["name"])[1]
.lower()
.lstrip(".")
)
if ext in extensions:
workfile_path = repre_file["path"]
break
if not workfile_path:
return None
try:
workfile_path = workfile_path.format(
root=project_anatomy.roots)
except Exception as exc:
print("Failed to format workfile path: {}".format(exc))
dirpath, filename = os.path.split(workfile_path)
created_at = arrow.get(repre_entity["createdAt"]).to("local")
return FileItem(
dirpath,
filename,
created_at.float_timestamp,
author,
None,
repre_entity["id"]
)
def get_file_items(self, folder_id, task_name):
def get_file_items(self, folder_id: str, task_name: str) -> list[FileItem]:
# TODO refactor to use less server API calls
project_name = self._controller.get_current_project_name()
# Get subset docs of folder
@ -735,6 +679,66 @@ class PublishWorkfilesModel:
return file_items
@property
def _extensions(self):
if self._cached_extensions is None:
exts = self._controller.get_workfile_extensions() or []
self._cached_extensions = exts
return self._cached_extensions
@property
def _repre_extensions(self):
if self._cached_repre_extensions is None:
self._cached_repre_extensions = {
ext.lstrip(".") for ext in self._extensions
}
return self._cached_repre_extensions
def _file_item_from_representation(
self,
repre_entity: dict[str, Any],
project_anatomy: "Anatomy",
author: str,
task_name: Optional[str] = None
):
if task_name is not None:
task_info = repre_entity["context"].get("task")
if not task_info or task_info["name"] != task_name:
return None
# Filter by extension
extensions = self._repre_extensions
workfile_path = None
for repre_file in repre_entity["files"]:
ext = (
os.path.splitext(repre_file["name"])[1]
.lower()
.lstrip(".")
)
if ext in extensions:
workfile_path = repre_file["path"]
break
if not workfile_path:
return None
try:
workfile_path = workfile_path.format(
root=project_anatomy.roots)
except Exception as exc:
print("Failed to format workfile path: {}".format(exc))
dirpath, filename = os.path.split(workfile_path)
created_at = arrow.get(repre_entity["createdAt"]).to("local")
return FileItem(
dirpath,
filename,
created_at.float_timestamp,
author,
None,
repre_entity["id"]
)
class WorkfilesModel:
"""Workfiles model."""