From d2abdc9de35f3bb0bd0c95809ef1f608b5d86a45 Mon Sep 17 00:00:00 2001 From: Chris Filo Gorgolewski Date: Wed, 12 Aug 2015 13:20:49 -0700 Subject: [PATCH] better handling of errors when using caching --- nipype/caching/memory.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/nipype/caching/memory.py b/nipype/caching/memory.py index 3d40f30724..a1e7b58e5d 100644 --- a/nipype/caching/memory.py +++ b/nipype/caching/memory.py @@ -76,7 +76,14 @@ def __call__(self, **kwargs): job_name = hasher.hexdigest() node = Node(interface, name=job_name) node.base_dir = os.path.join(self.base_dir, dir_name) - out = node.run() + + cwd = os.getcwd() + try: + out = node.run() + finally: + # node.run() changes to the node directory - if something goes wrong + # before it cds back you would end up in strange places + os.chdir(cwd) if self.callback is not None: self.callback(dir_name, job_name) return out