Skip to content

Commit 1913dca

Browse files
committed
fix tests, address @effigies' comments
1 parent 89371e8 commit 1913dca

File tree

1 file changed

+30
-3
lines changed

1 file changed

+30
-3
lines changed

nipype/interfaces/base.py

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1454,8 +1454,18 @@ def _process(drain=0):
14541454
result['stderr'] = read_stream(stderr, logger=iflogger)
14551455

14561456
runtime.returncode = proc.returncode
1457-
proc.terminate() # Ensure we are done
1458-
gc.collect() # Force GC for a cleanup
1457+
try:
1458+
proc.terminate() # Ensure we are done
1459+
except OSError as error:
1460+
# Python 2 raises when the process is already gone
1461+
if error.errno != errno.ESRCH:
1462+
raise
1463+
1464+
# Dereference & force GC for a cleanup
1465+
del proc
1466+
del stdout
1467+
del stderr
1468+
gc.collect()
14591469

14601470
runtime.stderr = '\n'.join(result['stderr'])
14611471
runtime.stdout = '\n'.join(result['stdout'])
@@ -1482,7 +1492,7 @@ def get_dependencies(name, environ):
14821492
proc = sp.Popen(
14831493
cmd(name), stdout=sp.PIPE, stderr=sp.PIPE, shell=True,
14841494
env=environ, close_fds=True)
1485-
o, e = proc.communicate()
1495+
o, _ = proc.communicate()
14861496
proc.terminate()
14871497
gc.collect()
14881498
except:
@@ -1629,6 +1639,23 @@ def raise_exception(self, runtime):
16291639
def _get_environ(self):
16301640
return getattr(self.inputs, 'environ', {})
16311641

1642+
def version_from_command(self, flag='-v'):
1643+
iflogger.warning('version_from_command member of CommandLine was '
1644+
'Deprecated in nipype-1.0.0 and deleted in 2.0.0')
1645+
cmdname = self.cmd.split()[0]
1646+
env = dict(os.environ)
1647+
if _exists_in_path(cmdname, env):
1648+
out_environ = self._get_environ()
1649+
env.update(out_environ)
1650+
proc = sp.Popen(' '.join((cmdname, flag)),
1651+
shell=True,
1652+
env=env,
1653+
stdout=sp.PIPE,
1654+
stderr=sp.PIPE,
1655+
)
1656+
o, e = proc.communicate()
1657+
return o
1658+
16321659
def _run_interface(self, runtime, correct_return_codes=(0,)):
16331660
"""Execute command via subprocess
16341661

0 commit comments

Comments
 (0)