Skip to content

Commit e3c1c33

Browse files
committed
cleanup of debugging messages
1 parent f1e19a5 commit e3c1c33

File tree

5 files changed

+99
-93
lines changed

5 files changed

+99
-93
lines changed

nipype/interfaces/base.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
from ..utils.provenance import write_provenance
3838
from ..utils.misc import is_container, trim, str2bool
3939
from ..utils.filemanip import (md5, hash_infile, FileNotFoundError, hash_timestamp,
40-
split_filename, encode_dict)
40+
split_filename, to_str)
4141
from .traits_extension import (
4242
traits, Undefined, TraitDictObject, TraitListObject, TraitError, isdefined, File,
4343
Directory, DictStrStr, has_metadata)
@@ -271,7 +271,7 @@ def _get_bunch_hash(self):
271271
# Sort the items of the dictionary, before hashing the string
272272
# representation so we get a predictable order of the
273273
# dictionary.
274-
sorted_dict = encode_dict(sorted(dict_nofilename.items()))
274+
sorted_dict = to_str(sorted(dict_nofilename.items()))
275275
return dict_withhash, md5(sorted_dict.encode()).hexdigest()
276276

277277
def __pretty__(self, p, cycle):
@@ -581,7 +581,7 @@ def get_hashval(self, hash_method=None):
581581
dict_withhash.append((name,
582582
self._get_sorteddict(val, True, hash_method=hash_method,
583583
hash_files=hash_files)))
584-
return dict_withhash, md5(encode_dict(dict_nofilename).encode()).hexdigest()
584+
return dict_withhash, md5(to_str(dict_nofilename).encode()).hexdigest()
585585

586586

587587
def _get_sorteddict(self, objekt, dictwithhash=False, hash_method=None,

nipype/pipeline/engine/nodes.py

Lines changed: 48 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
copyfiles, fnames_presuffix, loadpkl,
4343
split_filename, load_json, savepkl,
4444
write_rst_header, write_rst_dict,
45-
write_rst_list)
45+
write_rst_list, to_str)
4646
from ...interfaces.base import (traits, InputMultiPath, CommandLine,
4747
Undefined, TraitedSpec, DynamicTraitedSpec,
4848
Bunch, InterfaceResult, md5, Interface,
@@ -213,7 +213,8 @@ def output_dir(self):
213213

214214
def set_input(self, parameter, val):
215215
""" Set interface input value"""
216-
logger.debug('setting nodelevel(%s) input %s = %s', self.name, parameter, val)
216+
logger.debug('setting nodelevel(%s) input %s = %s',
217+
self.name, parameter, to_str(val))
217218
setattr(self.inputs, parameter, deepcopy(val))
218219

219220
def get_output(self, parameter):
@@ -238,18 +239,18 @@ def hash_exists(self, updatehash=False):
238239
hashed_inputs, hashvalue = self._get_hashval()
239240
outdir = self.output_dir()
240241
if op.exists(outdir):
241-
logger.debug(os.listdir(outdir))
242+
logger.debug('Output dir: %s', to_str(os.listdir(outdir)))
242243
hashfiles = glob(op.join(outdir, '_0x*.json'))
243-
logger.debug(hashfiles)
244+
logger.debug('Found hashfiles: %s', to_str(hashfiles))
244245
if len(hashfiles) > 1:
245246
logger.info(hashfiles)
246247
logger.info('Removing multiple hashfiles and forcing node to rerun')
247248
for hashfile in hashfiles:
248249
os.unlink(hashfile)
249250
hashfile = op.join(outdir, '_0x%s.json' % hashvalue)
250-
logger.debug(hashfile)
251+
logger.debug('Final hashfile: %s', hashfile)
251252
if updatehash and op.exists(outdir):
252-
logger.debug("Updating hash: %s" % hashvalue)
253+
logger.debug("Updating hash: %s", hashvalue)
253254
for file in glob(op.join(outdir, '_0x*.json')):
254255
os.remove(file)
255256
self._save_hashfile(hashfile, hashed_inputs)
@@ -275,17 +276,17 @@ def run(self, updatehash=False):
275276
outdir = self.output_dir()
276277
logger.info("Executing node %s in dir: %s", self._id, outdir)
277278
if op.exists(outdir):
278-
logger.debug(os.listdir(outdir))
279+
logger.debug('Output dir: %s', to_str(os.listdir(outdir)))
279280
hash_info = self.hash_exists(updatehash=updatehash)
280281
hash_exists, hashvalue, hashfile, hashed_inputs = hash_info
281-
logger.debug(('updatehash, overwrite, always_run, hash_exists',
282-
updatehash, self.overwrite, self._interface.always_run,
283-
hash_exists))
282+
logger.debug(
283+
'updatehash=%s, overwrite=%s, always_run=%s, hash_exists=%s',
284+
updatehash, self.overwrite, self._interface.always_run, hash_exists)
284285
if (not updatehash and (((self.overwrite is None and
285286
self._interface.always_run) or
286287
self.overwrite) or not
287288
hash_exists)):
288-
logger.debug("Node hash: %s" % hashvalue)
289+
logger.debug("Node hash: %s", hashvalue)
289290

290291
# by rerunning we mean only nodes that did finish to run previously
291292
json_pat = op.join(outdir, '_0x*.json')
@@ -295,8 +296,8 @@ def run(self, updatehash=False):
295296
len(glob(json_pat)) != 0 and
296297
len(glob(json_unfinished_pat)) == 0)
297298
if need_rerun:
298-
logger.debug("Rerunning node")
299299
logger.debug(
300+
"Rerunning node:\n"
300301
"updatehash = %s, self.overwrite = %s, self._interface.always_run = %s, "
301302
"os.path.exists(%s) = %s, hash_method = %s", updatehash, self.overwrite,
302303
self._interface.always_run, hashfile, op.exists(hashfile),
@@ -371,15 +372,15 @@ def run(self, updatehash=False):
371372
self.write_report(report_type='postexec', cwd=outdir)
372373
else:
373374
if not op.exists(op.join(outdir, '_inputs.pklz')):
374-
logger.debug('%s: creating inputs file' % self.name)
375+
logger.debug('%s: creating inputs file', self.name)
375376
savepkl(op.join(outdir, '_inputs.pklz'),
376377
self.inputs.get_traitsfree())
377378
if not op.exists(op.join(outdir, '_node.pklz')):
378-
logger.debug('%s: creating node file' % self.name)
379+
logger.debug('%s: creating node file', self.name)
379380
savepkl(op.join(outdir, '_node.pklz'), self)
380381
logger.debug("Hashfile exists. Skipping execution")
381382
self._run_interface(execute=False, updatehash=updatehash)
382-
logger.debug('Finished running %s in dir: %s\n' % (self._id, outdir))
383+
logger.debug('Finished running %s in dir: %s\n', self._id, outdir)
383384
return self._result
384385

385386
# Private functions
@@ -424,10 +425,10 @@ def _save_hashfile(self, hashfile, hashed_inputs):
424425
with open(hashfile, 'wt') as fd:
425426
fd.writelines(str(hashed_inputs))
426427

427-
logger.debug(('Unable to write a particular type to the json '
428-
'file'))
428+
logger.debug(
429+
'Unable to write a particular type to the json file')
429430
else:
430-
logger.critical('Unable to open the file in write mode: %s' %
431+
logger.critical('Unable to open the file in write mode: %s',
431432
hashfile)
432433

433434
def _get_inputs(self):
@@ -438,9 +439,9 @@ def _get_inputs(self):
438439
"""
439440
logger.debug('Setting node inputs')
440441
for key, info in list(self.input_source.items()):
441-
logger.debug('input: %s' % key)
442+
logger.debug('input: %s', key)
442443
results_file = info[0]
443-
logger.debug('results file: %s' % results_file)
444+
logger.debug('results file: %s', results_file)
444445
results = loadpkl(results_file)
445446
output_value = Undefined
446447
if isinstance(info[1], tuple):
@@ -456,7 +457,7 @@ def _get_inputs(self):
456457
output_value = results.outputs.get()[output_name]
457458
except TypeError:
458459
output_value = results.outputs.dictcopy()[output_name]
459-
logger.debug('output: %s' % output_name)
460+
logger.debug('output: %s', output_name)
460461
try:
461462
self.set_input(key, deepcopy(output_value))
462463
except traits.TraitError as e:
@@ -487,7 +488,7 @@ def _save_results(self, result, cwd):
487488
basedir=cwd))
488489

489490
savepkl(resultsfile, result)
490-
logger.debug('saved results in %s' % resultsfile)
491+
logger.debug('saved results in %s', resultsfile)
491492

492493
if result.outputs:
493494
result.outputs.set(**outputs)
@@ -524,11 +525,11 @@ def _load_resultfile(self, cwd):
524525
except (traits.TraitError, AttributeError, ImportError) as err:
525526
if isinstance(err, (AttributeError, ImportError)):
526527
attribute_error = True
527-
logger.debug(('attribute error: %s probably using '
528-
'different trait pickled file') % str(err))
528+
logger.debug('attribute error: %s probably using '
529+
'different trait pickled file', str(err))
529530
else:
530-
logger.debug(('some file does not exist. hence trait '
531-
'cannot be set'))
531+
logger.debug(
532+
'some file does not exist. hence trait cannot be set')
532533
else:
533534
if result.outputs:
534535
try:
@@ -540,8 +541,8 @@ def _load_resultfile(self, cwd):
540541
relative=False,
541542
basedir=cwd))
542543
except FileNotFoundError:
543-
logger.debug(('conversion to full path results in '
544-
'non existent file'))
544+
logger.debug('conversion to full path results in '
545+
'non existent file')
545546
aggregate = False
546547
pkl_file.close()
547548
logger.debug('Aggregate: %s', aggregate)
@@ -640,8 +641,8 @@ def _strip_temp(self, files, wd):
640641
def _copyfiles_to_wd(self, outdir, execute, linksonly=False):
641642
""" copy files over and change the inputs"""
642643
if hasattr(self._interface, '_get_filecopy_info'):
643-
logger.debug('copying files to wd [execute=%s, linksonly=%s]' %
644-
(str(execute), str(linksonly)))
644+
logger.debug('copying files to wd [execute=%s, linksonly=%s]',
645+
str(execute), str(linksonly))
645646
if execute and linksonly:
646647
olddir = outdir
647648
outdir = op.join(outdir, '_tempinput')
@@ -689,7 +690,7 @@ def write_report(self, report_type=None, cwd=None):
689690
if not op.exists(report_dir):
690691
os.makedirs(report_dir)
691692
if report_type == 'preexec':
692-
logger.debug('writing pre-exec report to %s' % report_file)
693+
logger.debug('writing pre-exec report to %s', report_file)
693694
fp = open(report_file, 'wt')
694695
fp.writelines(write_rst_header('Node: %s' % get_print_name(self),
695696
level=0))
@@ -698,7 +699,7 @@ def write_report(self, report_type=None, cwd=None):
698699
fp.writelines(write_rst_header('Original Inputs', level=1))
699700
fp.writelines(write_rst_dict(self.inputs.get()))
700701
if report_type == 'postexec':
701-
logger.debug('writing post-exec report to %s' % report_file)
702+
logger.debug('writing post-exec report to %s', report_file)
702703
fp = open(report_file, 'at')
703704
fp.writelines(write_rst_header('Execution Inputs', level=1))
704705
fp.writelines(write_rst_dict(self.inputs.get()))
@@ -854,7 +855,7 @@ def _add_join_item_fields(self):
854855
newfields = dict([(field, self._add_join_item_field(field, idx))
855856
for field in self.joinfield])
856857
# increment the join slot index
857-
logger.debug("Added the %s join item fields %s." % (self, newfields))
858+
logger.debug("Added the %s join item fields %s.", self, newfields)
858859
self._next_slot_index += 1
859860
return newfields
860861

@@ -900,10 +901,9 @@ def _override_join_traits(self, basetraits, fields):
900901
item_trait = trait.inner_traits[0]
901902
dyntraits.add_trait(name, item_trait)
902903
setattr(dyntraits, name, Undefined)
903-
logger.debug("Converted the join node %s field %s"
904-
" trait type from %s to %s"
905-
% (self, name, trait.trait_type.info(),
906-
item_trait.info()))
904+
logger.debug(
905+
"Converted the join node %s field %s trait type from %s to %s",
906+
self, name, trait.trait_type.info(), item_trait.info())
907907
else:
908908
dyntraits.add_trait(name, traits.Any)
909909
setattr(dyntraits, name, Undefined)
@@ -931,8 +931,8 @@ def _collate_join_field_inputs(self):
931931
val = getattr(self._inputs, field)
932932
if isdefined(val):
933933
setattr(self._interface.inputs, field, val)
934-
logger.debug("Collated %d inputs into the %s node join fields"
935-
% (self._next_slot_index, self))
934+
logger.debug("Collated %d inputs into the %s node join fields",
935+
self._next_slot_index, self)
936936

937937
def _collate_input_value(self, field):
938938
"""
@@ -1023,7 +1023,7 @@ def _create_dynamic_traits(self, basetraits, fields=None, nitems=None):
10231023
fields = basetraits.copyable_trait_names()
10241024
for name, spec in list(basetraits.items()):
10251025
if name in fields and ((nitems is None) or (nitems > 1)):
1026-
logger.debug('adding multipath trait: %s' % name)
1026+
logger.debug('adding multipath trait: %s', name)
10271027
if self.nested:
10281028
output.add_trait(name, InputMultiPath(traits.Any()))
10291029
else:
@@ -1042,15 +1042,13 @@ def set_input(self, parameter, val):
10421042
10431043
Priority goes to interface.
10441044
"""
1045-
logger.debug('setting nodelevel(%s) input %s = %s' % (str(self),
1046-
parameter,
1047-
str(val)))
1045+
logger.debug('setting nodelevel(%s) input %s = %s',
1046+
to_str(self), parameter, to_str(val))
10481047
self._set_mapnode_input(self.inputs, parameter, deepcopy(val))
10491048

10501049
def _set_mapnode_input(self, object, name, newvalue):
1051-
logger.debug('setting mapnode(%s) input: %s -> %s' % (str(self),
1052-
name,
1053-
str(newvalue)))
1050+
logger.debug('setting mapnode(%s) input: %s -> %s',
1051+
to_str(self), name, to_str(newvalue))
10541052
if name in self.iterfield:
10551053
setattr(self._inputs, name, newvalue)
10561054
else:
@@ -1069,8 +1067,8 @@ def _get_hashval(self):
10691067
name,
10701068
InputMultiPath(
10711069
self._interface.inputs.traits()[name].trait_type))
1072-
logger.debug('setting hashinput %s-> %s' %
1073-
(name, getattr(self._inputs, name)))
1070+
logger.debug('setting hashinput %s-> %s',
1071+
name, getattr(self._inputs, name))
10741072
if self.nested:
10751073
setattr(hashinputs, name, flatten(getattr(self._inputs, name)))
10761074
else:
@@ -1118,10 +1116,8 @@ def _make_nodes(self, cwd=None):
11181116
fieldvals = flatten(filename_to_list(getattr(self.inputs, field)))
11191117
else:
11201118
fieldvals = filename_to_list(getattr(self.inputs, field))
1121-
logger.debug('setting input %d %s %s' % (i, field,
1122-
fieldvals[i]))
1123-
setattr(node.inputs, field,
1124-
fieldvals[i])
1119+
logger.debug('setting input %d %s %s', i, field, fieldvals[i])
1120+
setattr(node.inputs, field, fieldvals[i])
11251121
node.config = self.config
11261122
node.base_dir = op.join(cwd, 'mapflow')
11271123
yield i, node

nipype/pipeline/engine/utils.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
import networkx as nx
3232

33-
from ...utils.filemanip import (fname_presuffix, FileNotFoundError,
33+
from ...utils.filemanip import (fname_presuffix, FileNotFoundError, to_str,
3434
filename_to_list, get_related_files)
3535
from ...utils.misc import create_function_from_source, str2bool
3636
from ...interfaces.base import (CommandLine, isdefined, Undefined,
@@ -330,10 +330,9 @@ def _get_valid_pathstr(pathstr):
330330
Removes: [][ (){}?:<>#!|"';]
331331
Replaces: ',' -> '.'
332332
"""
333+
if not isinstance(pathstr, (str, bytes)):
334+
pathstr = to_str(pathstr)
333335
pathstr = pathstr.replace(os.sep, '..')
334-
if sys.version_info[0] < 3:
335-
# Remove those u'string' patterns
336-
pathstr = re.sub(r'''([^\w])u['"]([\w\d -\.:;,]*)['"]''', r'\1\2', pathstr)
337336
pathstr = re.sub(r'''[][ (){}?:<>#!|"';]''', '', pathstr)
338337
pathstr = pathstr.replace(',', '.')
339338
return pathstr
@@ -520,7 +519,7 @@ def _merge_graphs(supergraph, nodes, subgraph, nodeid, iterables,
520519
paramstr = ''
521520
for key, val in sorted(params.items()):
522521
paramstr = '{}_{}_{}'.format(
523-
paramstr, _get_valid_pathstr(key), _get_valid_pathstr(str(val)))
522+
paramstr, _get_valid_pathstr(key), _get_valid_pathstr(val))
524523
rootnode.set_input(key, val)
525524

526525
logger.debug('Parameterization: paramstr=%s', paramstr)

0 commit comments

Comments
 (0)