From 051ac169fd4c79f6ca8071003e238cb2b9a1cc94 Mon Sep 17 00:00:00 2001
From: Nick Frasser <1693461+nfrasser@users.noreply.github.com>
Date: Thu, 4 Apr 2024 14:33:44 -0400
Subject: [PATCH] fix: correct filter fields copy behaviour

---
 cryosparc/dataset.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/cryosparc/dataset.py b/cryosparc/dataset.py
index 44f0277d..ee4867a3 100644
--- a/cryosparc/dataset.py
+++ b/cryosparc/dataset.py
@@ -1059,7 +1059,7 @@ def filter_fields(self, names: Union[Collection[str], Callable[[str], bool]], *,
         test = (lambda n: n in names) if isinstance(names, Collection) else names
         new_fields = [f for f in self.fields() if f == "uid" or test(f)]
         if len(new_fields) == self._data.ncol():
-            return self  # nothing to filter
+            return self.copy() if copy else self  # nothing to filter
 
         result = type(self)([(key, self[key]) for key in new_fields])
         return result if copy else self._reset(result._data)