From 9f83ef3e9ef1f56e98bf63fb16abdbd4a0966bc0 Mon Sep 17 00:00:00 2001 From: roger Date: Mon, 10 Aug 2020 16:17:55 +0800 Subject: [PATCH 1/4] Always set setidx --- DataProcessingTools/objects.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DataProcessingTools/objects.py b/DataProcessingTools/objects.py index 19ad54c..0dd42c4 100644 --- a/DataProcessingTools/objects.py +++ b/DataProcessingTools/objects.py @@ -65,11 +65,11 @@ def __init__(self, *args, **kwargs): def create(self, *args, **kwargs): self.dirs = kwargs.get("dirs", [os.getcwd()]) + self.setidx = [] if self.dirs: normpath = kwargs.get("normpath", True) if normpath: self.dirs = [levels.normpath(d) for d in self.dirs] - self.setidx = [] self.plotopts = {"indexer": self.level} self.indexer = self.getindex(self.level) self.current_idx = None From 1cfafe67c7e70c572fa6585c19cc600a11a23ac2 Mon Sep 17 00:00:00 2001 From: roger Date: Mon, 10 Aug 2020 16:18:21 +0800 Subject: [PATCH 2/4] Return empty object if no relevant directories are found --- DataProcessingTools/objects.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/DataProcessingTools/objects.py b/DataProcessingTools/objects.py index 0dd42c4..6bc901c 100644 --- a/DataProcessingTools/objects.py +++ b/DataProcessingTools/objects.py @@ -238,6 +238,8 @@ def processDirs(dirs, objtype, *args, **kwargs): """ if dirs is None: dirs = levels.get_level_dirs(objtype.level) + if not dirs: + return objtype(dirs=[]) ii = 0 while ii < len(dirs): From b8bcd39ac367af66b2814165c30fac3f9e529e51 Mon Sep 17 00:00:00 2001 From: roger Date: Mon, 10 Aug 2020 16:18:39 +0800 Subject: [PATCH 3/4] Bumps minor version number --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 0714750..848aa5e 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ from setuptools import setup setup(name="DataProcessingTools", - version="0.15.0", + version="0.15.1", description="""Tools for processing data with hierarchical organization""", url="https://github.com/grero/DataProcessingTools.git", author="Roger Herikstad", From a92b57e15aac753a49f3c759b673a6583dfe87a3 Mon Sep 17 00:00:00 2001 From: roger Date: Mon, 10 Aug 2020 16:19:06 +0800 Subject: [PATCH 4/4] Adds tests for empty dir list when calling processDirs --- tests/test_objects.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/test_objects.py b/tests/test_objects.py index 17d50eb..aa6b650 100644 --- a/tests/test_objects.py +++ b/tests/test_objects.py @@ -77,13 +77,17 @@ def test_append(): # do the same thing with processDirs obj3 = DPT.objects.processDirs(dirs, MyObj, [0.1, 0.2, 0.3]) obj4 = DPT.objects.processDirs(None, MyObj, [0.1, 0.2, 0.3]) + obj5 = DPT.objects.processDirs([], MyObj, [0.1, 0.2, 0.3]) + assert obj1.setidx == [0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3] assert obj3.setidx == obj1.setidx assert obj4.setidx == obj3.setidx + assert obj5.setidx == [] assert obj1.dirs == dirs assert obj1.dirs == obj3.dirs assert obj1.dirs == obj4.dirs + assert obj5.dirs == [] mylevels = obj1.getlevels() assert mylevels == ["subject", "day", "session","array","channel","cell"]