Skip to content

Commit 6fa5130

Browse files
committed
feat: add interface for expt.delete_all_gates_and_populations
This is a public API but is missing from CE's API documentation.
1 parent ce0dbc2 commit 6fa5130

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed

cellengine/resources/experiment.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -592,6 +592,10 @@ def delete_gates(self, ids: List[str]) -> None:
592592
"""Deletes multiple gates provided a list of _ids."""
593593
ce.APIClient().delete_gates(self._id, ids)
594594

595+
def delete_all_gates_and_populations(self) -> None:
596+
"""Delete all gates and populations in the experiment."""
597+
ce.APIClient().delete_all_gates_and_populations(self._id)
598+
595599
@overload
596600
def create_rectangle_gate(
597601
self, *args, create_population: Literal[True], **kwargs

cellengine/utils/api_client/APIClient.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -639,6 +639,10 @@ def delete_gates(self, experiment_id: str, ids: List[str]):
639639
url = f"{self.base_url}/api/v1/experiments/{experiment_id}/gates/"
640640
[self._delete(url + _id) for _id in ids]
641641

642+
def delete_all_gates_and_populations(self, experiment_id: str) -> None:
643+
url = f"{self.base_url}/api/v1/experiments/{experiment_id}/gates/reset"
644+
self._post(url)
645+
642646
def _parse_gate_population(
643647
self, res: Any
644648
) -> Tuple[Gate, Union[Population, List[Population], None]]:

tests/integration/test_experiment.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,3 +277,10 @@ def test_create_gates(full_experiment):
277277
}
278278
]
279279
)
280+
281+
def test_delete_all_gates_and_populations(full_experiment):
282+
experiment = full_experiment["experiment"]
283+
experiment.delete_all_gates_and_populations()
284+
285+
assert len(experiment.gates) == 0
286+
assert len(experiment.populations) == 0

0 commit comments

Comments
 (0)