From 00f5587a19da756adf762874dc0965a210935394 Mon Sep 17 00:00:00 2001 From: Stephan Rave Date: Fri, 29 Sep 2017 13:57:32 +0200 Subject: [PATCH 1/4] depend on packaging for version string parsing --- dependencies.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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', From c7c41e658f5ba6417014a4ebbf1afdcf385da60e Mon Sep 17 00:00:00 2001 From: Stephan Rave Date: Fri, 29 Sep 2017 13:59:42 +0200 Subject: [PATCH 2/4] [mpi] fix version string parsing --- src/pymor/tools/mpi.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/pymor/tools/mpi.py b/src/pymor/tools/mpi.py index 00bb853b20..6aa6f09411 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. From 12da587fb28ca0f05343ff827cf9da4393d5659f Mon Sep 17 00:00:00 2001 From: Stephan Rave Date: Fri, 29 Sep 2017 14:00:08 +0200 Subject: [PATCH 3/4] [mpi] pickling methods currently cannot be changed for mpi4py > 2.0 --- src/pymor/tools/mpi.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pymor/tools/mpi.py b/src/pymor/tools/mpi.py index 6aa6f09411..703b06894c 100644 --- a/src/pymor/tools/mpi.py +++ b/src/pymor/tools/mpi.py @@ -67,7 +67,7 @@ size = comm.Get_size() finished = False mpi4py_version = Version(mpi4py.__version__) - if mpi4py_version >= Version('2.0'): + if mpi4py_version == Version('2.0'): import pymor.core.pickle MPI.pickle.PROTOCOL = pymor.core.pickle.PROTOCOL MPI.pickle.loads = pymor.core.pickle.loads @@ -101,7 +101,7 @@ def event_loop_settings(auto_launch=True): return {'auto_launch': auto_launch} -if mpi4py_version >= Version('2.0'): +if mpi4py_version == Version('2.0'): def event_loop(): """Launches an MPI-based event loop. From ead43fa369ce2a0e49d371d18f460a978d8fc454 Mon Sep 17 00:00:00 2001 From: Stephan Rave Date: Fri, 29 Sep 2017 14:17:51 +0200 Subject: [PATCH 4/4] update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) 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