@@ -1206,8 +1206,8 @@ def run_command(runtime, output=None, timeout=0.01, redirect_x=False):
1206
1206
if output == 'file' :
1207
1207
errfile = os .path .join (runtime .cwd , 'stderr.nipype' )
1208
1208
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 ' )
1211
1211
1212
1212
proc = subprocess .Popen (cmdline ,
1213
1213
stdout = stdout ,
@@ -1257,33 +1257,25 @@ def _process(drain=0):
1257
1257
result ['merged' ] = [r [1 ] for r in temp ]
1258
1258
if output == 'allatonce' :
1259
1259
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 ])
1270
1262
result ['stdout' ] = stdout .split ('\n ' )
1271
1263
result ['stderr' ] = stderr .split ('\n ' )
1272
1264
result ['merged' ] = ''
1273
1265
if output == 'file' :
1274
1266
ret_code = proc .wait ()
1275
1267
stderr .flush ()
1276
1268
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 ()]
1279
1271
result ['merged' ] = ''
1280
1272
if output == 'none' :
1281
1273
proc .communicate ()
1282
1274
result ['stdout' ] = []
1283
1275
result ['stderr' ] = []
1284
1276
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' ])
1287
1279
runtime .merged = result ['merged' ]
1288
1280
runtime .returncode = proc .returncode
1289
1281
return runtime
0 commit comments