From dedc30b3635e3d21a130b4784e8ce3f4347a6083 Mon Sep 17 00:00:00 2001 From: jake-valsamis Date: Wed, 11 Feb 2026 18:46:02 -0500 Subject: [PATCH 1/2] add get_permissions method for capsules, pipelines, data assets --- src/codeocean/capsule.py | 6 ++++++ src/codeocean/data_asset.py | 6 ++++++ src/codeocean/pipeline.py | 4 ++++ 3 files changed, 16 insertions(+) diff --git a/src/codeocean/capsule.py b/src/codeocean/capsule.py index c4696c6..9d70e4a 100644 --- a/src/codeocean/capsule.py +++ b/src/codeocean/capsule.py @@ -58,6 +58,12 @@ def list_computations(self, capsule_id: str) -> list[Computation]: return [Computation.from_dict(c) for c in res.json()] + def get_permissions(self, capsule_id: str) -> Permissions: + """Get permissions for a specific capsule.""" + res = self.client.get(f"{self._route}/{capsule_id}/permissions") + + return Permissions.from_dict(res.json()) + def update_permissions(self, capsule_id: str, permissions: Permissions): """Update permissions for a capsule.""" self.client.post( diff --git a/src/codeocean/data_asset.py b/src/codeocean/data_asset.py index 5ccbd56..0e861cc 100644 --- a/src/codeocean/data_asset.py +++ b/src/codeocean/data_asset.py @@ -183,6 +183,12 @@ def search_data_assets_iterator(self, search_params: DataAssetSearchParams) -> I params["next_token"] = response.next_token + def get_data_asset_permissions(self, data_asset_id: str) -> Permissions: + """Get permissions for a specific data asset.""" + res = self.client.get(f"data_assets/{data_asset_id}/permissions") + + return Permissions.from_dict(res.json()) + def list_data_asset_files(self, data_asset_id: str, path: str = "") -> Folder: """ List files and folders within an internal data asset at the specified path. diff --git a/src/codeocean/pipeline.py b/src/codeocean/pipeline.py index 366c77c..08629a3 100644 --- a/src/codeocean/pipeline.py +++ b/src/codeocean/pipeline.py @@ -42,6 +42,10 @@ def list_computations(self, pipeline_id: str) -> list[Computation]: """Get all computations associated with a specific pipeline.""" return self._capsules.list_computations(pipeline_id) + def get_permissions(self, pipeline_id: str) -> Permissions: + """Get permissions for a specific pipeline.""" + return self._capsules.get_permissions(pipeline_id) + def update_permissions(self, pipeline_id: str, permissions: Permissions): """Update permissions for a pipeline.""" return self._capsules.update_permissions(pipeline_id, permissions) From aa1e00fff0c61827bf06cb60903cf91005831e17 Mon Sep 17 00:00:00 2001 From: jake-valsamis Date: Wed, 11 Feb 2026 18:48:42 -0500 Subject: [PATCH 2/2] formatting fixes --- src/codeocean/capsule.py | 2 +- src/codeocean/pipeline.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/codeocean/capsule.py b/src/codeocean/capsule.py index 9d70e4a..baabe10 100644 --- a/src/codeocean/capsule.py +++ b/src/codeocean/capsule.py @@ -62,7 +62,7 @@ def get_permissions(self, capsule_id: str) -> Permissions: """Get permissions for a specific capsule.""" res = self.client.get(f"{self._route}/{capsule_id}/permissions") - return Permissions.from_dict(res.json()) + return Permissions.from_dict(res.json()) def update_permissions(self, capsule_id: str, permissions: Permissions): """Update permissions for a capsule.""" diff --git a/src/codeocean/pipeline.py b/src/codeocean/pipeline.py index 08629a3..b85349c 100644 --- a/src/codeocean/pipeline.py +++ b/src/codeocean/pipeline.py @@ -45,7 +45,7 @@ def list_computations(self, pipeline_id: str) -> list[Computation]: def get_permissions(self, pipeline_id: str) -> Permissions: """Get permissions for a specific pipeline.""" return self._capsules.get_permissions(pipeline_id) - + def update_permissions(self, pipeline_id: str, permissions: Permissions): """Update permissions for a pipeline.""" return self._capsules.update_permissions(pipeline_id, permissions)