From e03f677a281cc214d5891285b1b9cb30a267c82b Mon Sep 17 00:00:00 2001 From: spirpinias Date: Mon, 24 Jun 2024 14:36:34 -0400 Subject: [PATCH 1/8] added support to data assets API param for importing external results --- src/codeocean/data_asset.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/codeocean/data_asset.py b/src/codeocean/data_asset.py index 04e4acc..5541c0b 100644 --- a/src/codeocean/data_asset.py +++ b/src/codeocean/data_asset.py @@ -6,7 +6,7 @@ from typing import Optional from codeocean.components import SortOrder, SearchFilter, Permissions - +from codecoean.computation import PipelineProcessParams, Param class DataAssetType(StrEnum): Dataset = "dataset" @@ -50,6 +50,18 @@ class AppParameter: name: str value: str +@dataclass_json +@dataclass(frozen=True) +class ResultsInfo: + capsule_id: Optional[str] = None + pipeline_id: Optional[str] = None + version: Optional[int] = None + commit: Optional[str] = None + run_script: Optional[str] = None + data_assets: Optional[list[str]] = None + parameters: Optional[list[Param]] = None + processes: Optional[list[PipelineProcessParams]] = None + @dataclass_json @dataclass(frozen=True) @@ -139,6 +151,7 @@ class DataAssetParams: target: Optional[Target] = None custom_metadata: Optional[dict] = None data_asset_ids: Optional[list[str]] = None + results_info: Optional[ResultsInfo] = None @dataclass_json @@ -191,6 +204,8 @@ class DataAssetSearchParams: ownership: Optional[DataAssetOwnership] = None origin: Optional[DataAssetSearchOrigin] = None filters: Optional[list[SearchFilter]] = None + results_info: Optional[ResultsInfo] = None + custom_metadata: @dataclass_json From 0f8bad8dc673f726baeead0be5ab23f7b9e1c331 Mon Sep 17 00:00:00 2001 From: spirpinias Date: Mon, 24 Jun 2024 14:38:51 -0400 Subject: [PATCH 2/8] added support to data assets API param for importing external results --- src/codeocean/data_asset.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/codeocean/data_asset.py b/src/codeocean/data_asset.py index 5541c0b..320b2a3 100644 --- a/src/codeocean/data_asset.py +++ b/src/codeocean/data_asset.py @@ -205,7 +205,6 @@ class DataAssetSearchParams: origin: Optional[DataAssetSearchOrigin] = None filters: Optional[list[SearchFilter]] = None results_info: Optional[ResultsInfo] = None - custom_metadata: @dataclass_json From 846239e10919e7dbe2afcf4e999229ba98046aca Mon Sep 17 00:00:00 2001 From: spirpinias Date: Mon, 24 Jun 2024 14:40:27 -0400 Subject: [PATCH 3/8] added support to data assets API param for importing external results --- src/codeocean/data_asset.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/codeocean/data_asset.py b/src/codeocean/data_asset.py index 320b2a3..f2fceda 100644 --- a/src/codeocean/data_asset.py +++ b/src/codeocean/data_asset.py @@ -8,6 +8,7 @@ from codeocean.components import SortOrder, SearchFilter, Permissions from codecoean.computation import PipelineProcessParams, Param + class DataAssetType(StrEnum): Dataset = "dataset" Result = "result" @@ -50,6 +51,7 @@ class AppParameter: name: str value: str + @dataclass_json @dataclass(frozen=True) class ResultsInfo: From 5b16139e4268f26d18bb1e26925268ad58149411 Mon Sep 17 00:00:00 2001 From: spirpinias Date: Mon, 24 Jun 2024 14:42:55 -0400 Subject: [PATCH 4/8] added support to data assets API param for importing external results --- src/codeocean/data_asset.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/codeocean/data_asset.py b/src/codeocean/data_asset.py index f2fceda..65e61a5 100644 --- a/src/codeocean/data_asset.py +++ b/src/codeocean/data_asset.py @@ -206,7 +206,6 @@ class DataAssetSearchParams: ownership: Optional[DataAssetOwnership] = None origin: Optional[DataAssetSearchOrigin] = None filters: Optional[list[SearchFilter]] = None - results_info: Optional[ResultsInfo] = None @dataclass_json From 2ae8786b0580e875b68052c921e43f64006e60d4 Mon Sep 17 00:00:00 2001 From: spirpinias Date: Mon, 24 Jun 2024 20:05:24 -0400 Subject: [PATCH 5/8] corrtect misspelling --- src/codeocean/data_asset.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/codeocean/data_asset.py b/src/codeocean/data_asset.py index 65e61a5..6a843d7 100644 --- a/src/codeocean/data_asset.py +++ b/src/codeocean/data_asset.py @@ -6,7 +6,7 @@ from typing import Optional from codeocean.components import SortOrder, SearchFilter, Permissions -from codecoean.computation import PipelineProcessParams, Param +from codeocean.computation import PipelineProcessParams, Param class DataAssetType(StrEnum): From b1ad168fab0908c469ecf2f3c5835563da7b4570 Mon Sep 17 00:00:00 2001 From: spirpinias Date: Tue, 25 Jun 2024 09:14:56 -0400 Subject: [PATCH 6/8] correct PipelineProcess in processes --- src/codeocean/data_asset.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/codeocean/data_asset.py b/src/codeocean/data_asset.py index 6a843d7..19add5e 100644 --- a/src/codeocean/data_asset.py +++ b/src/codeocean/data_asset.py @@ -6,7 +6,7 @@ from typing import Optional from codeocean.components import SortOrder, SearchFilter, Permissions -from codeocean.computation import PipelineProcessParams, Param +from codeocean.computation import PipelineProcess, Param class DataAssetType(StrEnum): @@ -62,7 +62,7 @@ class ResultsInfo: run_script: Optional[str] = None data_assets: Optional[list[str]] = None parameters: Optional[list[Param]] = None - processes: Optional[list[PipelineProcessParams]] = None + processes: Optional[list[PipelineProcess]] = None @dataclass_json From 47854a5aa9fa1e3888ea91f9be1ef7fbf7737e6a Mon Sep 17 00:00:00 2001 From: spirpinias Date: Tue, 25 Jun 2024 11:34:25 -0400 Subject: [PATCH 7/8] fix: DataAssetAttachResults cast as List --- src/codeocean/capsule.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/codeocean/capsule.py b/src/codeocean/capsule.py index 15fe3b6..65882ce 100644 --- a/src/codeocean/capsule.py +++ b/src/codeocean/capsule.py @@ -62,13 +62,13 @@ def list_computations(self, capsule_id: str) -> list[Computation]: return [Computation.from_dict(c) for c in res.json()] - def attach_data_assets(self, capsule_id: str, attach_params: list[DataAssetAttachParams]) -> DataAssetAttachResults: + def attach_data_assets(self, capsule_id: str, attach_params: list[DataAssetAttachParams]) -> list[DataAssetAttachResults]: res = self.client.post( f"capsules/{capsule_id}/data_assets", json=[j.to_dict() for j in attach_params], ) - return DataAssetAttachResults.from_dict(res.json()) + return [DataAssetAttachResults.from_dict(c) for c in res.json()] def detach_data_assets(self, capsule_id: str, data_assets: list[str]): self.client.delete( From 76d74ec36e3f3f32fa3a20cfc4c46ab6f5e3261c Mon Sep 17 00:00:00 2001 From: spirpinias Date: Tue, 25 Jun 2024 13:35:47 -0400 Subject: [PATCH 8/8] fix: attach_data_assets reformatting --- src/codeocean/capsule.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/codeocean/capsule.py b/src/codeocean/capsule.py index 65882ce..cd86ab7 100644 --- a/src/codeocean/capsule.py +++ b/src/codeocean/capsule.py @@ -62,7 +62,10 @@ def list_computations(self, capsule_id: str) -> list[Computation]: return [Computation.from_dict(c) for c in res.json()] - def attach_data_assets(self, capsule_id: str, attach_params: list[DataAssetAttachParams]) -> list[DataAssetAttachResults]: + def attach_data_assets( + self, + capsule_id: str, + attach_params: list[DataAssetAttachParams]) -> list[DataAssetAttachResults]: res = self.client.post( f"capsules/{capsule_id}/data_assets", json=[j.to_dict() for j in attach_params],