Skip to content

Commit 85b3bba

Browse files
committed
fix: simplify the allatonce case and update the right to file case
1 parent 04936b7 commit 85b3bba

File tree

1 file changed

+8
-16
lines changed

1 file changed

+8
-16
lines changed

nipype/interfaces/base.py

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1206,8 +1206,8 @@ def run_command(runtime, output=None, timeout=0.01, redirect_x=False):
12061206
if output == 'file':
12071207
errfile = os.path.join(runtime.cwd, 'stderr.nipype')
12081208
outfile = os.path.join(runtime.cwd, 'stdout.nipype')
1209-
stderr = open(errfile, 'wt') # t=='text'===default
1210-
stdout = open(outfile, 'wt')
1209+
stderr = open(errfile, 'wb') # t=='text'===default
1210+
stdout = open(outfile, 'wb')
12111211

12121212
proc = subprocess.Popen(cmdline,
12131213
stdout=stdout,
@@ -1257,33 +1257,25 @@ def _process(drain=0):
12571257
result['merged'] = [r[1] for r in temp]
12581258
if output == 'allatonce':
12591259
stdout, stderr = proc.communicate()
1260-
if isinstance(stdout, bytes):
1261-
try:
1262-
stdout = stdout.decode(locale.getdefaultlocale()[1])
1263-
except UnicodeDecodeError:
1264-
stdout = stdout.decode("ISO-8859-1")
1265-
if isinstance(stderr, bytes):
1266-
try:
1267-
stderr = stderr.decode(locale.getdefaultlocale()[1])
1268-
except UnicodeDecodeError:
1269-
stderr = stderr.decode("ISO-8859-1")
1260+
stdout = stdout.decode(locale.getdefaultlocale()[1])
1261+
stderr = stderr.decode(locale.getdefaultlocale()[1])
12701262
result['stdout'] = stdout.split('\n')
12711263
result['stderr'] = stderr.split('\n')
12721264
result['merged'] = ''
12731265
if output == 'file':
12741266
ret_code = proc.wait()
12751267
stderr.flush()
12761268
stdout.flush()
1277-
result['stdout'] = [line.strip() for line in open(outfile).readlines()]
1278-
result['stderr'] = [line.strip() for line in open(errfile).readlines()]
1269+
result['stdout'] = [line.decode(locale.getdefaultlocale()[1]).strip() for line in open(outfile, 'rb').readlines()]
1270+
result['stderr'] = [line.decode(locale.getdefaultlocale()[1]).strip() for line in open(errfile, 'rb').readlines()]
12791271
result['merged'] = ''
12801272
if output == 'none':
12811273
proc.communicate()
12821274
result['stdout'] = []
12831275
result['stderr'] = []
12841276
result['merged'] = ''
1285-
runtime.stderr = text_type('\n'.join(result['stderr']))
1286-
runtime.stdout = text_type('\n'.join(result['stdout']))
1277+
runtime.stderr = '\n'.join(result['stderr'])
1278+
runtime.stdout = '\n'.join(result['stdout'])
12871279
runtime.merged = result['merged']
12881280
runtime.returncode = proc.returncode
12891281
return runtime

0 commit comments

Comments
 (0)