Skip to content

Commit

Permalink
add library dataset deletion route
Browse files Browse the repository at this point in the history
that is not marked as deprecated
  • Loading branch information
bernt-matthias committed Mar 7, 2025
1 parent a8fe8d5 commit 59059c2
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 10 deletions.
8 changes: 4 additions & 4 deletions bioblend/_tests/TestGalaxyFolders.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,19 +70,19 @@ def test_show_folder_contents_include_deleted(self):
hda_id = self._test_dataset(history["id"])

# Create 2 library datasets into the library folder
ldda1 = self.gi.libraries.copy_from_dataset(
ld1 = self.gi.libraries.copy_from_dataset(
library_id=self.library["id"], dataset_id=hda_id, folder_id=self.folder["id"], message="Added HDA"
)
ldda2 = self.gi.libraries.copy_from_dataset(
ld2 = self.gi.libraries.copy_from_dataset(
library_id=self.library["id"], dataset_id=hda_id, folder_id=self.folder["id"], message="Added HDA"
)
folder_info = self.gi.folders.show_folder(self.folder["id"], contents=True)
assert len(folder_info["folder_contents"]) == 2
assert folder_info["folder_contents"][0]["type"] == "file"

# Delete the library datasets and check if include_deleted works
self.gi.libraries.delete_library_dataset(self.library["id"], ldda1["id"])
self.gi.libraries.delete_library_dataset(self.library["id"], ldda2["id"], purged=True)
self.gi.libraries.delete_library_dataset(ld1["id"])
self.gi.libraries.delete_library_dataset(ld2["id"], purged=True)
folder_info = self.gi.folders.show_folder(self.folder["id"], contents=True, include_deleted=True)
# check if there are 2 contents and the number is correct
assert len(folder_info["folder_contents"]) == 2
Expand Down
28 changes: 22 additions & 6 deletions bioblend/galaxy/libraries/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,13 +86,25 @@ def _show_item(self, library_id: str, item_id: str) -> dict[str, Any]:
url = "/".join((self._make_url(library_id, contents=True), item_id))
return self._get(url=url)

def delete_library_dataset(self, library_id: str, dataset_id: str, purged: bool = False) -> dict[str, Any]:
@overload
def delete_library_dataset(
self,
dataset_id: str,
undelete: bool = False,
) -> Dict[str, Any]: ...

@overload
def delete_library_dataset(
self,
library_id: str,
dataset_id: str,
purged: bool = False,
) -> Dict[str, Any]: ...

def delete_library_dataset(self, library_id: Optional[str], dataset_id: str, purged: bool = False, undelete: bool = False) -> Dict[str, Any]:
"""
Delete a library dataset in a data library.
:type library_id: str
:param library_id: library id where dataset is found in
:type dataset_id: str
:param dataset_id: id of the dataset to be deleted
Expand All @@ -108,8 +120,12 @@ def delete_library_dataset(self, library_id: str, dataset_id: str, purged: bool
{'deleted': True,
'id': '60e680a037f41974'}
"""
url = "/".join((self._make_url(library_id, contents=True), dataset_id))
return self._delete(payload={"purged": purged}, url=url)
if not library_id:
url = "/".join(self._make_url(), "datasets", dataset_id)
return self._delete(params={"undelete": undelete}, url=url)
else:
url = "/".join((self._make_url(library_id, contents=True), dataset_id))
return self._delete(payload={"purged": purged}, url=url)

def update_library_dataset(self, dataset_id: str, **kwargs: Any) -> dict[str, Any]:
"""
Expand Down

0 comments on commit 59059c2

Please sign in to comment.