Skip to content

Commit be2d8c5

Browse files
committed
RF: Drop to_str, makedirs compatibility functions
1 parent b0d464c commit be2d8c5

File tree

7 files changed

+34
-69
lines changed

7 files changed

+34
-69
lines changed

nipype/interfaces/base/specs.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from warnings import warn
1616
from packaging.version import Version
1717

18-
from ...utils.filemanip import md5, hash_infile, hash_timestamp, to_str
18+
from ...utils.filemanip import md5, hash_infile, hash_timestamp
1919
from .traits_extension import (
2020
traits,
2121
Undefined,
@@ -251,7 +251,7 @@ def get_hashval(self, hash_method=None):
251251
True,
252252
hash_method=hash_method,
253253
hash_files=hash_files)))
254-
return list_withhash, md5(to_str(list_nofilename).encode()).hexdigest()
254+
return list_withhash, md5(str(list_nofilename).encode()).hexdigest()
255255

256256
def _get_sorteddict(self,
257257
objekt,

nipype/interfaces/base/support.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
from ... import logging
1616
from ...utils.misc import is_container
17-
from ...utils.filemanip import md5, to_str, hash_infile
17+
from ...utils.filemanip import md5, hash_infile
1818
iflogger = logging.getLogger('nipype.interface')
1919

2020
HELP_LINEWIDTH = 70
@@ -161,7 +161,7 @@ def _get_bunch_hash(self):
161161
# Sort the items of the dictionary, before hashing the string
162162
# representation so we get a predictable order of the
163163
# dictionary.
164-
sorted_dict = to_str(sorted(dict_nofilename.items()))
164+
sorted_dict = str(sorted(dict_nofilename.items()))
165165
return dict_withhash, md5(sorted_dict.encode()).hexdigest()
166166

167167
def _repr_pretty_(self, p, cycle):

nipype/pipeline/engine/nodes.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
from ...utils.misc import flatten, unflatten, str2bool, dict_diff
2222
from ...utils.filemanip import (md5, FileNotFoundError, ensure_list,
2323
simplify_list, copyfiles, fnames_presuffix,
24-
loadpkl, split_filename, load_json, makedirs,
25-
emptydirs, savepkl, to_str, indirectory)
24+
loadpkl, split_filename, load_json,
25+
emptydirs, savepkl, indirectory)
2626

2727
from ...interfaces.base import (traits, InputMultiPath, CommandLine, Undefined,
2828
DynamicTraitedSpec, Bunch, InterfaceResult,
@@ -267,7 +267,7 @@ def output_dir(self):
267267
def set_input(self, parameter, val):
268268
"""Set interface input value"""
269269
logger.debug('[Node] %s - setting input %s = %s', self.name, parameter,
270-
to_str(val))
270+
str(val))
271271
setattr(self.inputs, parameter, deepcopy(val))
272272

273273
def get_output(self, parameter):
@@ -453,7 +453,7 @@ def run(self, updatehash=False):
453453
os.remove(filename)
454454

455455
# Make sure outdir is created
456-
makedirs(outdir, exist_ok=True)
456+
os.makedirs(outdir, exist_ok=True)
457457

458458
# Store runtime-hashfile, pre-execution report, the node and the inputs set.
459459
_save_hashfile(hashfile_unfinished, self._hashed_inputs)
@@ -663,7 +663,7 @@ def _copyfiles_to_wd(self, execute=True, linksonly=False):
663663
if execute and linksonly:
664664
olddir = outdir
665665
outdir = op.join(outdir, '_tempinput')
666-
makedirs(outdir, exist_ok=True)
666+
os.makedirs(outdir, exist_ok=True)
667667

668668
for info in filecopy_info:
669669
files = self.inputs.trait_get().get(info['key'])
@@ -1019,13 +1019,13 @@ def set_input(self, parameter, val):
10191019
Set interface input value or nodewrapper attribute
10201020
Priority goes to interface.
10211021
"""
1022-
logger.debug('setting nodelevel(%s) input %s = %s', to_str(self),
1023-
parameter, to_str(val))
1022+
logger.debug('setting nodelevel(%s) input %s = %s', str(self),
1023+
parameter, str(val))
10241024
self._set_mapnode_input(parameter, deepcopy(val))
10251025

10261026
def _set_mapnode_input(self, name, newvalue):
1027-
logger.debug('setting mapnode(%s) input: %s -> %s', to_str(self), name,
1028-
to_str(newvalue))
1027+
logger.debug('setting mapnode(%s) input: %s -> %s', str(self), name,
1028+
str(newvalue))
10291029
if name in self.iterfield:
10301030
setattr(self._inputs, name, newvalue)
10311031
else:

nipype/pipeline/engine/utils.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,7 @@
2121
from ... import logging, config, LooseVersion
2222
from ...utils.filemanip import (
2323
relpath,
24-
makedirs,
2524
fname_presuffix,
26-
to_str,
2725
ensure_list,
2826
get_related_files,
2927
FileNotFoundError,
@@ -117,7 +115,7 @@ def write_report(node, report_type=None, is_mapnode=False):
117115
cwd = node.output_dir()
118116
report_dir = os.path.join(cwd, '_report')
119117
report_file = os.path.join(report_dir, 'report.rst')
120-
makedirs(report_dir, exist_ok=True)
118+
os.makedirs(report_dir, exist_ok=True)
121119

122120
logger.debug('[Node] Writing %s-exec report to "%s"', report_type[:-4],
123121
report_file)
@@ -627,7 +625,7 @@ def _get_valid_pathstr(pathstr):
627625
Replaces: ',' -> '.'
628626
"""
629627
if not isinstance(pathstr, (str, bytes)):
630-
pathstr = to_str(pathstr)
628+
pathstr = str(pathstr)
631629
pathstr = pathstr.replace(os.sep, '..')
632630
pathstr = re.sub(r'''[][ (){}?:<>#!|"';]''', '', pathstr)
633631
pathstr = pathstr.replace(',', '.')
@@ -1355,7 +1353,7 @@ def export_graph(graph_in,
13551353
if base_dir is None:
13561354
base_dir = os.getcwd()
13571355

1358-
makedirs(base_dir, exist_ok=True)
1356+
os.makedirs(base_dir, exist_ok=True)
13591357
out_dot = fname_presuffix(
13601358
dotfilename, suffix='_detailed.dot', use_ext=False, newpath=base_dir)
13611359
_write_detailed_dot(graph, out_dot)

nipype/pipeline/engine/workflows.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
from ...interfaces.base import (traits, TraitedSpec, TraitDictObject,
2424
TraitListObject)
25-
from ...utils.filemanip import save_json, makedirs, to_str
25+
from ...utils.filemanip import save_json
2626
from .utils import (generate_expanded_graph, export_graph, write_workflow_prov,
2727
write_workflow_resources, format_dot, topological_sort,
2828
get_print_name, merge_dict, format_node)
@@ -218,12 +218,12 @@ def connect(self, *args, **kwargs):
218218
edge_data = self._graph.get_edge_data(srcnode, destnode, None)
219219
if edge_data:
220220
logger.debug('(%s, %s): Edge data exists: %s', srcnode,
221-
destnode, to_str(edge_data))
221+
destnode, str(edge_data))
222222
for data in connects:
223223
if data not in edge_data['connect']:
224224
edge_data['connect'].append(data)
225225
if disconnect:
226-
logger.debug('Removing connection: %s', to_str(data))
226+
logger.debug('Removing connection: %s', str(data))
227227
edge_data['connect'].remove(data)
228228
if edge_data['connect']:
229229
self._graph.add_edges_from([(srcnode, destnode,
@@ -240,7 +240,7 @@ def connect(self, *args, **kwargs):
240240
})])
241241
edge_data = self._graph.get_edge_data(srcnode, destnode)
242242
logger.debug('(%s, %s): new edge data: %s', srcnode, destnode,
243-
to_str(edge_data))
243+
str(edge_data))
244244

245245
def disconnect(self, *args):
246246
"""Disconnect nodes
@@ -256,7 +256,7 @@ def disconnect(self, *args):
256256

257257
for srcnode, dstnode, conn in connection_list:
258258
logger.debug('disconnect(): %s->%s %s', srcnode, dstnode,
259-
to_str(conn))
259+
str(conn))
260260
if self in [srcnode, dstnode]:
261261
raise IOError(
262262
'Workflow connect cannot contain itself as node: src[%s] '
@@ -277,10 +277,10 @@ def disconnect(self, *args):
277277
# idx = ed_conns.index(edge)
278278
remove.append((edge[0], edge[1]))
279279

280-
logger.debug('disconnect(): remove list %s', to_str(remove))
280+
logger.debug('disconnect(): remove list %s', str(remove))
281281
for el in remove:
282282
edge_data['connect'].remove(el)
283-
logger.debug('disconnect(): removed connection %s', to_str(el))
283+
logger.debug('disconnect(): removed connection %s', str(el))
284284

285285
if not edge_data['connect']:
286286
self._graph.remove_edge(srcnode, dstnode)
@@ -410,7 +410,7 @@ def write_graph(self,
410410
base_dir = op.join(base_dir, self.name)
411411
else:
412412
base_dir = os.getcwd()
413-
base_dir = makedirs(base_dir, exist_ok=True)
413+
base_dir = os.makedirs(base_dir, exist_ok=True)
414414
if graph2use in ['hierarchical', 'colored']:
415415
if self.name[:1].isdigit(): # these graphs break if int
416416
raise ValueError('{} graph failed, workflow name cannot begin '
@@ -576,7 +576,7 @@ def run(self, plugin=None, plugin_args=None, updatehash=False):
576576
flatgraph = self._create_flat_graph()
577577
self.config = merge_dict(deepcopy(config._sections), self.config)
578578
logger.info('Workflow %s settings: %s', self.name,
579-
to_str(sorted(self.config)))
579+
str(sorted(self.config)))
580580
self._set_needed_outputs(flatgraph)
581581
execgraph = generate_expanded_graph(deepcopy(flatgraph))
582582
for index, node in enumerate(execgraph.nodes()):
@@ -609,7 +609,7 @@ def _write_report_info(self, workingdir, name, graph):
609609
if workingdir is None:
610610
workingdir = os.getcwd()
611611
report_dir = op.join(workingdir, name)
612-
makedirs(report_dir, exist_ok=True)
612+
os.makedirs(report_dir, exist_ok=True)
613613
shutil.copyfile(
614614
op.join(op.dirname(__file__), 'report_template.html'),
615615
op.join(report_dir, 'index.html'))
@@ -821,7 +821,7 @@ def _set_node_input(self, node, param, source, sourceinfo):
821821
newval = dict(val)
822822
if isinstance(val, TraitListObject):
823823
newval = val[:]
824-
logger.debug('setting node input: %s->%s', param, to_str(newval))
824+
logger.debug('setting node input: %s->%s', param, str(newval))
825825
node.set_input(param, deepcopy(newval))
826826

827827
def _get_all_nodes(self):
@@ -881,9 +881,9 @@ def _generate_flatgraph(self):
881881
# dj: added list() for networkx ver.2
882882
for u, _, d in list(
883883
self._graph.in_edges(nbunch=node, data=True)):
884-
logger.debug('in: connections-> %s', to_str(d['connect']))
884+
logger.debug('in: connections-> %s', str(d['connect']))
885885
for cd in deepcopy(d['connect']):
886-
logger.debug("in: %s", to_str(cd))
886+
logger.debug("in: %s", str(cd))
887887
dstnode = node._get_parameter_node(cd[1], subtype='in')
888888
srcnode = u
889889
srcout = cd[0]
@@ -896,9 +896,9 @@ def _generate_flatgraph(self):
896896
# dj: for ver 2 use list(out_edges)
897897
for _, v, d in list(
898898
self._graph.out_edges(nbunch=node, data=True)):
899-
logger.debug('out: connections-> %s', to_str(d['connect']))
899+
logger.debug('out: connections-> %s', str(d['connect']))
900900
for cd in deepcopy(d['connect']):
901-
logger.debug("out: %s", to_str(cd))
901+
logger.debug("out: %s", str(cd))
902902
dstnode = v
903903
if isinstance(cd[0], tuple):
904904
parameter = cd[0][0]

nipype/pipeline/plugins/tools.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from traceback import format_exception
1313

1414
from ... import logging
15-
from ...utils.filemanip import savepkl, crash2txt, makedirs
15+
from ...utils.filemanip import savepkl, crash2txt
1616

1717
logger = logging.getLogger('nipype.workflow')
1818

@@ -42,7 +42,7 @@ def report_crash(node, traceback=None, hostname=None):
4242
str(uuid.uuid4()))
4343
crashdir = node.config['execution'].get('crashdump_dir', os.getcwd())
4444

45-
makedirs(crashdir, exist_ok=True)
45+
os.makedirs(crashdir, exist_ok=True)
4646
crashfile = os.path.join(crashdir, crashfile)
4747

4848
if node.config['execution']['crashfile_format'].lower() in ['text', 'txt']:

nipype/utils/filemanip.py

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -86,14 +86,6 @@ def split_filename(fname):
8686
return pth, fname, ext
8787

8888

89-
def to_str(value):
90-
"""
91-
Manipulates ordered dicts before they are hashed (Py2/3 compat.)
92-
93-
"""
94-
return str(value)
95-
96-
9789
def fname_presuffix(fname, prefix='', suffix='', newpath=None, use_ext=True):
9890
"""Manipulates path and name of input filename
9991
@@ -711,31 +703,6 @@ def dist_is_editable(dist):
711703
return False
712704

713705

714-
def makedirs(path, exist_ok=False):
715-
"""
716-
Create path, if it doesn't exist.
717-
718-
Parameters
719-
----------
720-
path : output directory to create
721-
722-
"""
723-
if not exist_ok: # The old makedirs
724-
os.makedirs(path)
725-
return path
726-
727-
# this odd approach deals with concurrent directory cureation
728-
if not op.exists(op.abspath(path)):
729-
fmlogger.debug("Creating directory %s", path)
730-
try:
731-
os.makedirs(path)
732-
except OSError:
733-
fmlogger.debug("Problem creating directory %s", path)
734-
if not op.exists(path):
735-
raise OSError('Could not create directory %s' % path)
736-
return path
737-
738-
739706
def emptydirs(path, noexist_ok=False):
740707
"""
741708
Empty an existing directory, without deleting it. Do not
@@ -769,7 +736,7 @@ def emptydirs(path, noexist_ok=False):
769736
else:
770737
raise ex
771738

772-
makedirs(path)
739+
os.makedirs(path)
773740

774741

775742
def which(cmd, env=None, pathext=None):

0 commit comments

Comments
 (0)