diff --git a/nipype/info.py b/nipype/info.py index 8d6421b446..bbf2e8b157 100644 --- a/nipype/info.py +++ b/nipype/info.py @@ -45,7 +45,7 @@ def get_nipype_gitversion(): if __version__.endswith('-dev'): gitversion = get_nipype_gitversion() if gitversion: - __version__ = __version__.replace('-dev', '-' + gitversion + '.dev') + __version__ = '{}+{}'.format(__version__, gitversion) CLASSIFIERS = ['Development Status :: 5 - Production/Stable', 'Environment :: Console', @@ -141,7 +141,8 @@ def get_nipype_gitversion(): 'funcsigs', 'pytest>=%s' % PYTEST_MIN_VERSION, 'mock', - 'pydotplus' + 'pydotplus', + 'packaging', ] if sys.version_info <= (3, 4): diff --git a/nipype/interfaces/base.py b/nipype/interfaces/base.py index f2f876b784..8d7c53cde1 100644 --- a/nipype/interfaces/base.py +++ b/nipype/interfaces/base.py @@ -31,6 +31,7 @@ from warnings import warn import simplejson as json from dateutil.parser import parse as parseutc +from packaging.version import Version from .. import config, logging, LooseVersion, __version__ from ..utils.provenance import write_provenance @@ -43,7 +44,7 @@ from ..external.due import due runtime_profile = str2bool(config.get('execution', 'profile_runtime')) -nipype_version = LooseVersion(__version__) +nipype_version = Version(__version__) iflogger = logging.getLogger('interface') FLOAT_FORMAT = '{:.10f}'.format @@ -352,6 +353,7 @@ class BaseTraitedSpec(traits.HasTraits): XXX Reconsider this in the long run, but it seems like the best solution to move forward on the refactoring. """ + package_version = nipype_version def __init__(self, **kwargs): """ Initialize handlers and inputs""" @@ -444,7 +446,7 @@ def _deprecated_warn(self, obj, name, old, new): else: msg3 = '' msg = ' '.join((msg1, msg2, msg3)) - if LooseVersion(str(trait_spec.deprecated)) < nipype_version: + if Version(str(trait_spec.deprecated)) < self.package_version: raise TraitError(msg) else: if trait_spec.new_name: diff --git a/requirements.txt b/requirements.txt index 65b9beb7ab..ce2adf9d09 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,3 +13,4 @@ configparser pytest>=3.0 mock pydotplus +packaging diff --git a/rtd_requirements.txt b/rtd_requirements.txt index 71e2e3d4bc..1ee6c766ac 100644 --- a/rtd_requirements.txt +++ b/rtd_requirements.txt @@ -14,3 +14,4 @@ mock pydotplus psutil matplotlib +packaging