diff --git a/dependencies.py b/dependencies.py index 3a6db739df..1fda88650b 100755 --- a/dependencies.py +++ b/dependencies.py @@ -15,8 +15,8 @@ def _pyside(rev, marker=True): _QT_COMMENT = 'solution visualization for builtin discretizations' _PYTEST = 'pytest>=3.2' tests_require = [_PYTEST, 'pytest-cov', 'envparse', 'docker'] -install_requires = ['cython>=0.20.1', 'numpy>=1.8.1', 'scipy>=0.13.3', 'Sphinx>=1.4.0', 'docopt', 'Qt.py>=1.0.0b3'] -setup_requires = ['pytest-runner>=2.9', 'cython>=0.20.1', 'numpy>=1.8.1'] +install_requires = ['cython>=0.20.1', 'numpy>=1.8.1', 'scipy>=0.13.3', 'Sphinx>=1.4.0', 'docopt', 'Qt.py>=1.0.0b3', 'packaging'] +setup_requires = ['pytest-runner>=2.9', 'cython>=0.20.1', 'numpy>=1.8.1', 'packaging'] install_suggests = {'ipython>=3.0': 'an enhanced interactive python shell', 'ipyparallel': 'required for pymor.parallel.ipython', 'matplotlib': 'needed for error plots in demo scipts', diff --git a/requirements.txt b/requirements.txt index ca2bea1df9..d225df93f0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,5 +4,6 @@ Sphinx>=1.4.0 cython>=0.20.1 docopt numpy>=1.8.1 +packaging pytest-runner>=2.9 scipy>=0.13.3 diff --git a/src/pymor/tools/mpi.py b/src/pymor/tools/mpi.py index 00bb853b20..703b06894c 100644 --- a/src/pymor/tools/mpi.py +++ b/src/pymor/tools/mpi.py @@ -53,6 +53,8 @@ import sys +from packaging.version import Version + from pymor.core.config import config from pymor.core.defaults import defaults from pymor.core.pickle import dumps, loads @@ -64,14 +66,14 @@ rank = comm.Get_rank() size = comm.Get_size() finished = False - mpi4py_version = list(map(int, mpi4py.__version__.split('.'))) - if mpi4py_version >= [2, 0]: + mpi4py_version = Version(mpi4py.__version__) + if mpi4py_version == Version('2.0'): import pymor.core.pickle MPI.pickle.PROTOCOL = pymor.core.pickle.PROTOCOL MPI.pickle.loads = pymor.core.pickle.loads MPI.pickle.dumps = pymor.core.pickle.dumps else: - mpi4py_version = [] + mpi4py_version = Version('0.0') rank = 0 size = 1 finished = True @@ -99,7 +101,7 @@ def event_loop_settings(auto_launch=True): return {'auto_launch': auto_launch} -if mpi4py_version >= [2, 0]: +if mpi4py_version == Version('2.0'): def event_loop(): """Launches an MPI-based event loop.