Closed
Description
Summary
distutils is deprecated. Here is the output of grep -rI distutils .
in the nipype root:
./doc/changelog/0.X.X-changelog.rst:* ENH: Abandon distutils, only use setuptools (https://github.com/nipy/nipype/pull/1627)
./nipype/interfaces/afni/base.py:from distutils import spawn
./nipype/interfaces/dipy/preprocess.py:from distutils.version import LooseVersion
./nipype/interfaces/dipy/reconstruction.py:from distutils.version import LooseVersion
./nipype/interfaces/dipy/registration.py:from distutils.version import LooseVersion
./nipype/interfaces/dipy/setup.py: from numpy.distutils.misc_util import Configuration
./nipype/interfaces/dipy/setup.py: from numpy.distutils.core import setup
./nipype/interfaces/dipy/stats.py:from distutils.version import LooseVersion
./nipype/interfaces/dipy/tracks.py:from distutils.version import LooseVersion
./nipype/interfaces/mrtrix3/connectivity.py: from distutils.spawn import find_executable
./nipype/interfaces/niftyreg/base.py:from distutils.version import StrictVersion
./nipype/interfaces/slicer/generate_classes.py: from numpy.distutils.misc_util import Configuration
./nipype/interfaces/slicer/generate_classes.py: from numpy.distutils.core import setup
./nipype/utils/misc.py:from distutils.version import LooseVersion
./nipype/utils/misc.py: distutils.version.LooseVersion.
./nipype/utils/config.py:from distutils.version import LooseVersion
./nipype/__init__.py:from distutils.version import LooseVersion
./tools/toollib.py:from distutils.dir_util import remove_tree
We can break this down into groups:
LooseVersion
- We import this directly from distutils in many places and also import it intonipype.__init__.py
from which it is imported in many other places. The semantics of LooseVersion are not the same aspackaging.version.Version
, although in most places it should generally be close enough. Are we okay with a blanket replace?StrictVersion
- Probably safe to replace withVersion
?distutils.spawn.find_executable
- We can useshutil.which
numpy.distutils
- Used indipy/setup.py
and files generated byslicer/generate_classes.py
; I don't understand this use case so I'm hesitant to do anything.distutils.dir_util.remove_tree
- I don't thinktools/toollib.py
is part of anybody's workflow. Easier just to remove? Alternately, can useshutil.rmtree
.
Assigning to 1.8 so that there will be a semver hurdle.
Metadata
Metadata
Assignees
Labels
No labels