From b349b911cb0fd01311e9fdfa5fa41aec7ddd003a Mon Sep 17 00:00:00 2001 From: fynnbe Date: Wed, 13 Nov 2024 23:19:18 +0100 Subject: [PATCH] add status to draft collection entries --- bioimageio_collection_backoffice/collection_json.py | 3 +++ bioimageio_collection_backoffice/remote_collection.py | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/bioimageio_collection_backoffice/collection_json.py b/bioimageio_collection_backoffice/collection_json.py index 1b4aecf0..312c1b29 100644 --- a/bioimageio_collection_backoffice/collection_json.py +++ b/bioimageio_collection_backoffice/collection_json.py @@ -11,6 +11,7 @@ CollectionWebsiteConfigTemplate, ) from .common import Node +from .db_structure.version_info import DraftStatus, ErrorStatus class Author(Node, frozen=True): @@ -58,6 +59,8 @@ class CollectionEntry(Node, frozen=True): training_data: Optional[TrainingData] = None type: Literal["application", "model", "notebook", "dataset"] source: Optional[str] = None + status: Optional[Union[DraftStatus, ErrorStatus]] = None + """status of the draft (for collection_draft.json only)""" def __lt__(self, other: CollectionEntry): sdc = 0 if self.download_count == "?" else self.download_count diff --git a/bioimageio_collection_backoffice/remote_collection.py b/bioimageio_collection_backoffice/remote_collection.py index dc8eab32..ebdcc508 100644 --- a/bioimageio_collection_backoffice/remote_collection.py +++ b/bioimageio_collection_backoffice/remote_collection.py @@ -37,7 +37,7 @@ from loguru import logger from pydantic import AnyUrl from ruyaml import YAML -from typing_extensions import Concatenate, ParamSpec +from typing_extensions import Concatenate, ParamSpec, assert_never from ._settings import settings from ._thumbnails import create_thumbnails @@ -1177,6 +1177,11 @@ def create_collection_entries( f"{record_version.concept.folder}versions.json", versions_info.model_dump(mode="json"), ) + status = None + elif isinstance(record_version, RecordDraft): + status = record_version.info.status + else: + assert_never(record_version) try: # legacy nickname @@ -1274,5 +1279,6 @@ def get_compat_tag(tool: str): training_data=rdf["training_data"] if "training_data" in rdf else None, type=rdf["type"], source=rdf.get("source"), + status=status, ) ], id_map