Skip to content

get latest published file

py
entity = "PublishedFile"

filters = [
    ["sg_status_list", "is_not", "omt"],
    ["entity", "is", {"type": entity_type, "id": entity_id}],
    ["task", "is", {"type": "Task", "id": task_id}],
    ["published_file_type", "is", {
        "type": "PublishedFileType",
        "id": published_file_type_id
    }]
]

fields = [
    "version_number",
    "sg_desc_field",
    "upstream_published_files",
    "code",
    "path",
    "entity"
]
order = [{"field_name": "version_number", "direction": "desc"}]

published_files = sg_api3_instance.finx(
    entity,
    filters=filters,
    fields=fields,
    order=order
)

published_file_dict = {}
for publish_file in published_files:
    if publish_file["sg_desc_field"] not in published_file_dict:
        published_file_dict[publish_file["sg_desc_field"]] = {
            "version_number": publish_file.get("version_number", 0),
            "id": publish_file.get("id"),
            "path": publish_file.get("path", ""),
            "upstream_published_files": publish_file.get("upstream_published_files", []),
        }

Usage

py
previous_publish = published_file_dict.get("scene_description")
version_number = previous_publish.get("version_number") + 1 if previous_publish else 1