From b73627c5de406cf7495ccc72449e7641702cf527 Mon Sep 17 00:00:00 2001 From: Stephan Grein <1750463+stephanmg@users.noreply.github.com> Date: Tue, 11 Jan 2022 16:46:24 +0100 Subject: [PATCH 1/8] Allowing all integer parameter vector. (#1634) --- python/amici/parameter_mapping.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/amici/parameter_mapping.py b/python/amici/parameter_mapping.py index 23e98e0bfc..23eb190dc1 100644 --- a/python/amici/parameter_mapping.py +++ b/python/amici/parameter_mapping.py @@ -246,7 +246,7 @@ def _get_par(model_par, value): ] if parameters: - edata.parameters = parameters + edata.parameters = np.asarray(parameters, dtype=float) if scales: edata.pscale = amici.parameterScalingFromIntVector(scales) From c15bf1abc30aa5dba2f41cdd93b741d5a738cace Mon Sep 17 00:00:00 2001 From: Daniel Weindl Date: Wed, 12 Jan 2022 19:46:01 +0100 Subject: [PATCH 2/8] Fix tempdir deletion issues for test suite on Windows (#1636) --- python/amici/testing.py | 5 +++++ python/tests/test_misc.py | 11 ++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/python/amici/testing.py b/python/amici/testing.py index 83980e02ed..7fa8d950aa 100644 --- a/python/amici/testing.py +++ b/python/amici/testing.py @@ -17,3 +17,8 @@ def cleanup(self): except PermissionError as e: if sys.platform not in {'win32', 'cygwin'}: raise e + except NotADirectoryError: + # Ignore exception on Windows for pyd files: + # NotADirectoryError: [WinError 267] The directory name is + # invalid: '....pyd' + pass diff --git a/python/tests/test_misc.py b/python/tests/test_misc.py index 6445b5d511..9bb9ebede3 100644 --- a/python/tests/test_misc.py +++ b/python/tests/test_misc.py @@ -2,14 +2,15 @@ import os import subprocess -from tempfile import TemporaryDirectory -import amici -from amici.ode_export import smart_subs_dict import libsbml import pytest import sympy as sp -from amici.ode_export import _monkeypatched, _custom_pow_eval_derivative + +import amici +from amici.ode_export import _custom_pow_eval_derivative, _monkeypatched, \ + smart_subs_dict +from amici.testing import TemporaryDirectoryWinSafe as TemporaryDirectory def test_parameter_scaling_from_int_vector(): @@ -109,7 +110,7 @@ def test_smart_subs_dict(): assert sp.simplify(result_default - expected_default).is_zero assert sp.simplify(result_reverse - expected_reverse).is_zero - + def test_monkeypatch(): t = sp.Symbol('t') n = sp.Symbol('n') From a4f6610ec9d8dae274f355772dc895bd25843ecd Mon Sep 17 00:00:00 2001 From: Daniel Weindl Date: Wed, 12 Jan 2022 21:13:11 +0100 Subject: [PATCH 3/8] Add environment variable AMICI_DLL_DIRS to control DLL directories on Windows (#1637) Since Python3.8, external DLL directories need to be added via os.add_dll_directory. This change provides the AMICI_DLL_DIRS environment variable as an alternative way to specify these directories. Also, upgrades OpenBLAS to 0.3.19 and runs Windows tests on Python 3.8. --- .github/workflows/test_windows.yml | 14 +++++++++++++- documentation/python_installation.rst | 4 ++-- scripts/installOpenBLAS.ps1 | 2 +- swig/amici.i | 11 +++++++++++ 4 files changed, 27 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test_windows.yml b/.github/workflows/test_windows.yml index bf6c8d80df..72706c7ae1 100644 --- a/.github/workflows/test_windows.yml +++ b/.github/workflows/test_windows.yml @@ -9,9 +9,19 @@ jobs: env: AMICI_SKIP_CMAKE_TESTS: "TRUE" - openBLAS_version: "0.3.12" + openBLAS_version: "0.3.19" + AMICI_DLL_DIRS: "C:\\BLAS\\bin" + + strategy: + matrix: + python-version: [ "3.8" ] steps: + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - uses: actions/checkout@master - run: git fetch --prune --unshallow @@ -48,5 +58,7 @@ jobs: shell: bash run: pip install -v $(ls -t dist/amici-*.tar.gz | head -1) + - run: python -m amici + - name: Run Python tests run: python -m pytest --ignore-glob=*petab* --ignore-glob=*special* python/tests diff --git a/documentation/python_installation.rst b/documentation/python_installation.rst index 59e98dc285..5380beccde 100644 --- a/documentation/python_installation.rst +++ b/documentation/python_installation.rst @@ -268,7 +268,7 @@ by MSVC (see Visual Studio above). ``KERNEL32.dll`` is part of Windows and in .. note:: - Since Python 3.8, the library directory needs to be set as follows: + Since Python 3.8, the library directory needs to be set either from Python: .. code-block:: python @@ -277,7 +277,7 @@ by MSVC (see Visual Studio above). ``KERNEL32.dll`` is part of Windows and in os.add_dll_directory("C:\\BLAS\\bin") import amici - Adding it to ``PATH`` will not work. + or via the environment variable ``AMICI_DLL_DIRS``. Further topics ++++++++++++++ diff --git a/scripts/installOpenBLAS.ps1 b/scripts/installOpenBLAS.ps1 index 11f0e931fa..22cccbdbac 100644 --- a/scripts/installOpenBLAS.ps1 +++ b/scripts/installOpenBLAS.ps1 @@ -1,5 +1,5 @@ Write-Host 'script installOpenBLAS.ps1 started' -$version = '0.3.12' +$version = '0.3.19' New-Item -Path 'C:\BLAS' -ItemType Directory -Force # create directory # Enforce stronger cryptography [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12 diff --git a/swig/amici.i b/swig/amici.i index 09b74411b9..f62845e62f 100644 --- a/swig/amici.i +++ b/swig/amici.i @@ -189,6 +189,17 @@ RDataReporting = enum('RDataReporting') %template(SteadyStateStatusVector) std::vector; +%pythonbegin %{ +import sys +import os + +if sys.platform == 'win32': + for dll_dir in os.environ.get("AMICI_DLL_DIRS", "").split(os.pathsep): + os.add_dll_directory(dll_dir) + +%} + + // add module docstring and import additional types for typehints %pythonbegin %{ """ From dd12502c11edd23938f3a4492d222d321494a68a Mon Sep 17 00:00:00 2001 From: Daniel Weindl Date: Wed, 12 Jan 2022 22:07:40 +0100 Subject: [PATCH 4/8] Drop Python3.7 support (#1635) ... following numpy. Supported Python versions are 3.8--3.10. All tests are run (at least) on Python 3.8, except for macos tests which uses the default system python (currently 3.9). Closes #1633 * Update valgrind suppressions * CMake: require py>=3.8 * Performance test: More time for sdist after change to 'build' * GHA: Use Python3.8 as default * Doc: Update Python requirement * Allow numpy >=1.22.0 * Fixup sdist --- .github/workflows/deploy_branch.yml | 9 + .github/workflows/deploy_protected.yml | 8 + .github/workflows/deploy_release.yml | 9 + .../test_benchmark_collection_models.yml | 9 + .github/workflows/test_doc.yml | 24 ++- .github/workflows/test_install.yml | 18 ++ .github/workflows/test_performance.yml | 14 +- .github/workflows/test_petab_test_suite.yml | 9 + .github/workflows/test_pypi.yml | 2 +- .github/workflows/test_python_cplusplus.yml | 9 + .github/workflows/test_python_ver_matrix.yml | 6 +- .../test_sbml_semantic_test_suite.yml | 6 + .github/workflows/test_valgrind.yml | 9 + documentation/README.md | 2 +- documentation/gfx/amici_workflow.png | Bin 71923 -> 96968 bytes documentation/gfx/amici_workflow.svg | 102 +++++------ documentation/python_installation.rst | 2 +- python/CMakeLists.txt | 2 +- python/sdist/pyproject.toml | 1 - python/sdist/setup.cfg | 9 +- python/tests/conftest.py | 3 +- python/tests/valgrind-python.supp | 159 +++++++++++++++++- scripts/installOpenBLAS.ps1 | 1 + scripts/run-valgrind-py.sh | 3 + tests/performance/reference.yml | 2 +- 25 files changed, 336 insertions(+), 82 deletions(-) diff --git a/.github/workflows/deploy_branch.yml b/.github/workflows/deploy_branch.yml index b424109974..0e0ee6e61c 100644 --- a/.github/workflows/deploy_branch.yml +++ b/.github/workflows/deploy_branch.yml @@ -7,7 +7,16 @@ jobs: runs-on: ubuntu-20.04 + strategy: + matrix: + python-version: [3.8] + steps: + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - uses: actions/checkout@master with: fetch-depth: 20 diff --git a/.github/workflows/deploy_protected.yml b/.github/workflows/deploy_protected.yml index 9f1253795b..b5f02fc38d 100644 --- a/.github/workflows/deploy_protected.yml +++ b/.github/workflows/deploy_protected.yml @@ -16,7 +16,15 @@ jobs: runs-on: ubuntu-20.04 + strategy: + matrix: + python-version: [3.8] + steps: + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} - uses: actions/checkout@master - run: git archive -o docker/amici.tar.gz --format=tar.gz HEAD - name: Publish to Registry diff --git a/.github/workflows/deploy_release.yml b/.github/workflows/deploy_release.yml index 44f51057a1..48fcd50df5 100644 --- a/.github/workflows/deploy_release.yml +++ b/.github/workflows/deploy_release.yml @@ -10,7 +10,16 @@ jobs: runs-on: ubuntu-20.04 + strategy: + matrix: + python-version: [3.8] + steps: + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - uses: actions/checkout@master with: fetch-depth: 20 diff --git a/.github/workflows/test_benchmark_collection_models.yml b/.github/workflows/test_benchmark_collection_models.yml index fe946ba1c0..9aa9b13f3f 100644 --- a/.github/workflows/test_benchmark_collection_models.yml +++ b/.github/workflows/test_benchmark_collection_models.yml @@ -19,7 +19,16 @@ jobs: runs-on: ubuntu-20.04 + strategy: + matrix: + python-version: [ 3.8 ] + steps: + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - uses: actions/checkout@master with: fetch-depth: 20 diff --git a/.github/workflows/test_doc.yml b/.github/workflows/test_doc.yml index f2fc8ab6c1..4bcc6beea3 100644 --- a/.github/workflows/test_doc.yml +++ b/.github/workflows/test_doc.yml @@ -18,7 +18,16 @@ jobs: runs-on: ubuntu-20.04 + strategy: + matrix: + python-version: [3.8] + steps: + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - uses: actions/checkout@master - run: git fetch --prune --unshallow @@ -44,7 +53,16 @@ jobs: runs-on: ubuntu-20.04 + strategy: + matrix: + python-version: [ 3.8 ] + steps: + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - uses: actions/checkout@master - run: git fetch --prune --unshallow @@ -55,12 +73,6 @@ jobs: run: | sudo scripts/downloadAndBuildDoxygen.sh - - name: Set up Python 3.8 - uses: actions/setup-python@v2 - with: - # Semantic version range syntax or exact version of a Python version - python-version: '3.8' - # install amici dependencies - name: apt run: | diff --git a/.github/workflows/test_install.yml b/.github/workflows/test_install.yml index b47ae6b090..58ad6693a5 100644 --- a/.github/workflows/test_install.yml +++ b/.github/workflows/test_install.yml @@ -7,7 +7,16 @@ jobs: runs-on: ubuntu-20.04 + strategy: + matrix: + python-version: [3.8] + steps: + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - uses: actions/checkout@master - run: git fetch --prune --unshallow @@ -46,7 +55,16 @@ jobs: runs-on: ubuntu-20.04 + strategy: + matrix: + python-version: [3.8] + steps: + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - uses: actions/checkout@master - run: git fetch --prune --unshallow diff --git a/.github/workflows/test_performance.yml b/.github/workflows/test_performance.yml index b5c92449a6..3ee2aad159 100644 --- a/.github/workflows/test_performance.yml +++ b/.github/workflows/test_performance.yml @@ -21,7 +21,16 @@ jobs: runs-on: ubuntu-20.04 + strategy: + matrix: + python-version: [3.8] + steps: + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - uses: actions/checkout@master with: fetch-depth: 20 @@ -31,7 +40,7 @@ jobs: run: | sudo apt-get update \ && sudo apt-get install -y swig libatlas-base-dev - - run: pip3 install petab shyaml + - run: pip3 install petab shyaml build - run: echo "${HOME}/.local/bin/" >> $GITHUB_PATH - run: echo "${GITHUB_WORKSPACE}/tests/performance/" >> $GITHUB_PATH @@ -40,7 +49,8 @@ jobs: - name: Create AMICI sdist run: | cd python/sdist \ - && check_time.sh create_sdist /usr/bin/python3 setup.py sdist + && check_time.sh create_sdist python3 -m build --sdist + - name: Install AMICI sdist run: | AMICI_PARALLEL_COMPILE=2 check_time.sh \ diff --git a/.github/workflows/test_petab_test_suite.yml b/.github/workflows/test_petab_test_suite.yml index 26148154a1..ddb277be3a 100644 --- a/.github/workflows/test_petab_test_suite.yml +++ b/.github/workflows/test_petab_test_suite.yml @@ -21,7 +21,16 @@ jobs: env: ENABLE_GCOV_COVERAGE: TRUE + strategy: + matrix: + python-version: [3.8] + steps: + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - uses: actions/checkout@master with: fetch-depth: 20 diff --git a/.github/workflows/test_pypi.yml b/.github/workflows/test_pypi.yml index 138a933952..da50ad7389 100644 --- a/.github/workflows/test_pypi.yml +++ b/.github/workflows/test_pypi.yml @@ -11,7 +11,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [3.7, 3.8, 3.9] + python-version: [3.8, 3.9, '3.10'] os: [ubuntu-20.04, macos-latest] runs-on: ${{ matrix.os }} diff --git a/.github/workflows/test_python_cplusplus.yml b/.github/workflows/test_python_cplusplus.yml index a5c8cc7823..d908c7a647 100644 --- a/.github/workflows/test_python_cplusplus.yml +++ b/.github/workflows/test_python_cplusplus.yml @@ -12,7 +12,16 @@ jobs: ENABLE_GCOV_COVERAGE: "TRUE" CI_SONARCLOUD: "TRUE" + strategy: + matrix: + python-version: [ 3.8 ] + steps: + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - uses: actions/checkout@master - run: git fetch --prune --unshallow diff --git a/.github/workflows/test_python_ver_matrix.yml b/.github/workflows/test_python_ver_matrix.yml index 0412483141..de5b6fb373 100644 --- a/.github/workflows/test_python_ver_matrix.yml +++ b/.github/workflows/test_python_ver_matrix.yml @@ -22,12 +22,8 @@ jobs: strategy: fail-fast: false matrix: - python-version: [3.7, 3.8, 3.9, '3.10'] + python-version: [3.8, 3.9, '3.10'] experimental: [false] -# Temporarily disabled because the respective jobs somehow runs infinitely -# include: -# - python-version: 3.10.0-alpha.5 -# experimental: true steps: - run: echo "AMICI_DIR=$(pwd)" >> $GITHUB_ENV diff --git a/.github/workflows/test_sbml_semantic_test_suite.yml b/.github/workflows/test_sbml_semantic_test_suite.yml index f08e4c5a7d..ed0e5d9553 100644 --- a/.github/workflows/test_sbml_semantic_test_suite.yml +++ b/.github/workflows/test_sbml_semantic_test_suite.yml @@ -27,8 +27,14 @@ jobs: matrix: cases: ["1 - 250", "251 - 500", "501 - 750", "751 - 1000", "1000-1250", "1251-1780"] + python-version: [ 3.8 ] steps: + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - uses: actions/checkout@master with: fetch-depth: 1 diff --git a/.github/workflows/test_valgrind.yml b/.github/workflows/test_valgrind.yml index 3a0f3a1eed..17b39b5a24 100644 --- a/.github/workflows/test_valgrind.yml +++ b/.github/workflows/test_valgrind.yml @@ -16,7 +16,16 @@ jobs: # TODO: prepare image with more deps preinstalled runs-on: ubuntu-20.04 + strategy: + matrix: + python-version: [ 3.8 ] + steps: + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - uses: actions/checkout@master - run: git fetch --prune --unshallow diff --git a/documentation/README.md b/documentation/README.md index aa1de6382a..ac5d1b12b7 100644 --- a/documentation/README.md +++ b/documentation/README.md @@ -67,7 +67,7 @@ Graphics for documentation are kept in `documentation/gfx/`. ### When using Markdown -* Note that there are some incompatibilities of Github Markdown and Doxygen +* Note that there are some incompatibilities of GitHub Markdown and Doxygen Markdown. Ideally documentation should be written in a format compatible with both. This affects for example images links which currently cause trouble in diff --git a/documentation/gfx/amici_workflow.png b/documentation/gfx/amici_workflow.png index 302f7fc75e360687744af98486c49c29d511a3e7..5452e7ce9dc42aa387f0a1f1686914c79beb9170 100644 GIT binary patch literal 96968 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 BP_e2yP%mr41mD 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 lGvS@LQon46bP;@QVNvf?ow#67A@}X@Tc$H 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 diff --git a/documentation/gfx/amici_workflow.svg b/documentation/gfx/amici_workflow.svg index 88544f2562..0ae2f5b4ae 100644 --- a/documentation/gfx/amici_workflow.svg +++ b/documentation/gfx/amici_workflow.svg @@ -2,25 +2,25 @@ + inkscape:export-ydpi="90" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:i="http://ns.adobe.com/AdobeIllustrator/10.0/"> + fit-margin-bottom="0" + inkscape:pagecheckerboard="0" /> @@ -592,7 +593,6 @@ image/svg+xml - @@ -665,16 +665,16 @@ id="text22112" y="65.034897" x="149.03789" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.96875px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.96875px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" xml:space="preserve">.a / .so amici::runAmiciSimulation(...) + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583px">amici::runAmiciSimulation(...) Symbolic Math ToolboxMatlab < R2018a @@ -1103,7 +1103,7 @@ width="23.868874" /> Matlab + style="stroke-width:0.264583px">Matlab .mex + style="stroke-width:0.264583px">.mex >= 3.7 + style="stroke-width:0.264583px">>= 3.8 Python Python module / package + style="text-align:center;text-anchor:middle;stroke-width:0.264583px">module / package Model Model importModel importsymbolic processing& C++ code generation Model compilation Model simulation AMICI interfaces diff --git a/documentation/python_installation.rst b/documentation/python_installation.rst index 5380beccde..73bb25fc8f 100644 --- a/documentation/python_installation.rst +++ b/documentation/python_installation.rst @@ -8,7 +8,7 @@ Short guide Installation of the AMICI Python package has the following prerequisites: -* Python>=3.7 +* Python>=3.8 * :term:`SWIG`>=3.0 * CBLAS compatible BLAS library (e.g., OpenBLAS, CBLAS, Atlas, Accelerate, Intel MKL) diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index 203e3103e3..96df500377 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -2,7 +2,7 @@ if(${CMAKE_VERSION} VERSION_LESS "3.12.0") if(DEFINED ENV{PYTHON_EXECUTABLE}) set( PYTHON_EXECUTABLE $ENV{PYTHON_EXECUTABLE} ) endif() - find_package(PythonInterp 3.7 REQUIRED) + find_package(PythonInterp 3.8 REQUIRED) set(Python3_EXECUTABLE ${PYTHON_EXECUTABLE}) else() find_package (Python3 COMPONENTS Interpreter) diff --git a/python/sdist/pyproject.toml b/python/sdist/pyproject.toml index 31c8ed75ae..6b2b36a78d 100644 --- a/python/sdist/pyproject.toml +++ b/python/sdist/pyproject.toml @@ -12,7 +12,6 @@ requires = [ # See also: # https://github.com/scipy/oldest-supported-numpy/blob/master/setup.cfg # https://github.com/h5py/h5py/blob/master/setup.py - "numpy==1.14.5; python_version=='3.7'", "numpy==1.17.5; python_version=='3.8'", "numpy==1.19.3; python_version=='3.9'", "numpy==1.21.4; python_version>='3.10'", diff --git a/python/sdist/setup.cfg b/python/sdist/setup.cfg index c34c607740..3659ae13a1 100644 --- a/python/sdist/setup.cfg +++ b/python/sdist/setup.cfg @@ -25,13 +25,12 @@ classifiers = packages = find: package_dir = amici = amici -python_requires = >=3.7 +python_requires = >=3.8 install_requires = sympy>=1.9 - numpy>=1.14.5, <1.22.0; python_version=='3.7' - numpy>=1.17.5, <1.22.0; python_version=='3.8' - numpy>=1.19.3, <1.22.0; python_version=='3.9' - numpy>=1.21.4, <1.22.0; python_version>='3.10' + numpy>=1.17.5; python_version=='3.8' + numpy>=1.19.3; python_version=='3.9' + numpy>=1.21.4; python_version>='3.10' python-libsbml h5py pandas diff --git a/python/tests/conftest.py b/python/tests/conftest.py index d5a9dd6433..33b71294c7 100644 --- a/python/tests/conftest.py +++ b/python/tests/conftest.py @@ -5,9 +5,10 @@ import shutil import sys -import amici import pytest +import amici + @pytest.fixture(scope="session") def sbml_example_presimulation_module(): diff --git a/python/tests/valgrind-python.supp b/python/tests/valgrind-python.supp index 26499682b4..2b115b2486 100644 --- a/python/tests/valgrind-python.supp +++ b/python/tests/valgrind-python.supp @@ -172,7 +172,7 @@ Memcheck:Cond fun:PyUnicode_Decode fun:PyUnicode_FromEncodedObject - obj:/usr/bin/python3.? + ... } { @@ -202,18 +202,106 @@ fun:__Pyx__PyObject_CallOneArg } +{ + other + Memcheck:Value8 + ... + fun:PyBytes_Repr + fun:PyObject_Str + ... + fun:PyObject_Format + ... +} + { other Memcheck:Cond ... fun:PyBytes_Repr fun:PyObject_Str - obj:/usr/bin/python3.? ... fun:PyObject_Format ... } +{ + _Py_HashBytes + Memcheck:Cond + ... + fun:_Py_HashBytes + ... +} + +{ + _Py_HashBytes + Memcheck:Value8 + ... + fun:_Py_HashBytes + ... +} + +{ + PyDict_SetItem + Memcheck:Cond + fun:PyDict_SetItem + ... +} + +{ + PyDict_SetItem + Memcheck:Value8 + ... + fun:PyDict_SetItem + ... +} + +{ + tuplehash + Memcheck:Cond + fun:tuplehash +} + +{ + + Memcheck:Cond + ... + fun:_PyUnicodeWriter_WriteSubstring + fun:do_markup + ... +} + +{ + _PyUnicodeWriter_WriteSubstring + Memcheck:Value8 + fun:memmove + fun:_PyUnicodeWriter_WriteSubstring + fun:do_markup +} + +{ + sre_match + Memcheck:Cond + ... + fun:sre_ucs1_match + fun:sre_match + ... +} + +{ + sre_ucs1_count + Memcheck:Value8 + ... + fun:sre_ucs1_match + fun:sre_match +} + +{ + PyUnicode_Splitlines + Memcheck:Cond + fun:asciilib_splitlines + fun:PyUnicode_Splitlines +} + { other Memcheck:Value8 @@ -242,6 +330,23 @@ ... } +{ + other + Memcheck:Cond + ... + fun:PyUnicode_Append + ... +} + +{ + other + Memcheck:Value8 + ... + fun:PyUnicode_Append + ... +} + + { other Memcheck:Cond @@ -289,7 +394,7 @@ other Memcheck:Cond fun:memmove - obj:/usr/bin/python3.? + fun:unicode_concatenate ... } @@ -297,7 +402,7 @@ other Memcheck:Value8 fun:memmove - obj:/usr/bin/python3.? + fun:unicode_concatenate ... } @@ -311,6 +416,23 @@ ... } +{ + dict_get_impl + Memcheck:Cond + ... + fun:dict_get_impl + fun:dict_get + ... +} + +{ + lookdict + Memcheck:Value8 + ... + fun:lookdict + ... +} + { other Memcheck:Value8 @@ -486,10 +608,35 @@ } { - PyDict_SetDefault + other + Memcheck:Value8 + ... + fun:PyDict_SetDefault + ... +} + +{ + other + Memcheck:Cond + ... + fun:PyDict_SetDefault + ... +} + +{ + _PyObject_GC_Alloc + Memcheck:Leak + match-leak-kinds: definite + fun:malloc + fun:_PyObject_GC_Alloc + ... +} + +{ + unicode_eq Memcheck:Cond fun:bcmp - obj:/usr/bin/python3.* + fun:unicode_eq ... } diff --git a/scripts/installOpenBLAS.ps1 b/scripts/installOpenBLAS.ps1 index 22cccbdbac..0aa4f856aa 100644 --- a/scripts/installOpenBLAS.ps1 +++ b/scripts/installOpenBLAS.ps1 @@ -9,6 +9,7 @@ $webclient = New-Object System.Net.WebClient $webclient.DownloadFile($uri,"$output") Expand-Archive -Path "C:\BLAS\v$version.zip" -DestinationPath "C:\BLAS\OpenBLAS-$version" -Force # expand zip file cmd /c "scripts\compileBLAS.cmd $version" +cmd /c dumpbin /DEPENDENTS "C:\BLAS\OpenBLAS-$version\OpenBLAS-$version\lib\openblas.dll" New-Item -Path 'C:\BLAS\lib' -ItemType Directory -Force # create directory Copy-Item "C:\BLAS\OpenBLAS-$version\OpenBLAS-$version\lib\Release\openblas.lib" -Destination "C:\BLAS\lib" -Recurse New-Item -Path 'C:\BLAS\bin' -ItemType Directory -Force # create directory diff --git a/scripts/run-valgrind-py.sh b/scripts/run-valgrind-py.sh index 241a6bd23e..53dcd1b497 100755 --- a/scripts/run-valgrind-py.sh +++ b/scripts/run-valgrind-py.sh @@ -14,5 +14,8 @@ cd "${amici_path}"/python/tests source "${amici_path}"/build/venv/bin/activate pip install scipy h5py pytest +# until funny valgrind+h5py+numpy1.22.0 issues are resolved +pip install "numpy<1.22.0" + # PEtab tests are run separately PYTHONMALLOC=malloc valgrind --suppressions=valgrind-python.supp --show-leak-kinds=definite --errors-for-leak-kinds=definite --error-exitcode=1 --leak-check=full --gen-suppressions=all -v python -m pytest -vv --ignore-glob=*petab* diff --git a/tests/performance/reference.yml b/tests/performance/reference.yml index 085363b6ae..6d8c974166 100644 --- a/tests/performance/reference.yml +++ b/tests/performance/reference.yml @@ -1,5 +1,5 @@ # Reference wall times (seconds) with some buffer -create_sdist: 5 +create_sdist: 12 install_sdist: 150 petab_import: 2100 install_model: 120 From 09a287ea1d042a26a05e889fe362ba6a2a2cb121 Mon Sep 17 00:00:00 2001 From: Daniel Weindl Date: Thu, 13 Jan 2022 20:22:16 +0100 Subject: [PATCH 5/8] Add functions to provide state IDs/names for x_solver (#1638) Closes #1549 --- include/amici/model.h | 14 +++++++++- python/amici/ode_export.py | 8 ++++++ .../test_compare_conservation_laws_sbml.py | 13 ++++++--- python/tests/test_swig_interface.py | 2 ++ src/model.ODE_template.cpp | 4 +++ src/model.cpp | 9 +++++++ src/model_header.ODE_template.h | 27 +++++++++++++++++++ 7 files changed, 73 insertions(+), 4 deletions(-) diff --git a/include/amici/model.h b/include/amici/model.h index 8cb1e3be4a..7ba3ff17a6 100644 --- a/include/amici/model.h +++ b/include/amici/model.h @@ -455,6 +455,12 @@ class Model : public AbstractModel, public ModelDimensions { */ virtual std::vector getStateNames() const; + /** + * @brief Get names of the solver states. + * @return State names + */ + virtual std::vector getStateNamesSolver() const; + /** * @brief Report whether the model has fixed parameter names set. * @return Boolean indicating whether fixed parameter names were set. Also @@ -516,10 +522,16 @@ class Model : public AbstractModel, public ModelDimensions { /** * @brief Get IDs of the model states. - * @return Sate IDs + * @return State IDs */ virtual std::vector getStateIds() const; + /** + * @brief Get IDs of the solver states. + * @return State IDs + */ + virtual std::vector getStateIdsSolver() const; + /** * @brief Report whether the model has fixed parameter IDs set. * @return Boolean indicating whether fixed parameter IDs were set. Also diff --git a/python/amici/ode_export.py b/python/amici/ode_export.py index f48c778c24..7e574203a9 100644 --- a/python/amici/ode_export.py +++ b/python/amici/ode_export.py @@ -3192,6 +3192,14 @@ def _write_model_header_cpp(self) -> None: self._get_symbol_id_initializer_list('y'), 'EXPRESSION_IDS_INITIALIZER_LIST': self._get_symbol_id_initializer_list('w'), + 'STATE_IDXS_SOLVER_INITIALIZER_LIST': + ', '.join( + [ + str(idx) + for idx, state in enumerate(self.model._states) + if state._conservation_law is None + ] + ), 'REINIT_FIXPAR_INITCOND': 'true' if self.allow_reinit_fixpar_initcond else 'false', diff --git a/python/tests/test_compare_conservation_laws_sbml.py b/python/tests/test_compare_conservation_laws_sbml.py index 53f14a1bcd..1ca270fb77 100644 --- a/python/tests/test_compare_conservation_laws_sbml.py +++ b/python/tests/test_compare_conservation_laws_sbml.py @@ -66,7 +66,7 @@ def generate_models(): compute_conservation_laws=False) # load both models - model_without_cl_module = amici.import_model_module(model_name, + model_without_cl_module = amici.import_model_module(model_name, module_path=os.path.abspath(model_name)) model_with_cl_module = amici.import_model_module(model_name_cl, module_path=os.path.abspath(model_name_cl)) @@ -101,9 +101,16 @@ def get_results(model, edata=None, sensi_order=0, def test_compare_conservation_laws_sbml(edata_fixture): - # first, create the modek + # first, create the model model_with_cl, model_without_cl = generate_models() + assert model_with_cl.ncl() > 0 + assert model_without_cl.nx_rdata == model_with_cl.nx_rdata + assert model_with_cl.nx_solver < model_without_cl.nx_solver + assert len(model_with_cl.getStateIdsSolver()) == model_with_cl.nx_solver + assert len(model_without_cl.getStateIdsSolver()) \ + == model_without_cl.nx_solver + # ----- compare simulations wo edata, sensi = 0, states ------------------ # run simulations rdata_cl = get_results(model_with_cl) @@ -170,7 +177,7 @@ def test_compare_conservation_laws_sbml(edata_fixture): def test_adjoint_pre_and_post_equilibration(edata_fixture): # get both models - model_module = amici.import_model_module('model_constant_species', + model_module = amici.import_model_module('model_constant_species', module_path=os.path.abspath('model_constant_species')) model = model_module.getModel() model_module_cl = amici.import_model_module('model_constant_species_cl', diff --git a/python/tests/test_swig_interface.py b/python/tests/test_swig_interface.py index 1b8e733f85..2958539b46 100644 --- a/python/tests/test_swig_interface.py +++ b/python/tests/test_swig_interface.py @@ -284,6 +284,8 @@ def test_unhandled_settings(pysb_example_presimulation_module): 'getSolver', 'getStateIds', 'getStateNames', + 'getStateIdsSolver', + 'getStateNamesSolver', 'getTimepoint', 'getUnscaledParameters', 'setAllStatesNonNegative', diff --git a/src/model.ODE_template.cpp b/src/model.ODE_template.cpp index 5c9f69b6aa..c5fb93198d 100644 --- a/src/model.ODE_template.cpp +++ b/src/model.ODE_template.cpp @@ -49,6 +49,10 @@ std::array expressionIds = { TPL_EXPRESSION_IDS_INITIALIZER_LIST }; +std::array stateIdxsSolver = { + TPL_STATE_IDXS_SOLVER_INITIALIZER_LIST +}; + } // namespace model_TPL_MODELNAME } // namespace amici diff --git a/src/model.cpp b/src/model.cpp index 4916c1e956..e73171c1a7 100644 --- a/src/model.cpp +++ b/src/model.cpp @@ -510,6 +510,11 @@ std::vector Model::getStateNames() const { return std::vector(); } +std::vector Model::getStateNamesSolver() const { + return std::vector(); +} + + bool Model::hasFixedParameterNames() const { return nk() == 0 || !getFixedParameterNames().empty(); } @@ -550,6 +555,10 @@ std::vector Model::getStateIds() const { return std::vector(); } +std::vector Model::getStateIdsSolver() const { + return std::vector(); +} + bool Model::hasFixedParameterIds() const { return nk() == 0 || !getFixedParameterIds().empty(); } diff --git a/src/model_header.ODE_template.h b/src/model_header.ODE_template.h index 84cbfad356..96bfcbad50 100644 --- a/src/model_header.ODE_template.h +++ b/src/model_header.ODE_template.h @@ -26,6 +26,7 @@ extern std::array fixedParameterIds; extern std::array stateIds; extern std::array observableIds; extern std::array expressionIds; +extern std::array stateIdxsSolver; TPL_JY_DEF TPL_DJYDSIGMA_DEF @@ -484,6 +485,19 @@ class Model_TPL_MODELNAME : public amici::Model_ODE { return std::vector(stateNames.begin(), stateNames.end()); } + /** + * @brief Get names of the solver states + * @return the names + */ + std::vector getStateNamesSolver() const override { + std::vector result; + result.reserve(stateIdxsSolver.size()); + for(auto idx: stateIdxsSolver) { + result.push_back(stateNames[idx]); + } + return result; + } + /** * @brief Get names of the fixed model parameters * @return the names @@ -528,6 +542,19 @@ class Model_TPL_MODELNAME : public amici::Model_ODE { return std::vector(stateIds.begin(), stateIds.end()); } + /** + * @brief Get ids of the solver states + * @return the ids + */ + std::vector getStateIdsSolver() const override { + std::vector result; + result.reserve(stateIdxsSolver.size()); + for(auto idx: stateIdxsSolver) { + result.push_back(stateIds[idx]); + } + return result; + } + /** * @brief Get ids of the fixed model parameters * @return the ids From 8dea19801a933ad4adc33f991833a1a8b8a8faea Mon Sep 17 00:00:00 2001 From: Daniel Weindl Date: Fri, 14 Jan 2022 16:45:58 +0100 Subject: [PATCH 6/8] Include header files in CMake targets (#1639) for improved IDE integration --- CMakeLists.txt | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 09d4643528..2ae3b9d90d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -144,6 +144,36 @@ set(AMICI_SRC_LIST ${CMAKE_SOURCE_DIR}/src/sundials_linsol_wrapper.cpp ${CMAKE_SOURCE_DIR}/src/abstract_model.cpp ${CMAKE_SOURCE_DIR}/src/vector.cpp + ${CMAKE_SOURCE_DIR}/include/amici/abstract_model.h + ${CMAKE_SOURCE_DIR}/include/amici/amici.h + ${CMAKE_SOURCE_DIR}/include/amici/backwardproblem.h + ${CMAKE_SOURCE_DIR}/include/amici/cblas.h + ${CMAKE_SOURCE_DIR}/include/amici/defines.h + ${CMAKE_SOURCE_DIR}/include/amici/edata.h + ${CMAKE_SOURCE_DIR}/include/amici/exception.h + ${CMAKE_SOURCE_DIR}/include/amici/forwardproblem.h + ${CMAKE_SOURCE_DIR}/include/amici/hdf5.h + ${CMAKE_SOURCE_DIR}/include/amici/interface_matlab.h + ${CMAKE_SOURCE_DIR}/include/amici/misc.h + ${CMAKE_SOURCE_DIR}/include/amici/model_dae.h + ${CMAKE_SOURCE_DIR}/include/amici/model_dimensions.h + ${CMAKE_SOURCE_DIR}/include/amici/model.h + ${CMAKE_SOURCE_DIR}/include/amici/model_ode.h + ${CMAKE_SOURCE_DIR}/include/amici/model_state.h + ${CMAKE_SOURCE_DIR}/include/amici/newton_solver.h + ${CMAKE_SOURCE_DIR}/include/amici/rdata.h + ${CMAKE_SOURCE_DIR}/include/amici/returndata_matlab.h + ${CMAKE_SOURCE_DIR}/include/amici/serialization.h + ${CMAKE_SOURCE_DIR}/include/amici/simulation_parameters.h + ${CMAKE_SOURCE_DIR}/include/amici/solver_cvodes.h + ${CMAKE_SOURCE_DIR}/include/amici/solver.h + ${CMAKE_SOURCE_DIR}/include/amici/solver_idas.h + ${CMAKE_SOURCE_DIR}/include/amici/spline.h + ${CMAKE_SOURCE_DIR}/include/amici/steadystateproblem.h + ${CMAKE_SOURCE_DIR}/include/amici/sundials_linsol_wrapper.h + ${CMAKE_SOURCE_DIR}/include/amici/sundials_matrix_wrapper.h + ${CMAKE_SOURCE_DIR}/include/amici/symbolic_functions.h + ${CMAKE_SOURCE_DIR}/include/amici/vector.h ) if(ENABLE_HDF5) list(APPEND AMICI_SRC_LIST ${CMAKE_SOURCE_DIR}/src/hdf5.cpp) From 4edda99e99a47b1c9bdf3b2aed71964428972e84 Mon Sep 17 00:00:00 2001 From: Daniel Weindl Date: Wed, 26 Jan 2022 22:47:07 +0100 Subject: [PATCH 7/8] Fix docs on RTD (#1643) * Doxygen: Fix URL, force symlink * Update swig URL --- documentation/conf.py | 4 ++-- scripts/downloadAndBuildSwig.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/documentation/conf.py b/documentation/conf.py index c647bda326..3669c14f07 100644 --- a/documentation/conf.py +++ b/documentation/conf.py @@ -129,10 +129,10 @@ def install_doxygen(): some_dir_on_path = os.environ['PATH'].split(os.pathsep)[0] cmd = ( f"cd '{os.path.join(amici_dir, 'ThirdParty')}' " - f"&& wget 'https://doxygen.nl/files/" + f"&& wget 'https://www.doxygen.nl/files/" f"doxygen-{version}.linux.bin.tar.gz' " f"&& tar -xzf doxygen-{version}.linux.bin.tar.gz " - f"&& ln -s '{doxygen_exe}' '{some_dir_on_path}'" + f"&& ln -sf '{doxygen_exe}' '{some_dir_on_path}'" ) subprocess.run(cmd, shell=True, check=True) assert os.path.islink(os.path.join(some_dir_on_path, 'doxygen')) diff --git a/scripts/downloadAndBuildSwig.sh b/scripts/downloadAndBuildSwig.sh index 8b99a26361..f9665cfe00 100755 --- a/scripts/downloadAndBuildSwig.sh +++ b/scripts/downloadAndBuildSwig.sh @@ -6,8 +6,8 @@ SCRIPT_PATH=$(dirname "$BASH_SOURCE") AMICI_PATH=$(cd "$SCRIPT_PATH/.." && pwd) swig_version=4.0.2 -SWIG_URL="http://prdownloads.sourceforge.net/swig/swig-${swig_version}.tar.gz" SWIG_ARCHIVE="swig-${swig_version}.tar.gz" +SWIG_URL="http://downloads.sourceforge.net/project/swig/swig/swig-${swig_version}/${SWIG_ARCHIVE}" SWIG_DIR="swig-${swig_version}" PREFIX=${AMICI_PATH}/ThirdParty/${SWIG_DIR}/install SWIG_BIN_DIR=${PREFIX}/bin From cdf46a5e77dd866e69495e0f27f1fae4ed53ce72 Mon Sep 17 00:00:00 2001 From: Daniel Weindl Date: Tue, 1 Feb 2022 11:09:06 +0100 Subject: [PATCH 8/8] Bump version number, update changelog --- CHANGELOG.md | 23 +++++++++++++++++++++++ version.txt | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7cf659e6dd..ef6dcdbb45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,29 @@ ## v0.X Series +### v0.11.24 (2022-02-01) + +Features: +* Introduced environment variable `AMICI_DLL_DIRS` to control DLL directories + on Windows (useful for setting BLAS library directory, as required by + Python>=3.8) by @dweindl in https://github.com/AMICI-dev/AMICI/pull/1637 +* Dropped Python3.7 support by @dweindl in + https://github.com/AMICI-dev/AMICI/pull/1635 +* Include header files in CMake targets for better IDE integration by @dweindl + in https://github.com/AMICI-dev/AMICI/pull/1639 + +Fixes: +* Fixed an issue in PEtab import where all-integer parameters would previously + result in a TypeError by @stephanmg in + https://github.com/AMICI-dev/AMICI/pull/1634 +* Fixed tempdir deletion issues for test suite on Windows by @dweindl in + https://github.com/AMICI-dev/AMICI/pull/1636 +* Added functions to provide state IDs/names for x_solver by @dweindl in + https://github.com/AMICI-dev/AMICI/pull/1638 +* Fixed docs on RTD by @dweindl in https://github.com/AMICI-dev/AMICI/pull/1643 + +**Full Changelog**: https://github.com/AMICI-dev/AMICI/compare/v0.11.23...v0.11.24 + ### v0.11.23 (2022-01-11) Features: diff --git a/version.txt b/version.txt index b76fc26753..55b335d444 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -0.11.23 +0.11.24