From 259b7ec0c25354807a89b1193c160bf4032dc161 Mon Sep 17 00:00:00 2001 From: Geoff Boeing Date: Mon, 23 May 2022 15:02:50 -0700 Subject: [PATCH 1/6] update for release --- CHANGELOG.md | 6 +++++- LICENSE.txt | 2 +- docs/source/conf.py | 4 ++-- pynamical/__init__.py | 2 +- requirements.txt | 8 ++++---- setup.py | 7 +++---- 6 files changed, 16 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5aa80b4..d198d94 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Change log +## 0.3.2 (2022-05-23) + + - update dependencies compatibility + ## 0.3.1 (2021-01-01) - include requirements in distribution @@ -31,4 +35,4 @@ ## 0.1 (2016-12-27) - - first release \ No newline at end of file + - first release diff --git a/LICENSE.txt b/LICENSE.txt index aa72f83..852a861 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2015-2021 Geoff Boeing https://geoffboeing.com/ +Copyright (c) 2015-2022 Geoff Boeing https://geoffboeing.com/ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/docs/source/conf.py b/docs/source/conf.py index 06ce24b..c8918d5 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -61,13 +61,13 @@ # General information about the project. project = "pynamical" -copyright = "2015-2021, Geoff Boeing" +copyright = "2015-2022, Geoff Boeing" author = "Geoff Boeing" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. -version = release = "0.3.1" +version = release = "0.3.2" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/pynamical/__init__.py b/pynamical/__init__.py index 7cc7fa4..e9046f9 100644 --- a/pynamical/__init__.py +++ b/pynamical/__init__.py @@ -2,4 +2,4 @@ from .pynamical import * -__version__ = "0.3.1" +__version__ = "0.3.2" diff --git a/requirements.txt b/requirements.txt index 449bed0..bda2bcd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -matplotlib>=3.3 -numba>=0.52 -numpy>=1.19 -pandas>=1.1 +matplotlib>=3.5 +numba>=0.55 +numpy>=1.21 +pandas>=1.4 diff --git a/setup.py b/setup.py index 89b936f..9720de7 100644 --- a/setup.py +++ b/setup.py @@ -33,10 +33,9 @@ "Topic :: Scientific/Engineering :: Information Analysis", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", ] # only specify install_requires if not in RTD environment @@ -48,7 +47,7 @@ setup( name="pynamical", - version="0.3.1", + version="0.3.2", description="Model, simulate, and visualize discrete nonlinear dynamical systems", long_description=LONG_DESCRIPTION, classifiers=CLASSIFIERS, @@ -58,6 +57,6 @@ license="MIT", platforms="any", packages=["pynamical"], - python_requires=">=3.6", + python_requires=">=3.8", install_requires=INSTALL_REQUIRES, ) From 2b85c60a959ce7f1936d14f76f4a01e807ac45e4 Mon Sep 17 00:00:00 2001 From: Geoff Boeing Date: Mon, 23 May 2022 15:07:23 -0700 Subject: [PATCH 2/6] black --- pynamical/pynamical.py | 4 ++-- tests/environment-dev.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pynamical/pynamical.py b/pynamical/pynamical.py index bdb4e3d..e364986 100644 --- a/pynamical/pynamical.py +++ b/pynamical/pynamical.py @@ -160,7 +160,7 @@ def cubic_map(pop, rate): float scalar result of cubic map at time t+1 """ - return rate * pop ** 3 + pop * (1 - rate) + return rate * pop**3 + pop * (1 - rate) @jit(cache=True, nopython=True) # pragma: no cover @@ -180,7 +180,7 @@ def singer_map(pop, rate): float scalar result of singer map at time t+1 """ - return rate * (7.86 * pop - 23.31 * pop ** 2 + 28.75 * pop ** 3 - 13.3 * pop ** 4) + return rate * (7.86 * pop - 23.31 * pop**2 + 28.75 * pop**3 - 13.3 * pop**4) def simulate( diff --git a/tests/environment-dev.yml b/tests/environment-dev.yml index 20862a5..fc48564 100644 --- a/tests/environment-dev.yml +++ b/tests/environment-dev.yml @@ -14,7 +14,7 @@ dependencies: - jupyterlab # linting/testing - - black + - black=22.* - coverage - flake8 - flake8-bugbear From 592db5aa840fe0697ac768e04fecccbcce5ac74a Mon Sep 17 00:00:00 2001 From: Geoff Boeing Date: Mon, 23 May 2022 15:13:59 -0700 Subject: [PATCH 3/6] dependency versions --- requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index bda2bcd..9748a35 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ matplotlib>=3.5 -numba>=0.55 +numba>=0.54 numpy>=1.21 -pandas>=1.4 +pandas>=1.3 From 1711ebfd27ac677d90a2595279771c497eae2d07 Mon Sep 17 00:00:00 2001 From: Geoff Boeing Date: Mon, 23 May 2022 15:41:09 -0700 Subject: [PATCH 4/6] test environment --- .github/workflows/tests.yml | 2 +- docker/requirements.txt | 2 +- tests/create-environment.sh | 17 +++ tests/environment.yml | 250 ++++++++++++++++++++++++++++++++++++ 4 files changed, 269 insertions(+), 2 deletions(-) create mode 100644 tests/create-environment.sh create mode 100644 tests/environment.yml diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 7c4f57e..a942ea3 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -16,7 +16,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest] - python-version: ['3.6', '3.7', '3.8', '3.9'] + python-version: ['3.8', '3.9', '3.10'] defaults: run: diff --git a/docker/requirements.txt b/docker/requirements.txt index c62a7c3..6b1ad36 100644 --- a/docker/requirements.txt +++ b/docker/requirements.txt @@ -17,5 +17,5 @@ pip pydocstyle pynamical pytest -python == 3.8.* +python == 3.10.* sphinx diff --git a/tests/create-environment.sh b/tests/create-environment.sh new file mode 100644 index 0000000..c76d68b --- /dev/null +++ b/tests/create-environment.sh @@ -0,0 +1,17 @@ +#!/bin/bash +set -e +eval "$(conda shell.bash hook)" +conda deactivate +mamba env remove -n pynamical --yes +mamba clean --all --yes --quiet +mamba create -c conda-forge --strict-channel-priority -n pynamical --file "../docker/requirements.txt" --yes +eval "$(conda shell.bash hook)" +conda activate pynamical +pip uninstall pynamical --yes +pip install -e ../. +python -m ipykernel install --sys-prefix --name pynamical --display-name "Python (pynamical)" +mamba clean --all --yes --quiet +mamba env export -n pynamical > environment.yml +mamba list +jupyter kernelspec list +ipython -c "import pynamical; print('pynamical version', pynamical.__version__)" diff --git a/tests/environment.yml b/tests/environment.yml new file mode 100644 index 0000000..a8234a5 --- /dev/null +++ b/tests/environment.yml @@ -0,0 +1,250 @@ +name: pynamical +channels: + - conda-forge +dependencies: + - _libgcc_mutex=0.1=conda_forge + - _openmp_mutex=4.5=2_gnu + - alabaster=0.7.12=py_0 + - alsa-lib=1.2.3.2=h166bdaf_0 + - anyio=3.6.1=py310hff52083_0 + - argon2-cffi=21.3.0=pyhd8ed1ab_0 + - argon2-cffi-bindings=21.2.0=py310h5764c6d_2 + - asttokens=2.0.5=pyhd8ed1ab_0 + - attr=2.5.1=h166bdaf_0 + - attrs=21.4.0=pyhd8ed1ab_0 + - babel=2.10.1=pyhd8ed1ab_0 + - backcall=0.2.0=pyh9f0ad1d_0 + - backports=1.0=py_2 + - backports.functools_lru_cache=1.6.4=pyhd8ed1ab_0 + - beautifulsoup4=4.11.1=pyha770c72_0 + - black=22.3.0=pyhd8ed1ab_0 + - bleach=5.0.0=pyhd8ed1ab_0 + - bottleneck=1.3.4=py310hde88566_1 + - brotli=1.0.9=h166bdaf_7 + - brotli-bin=1.0.9=h166bdaf_7 + - brotlipy=0.7.0=py310h5764c6d_1004 + - bzip2=1.0.8=h7f98852_4 + - ca-certificates=2022.5.18.1=ha878542_0 + - certifi=2022.5.18.1=py310hff52083_0 + - cffi=1.15.0=py310h0fdd8cc_0 + - charset-normalizer=2.0.12=pyhd8ed1ab_0 + - click=8.1.3=py310hff52083_0 + - colorama=0.4.4=pyh9f0ad1d_0 + - coverage=6.4=py310h5764c6d_0 + - cryptography=37.0.2=py310h597c629_0 + - cycler=0.11.0=pyhd8ed1ab_0 + - cython=0.29.30=py310hd8f1fbe_0 + - dataclasses=0.8=pyhc8e2a94_3 + - dbus=1.13.6=h5008d03_3 + - debugpy=1.6.0=py310hd8f1fbe_0 + - decorator=5.1.1=pyhd8ed1ab_0 + - defusedxml=0.7.1=pyhd8ed1ab_0 + - docutils=0.17.1=py310hff52083_2 + - entrypoints=0.4=pyhd8ed1ab_0 + - executing=0.8.3=pyhd8ed1ab_0 + - expat=2.4.8=h27087fc_0 + - fftw=3.3.10=nompi_h77c792f_102 + - flake8=4.0.1=pyhd8ed1ab_2 + - flake8-bugbear=22.4.25=pyhd8ed1ab_0 + - flit-core=3.7.1=pyhd8ed1ab_0 + - font-ttf-dejavu-sans-mono=2.37=hab24e00_0 + - font-ttf-inconsolata=3.000=h77eed37_0 + - font-ttf-source-code-pro=2.038=h77eed37_0 + - font-ttf-ubuntu=0.83=hab24e00_0 + - fontconfig=2.14.0=h8e229c2_0 + - fonts-conda-ecosystem=1=0 + - fonts-conda-forge=1=0 + - fonttools=4.33.3=py310h5764c6d_0 + - freetype=2.10.4=h0708190_1 + - gettext=0.19.8.1=h73d1719_1008 + - giflib=5.2.1=h36c2ea0_2 + - gst-plugins-base=1.20.2=hcf0ee16_0 + - gstreamer=1.20.2=hd4edc92_1 + - icu=70.1=h27087fc_0 + - idna=3.3=pyhd8ed1ab_0 + - imagesize=1.3.0=pyhd8ed1ab_0 + - importlib-metadata=4.11.4=py310hff52083_0 + - importlib_metadata=4.11.4=hd8ed1ab_0 + - importlib_resources=5.7.1=pyhd8ed1ab_1 + - iniconfig=1.1.1=pyh9f0ad1d_0 + - ipykernel=6.13.0=py310hfdc917e_0 + - ipython=8.3.0=py310hff52083_0 + - ipython_genutils=0.2.0=py_1 + - isort=5.10.1=pyhd8ed1ab_0 + - jack=1.9.18=hfd4fe87_1001 + - jbig=2.1=h7f98852_2003 + - jedi=0.18.1=py310hff52083_1 + - jinja2=3.1.2=pyhd8ed1ab_0 + - jpeg=9e=h166bdaf_1 + - json-c=0.15=h98cffda_0 + - json5=0.9.5=pyh9f0ad1d_0 + - jsonschema=4.5.1=pyhd8ed1ab_0 + - jupyter_client=7.3.1=pyhd8ed1ab_0 + - jupyter_core=4.10.0=py310hff52083_0 + - jupyter_server=1.17.0=pyhd8ed1ab_0 + - jupyterlab=3.4.2=pyhd8ed1ab_0 + - jupyterlab_pygments=0.2.2=pyhd8ed1ab_0 + - jupyterlab_server=2.14.0=pyhd8ed1ab_0 + - keyutils=1.6.1=h166bdaf_0 + - kiwisolver=1.4.2=py310hbf28c38_1 + - krb5=1.19.3=h3790be6_0 + - lcms2=2.12=hddcbb42_0 + - ld_impl_linux-64=2.36.1=hea4e1c9_2 + - lerc=3.0=h9c3ff4c_0 + - libblas=3.9.0=14_linux64_openblas + - libbrotlicommon=1.0.9=h166bdaf_7 + - libbrotlidec=1.0.9=h166bdaf_7 + - libbrotlienc=1.0.9=h166bdaf_7 + - libcap=2.51=h166bdaf_1 + - libcblas=3.9.0=14_linux64_openblas + - libclang=14.0.3=default_h2e3cab8_0 + - libclang13=14.0.3=default_h3a83d3e_0 + - libcups=2.3.3=hf5a7f15_1 + - libdb=6.2.32=h9c3ff4c_0 + - libdeflate=1.10=h7f98852_0 + - libedit=3.1.20191231=he28a2e2_2 + - libevent=2.1.10=h9b69904_4 + - libffi=3.4.2=h7f98852_5 + - libflac=1.3.4=h27087fc_0 + - libgcc-ng=12.1.0=h8d9b700_16 + - libgfortran-ng=12.1.0=h69a702a_16 + - libgfortran5=12.1.0=hdcd56e2_16 + - libglib=2.70.2=h174f98d_4 + - libgomp=12.1.0=h8d9b700_16 + - libiconv=1.16=h516909a_0 + - liblapack=3.9.0=14_linux64_openblas + - libllvm11=11.1.0=hf817b99_3 + - libllvm14=14.0.3=he0ac6c6_0 + - libnsl=2.0.0=h7f98852_0 + - libogg=1.3.4=h7f98852_1 + - libopenblas=0.3.20=pthreads_h78a6416_0 + - libopus=1.3.1=h7f98852_1 + - libpng=1.6.37=h21135ba_2 + - libpq=14.3=hd77ab85_0 + - libsndfile=1.0.31=h9c3ff4c_1 + - libsodium=1.0.18=h36c2ea0_1 + - libstdcxx-ng=12.1.0=ha89aaad_16 + - libtiff=4.3.0=h542a066_3 + - libtool=2.4.6=h9c3ff4c_1008 + - libuuid=2.32.1=h7f98852_1000 + - libuv=1.43.0=h7f98852_0 + - libvorbis=1.3.7=h9c3ff4c_0 + - libwebp=1.2.2=h3452ae3_0 + - libwebp-base=1.2.2=h7f98852_1 + - libxcb=1.13=h7f98852_1004 + - libxkbcommon=1.0.3=he3ba5ed_0 + - libxml2=2.9.14=h22db469_0 + - libzlib=1.2.11=h166bdaf_1014 + - llvmlite=0.38.1=py310h58363a5_0 + - lz4-c=1.9.3=h9c3ff4c_1 + - markupsafe=2.1.1=py310h5764c6d_1 + - matplotlib=3.5.2=py310hff52083_0 + - matplotlib-base=3.5.2=py310h5701ce4_0 + - matplotlib-inline=0.1.3=pyhd8ed1ab_0 + - mccabe=0.6.1=py_1 + - mistune=0.8.4=py310h6acc77f_1005 + - munkres=1.1.4=pyh9f0ad1d_0 + - mypy_extensions=0.4.3=py310hff52083_5 + - mysql-common=8.0.29=haf5c9bc_1 + - mysql-libs=8.0.29=h28c427c_1 + - nbclassic=0.3.7=pyhd8ed1ab_0 + - nbclient=0.6.3=pyhd8ed1ab_0 + - nbconvert=6.5.0=pyhd8ed1ab_0 + - nbconvert-core=6.5.0=pyhd8ed1ab_0 + - nbconvert-pandoc=6.5.0=pyhd8ed1ab_0 + - nbformat=5.4.0=pyhd8ed1ab_0 + - ncurses=6.3=h27087fc_1 + - nest-asyncio=1.5.5=pyhd8ed1ab_0 + - nodejs=17.9.0=h96d913c_0 + - nomkl=1.0=h5ca1d4c_0 + - notebook=6.4.11=pyha770c72_0 + - notebook-shim=0.1.0=pyhd8ed1ab_0 + - nspr=4.32=h9c3ff4c_1 + - nss=3.77=h2350873_0 + - numba=0.55.1=py310ha5257ce_1 + - numexpr=2.8.0=py310hf05e7a9_102 + - numpy=1.21.6=py310h45f3432_0 + - openjpeg=2.4.0=hb52868f_1 + - openssl=1.1.1o=h166bdaf_0 + - packaging=21.3=pyhd8ed1ab_0 + - pandas=1.4.2=py310h769672d_1 + - pandoc=2.18=ha770c72_0 + - pandocfilters=1.5.0=pyhd8ed1ab_0 + - parso=0.8.3=pyhd8ed1ab_0 + - pathspec=0.9.0=pyhd8ed1ab_0 + - pcre=8.45=h9c3ff4c_0 + - pexpect=4.8.0=pyh9f0ad1d_2 + - pickleshare=0.7.5=py_1003 + - pillow=9.1.1=py310he619898_0 + - pip=22.1.1=pyhd8ed1ab_0 + - platformdirs=2.5.1=pyhd8ed1ab_0 + - pluggy=1.0.0=py310hff52083_3 + - prometheus_client=0.14.1=pyhd8ed1ab_0 + - prompt-toolkit=3.0.29=pyha770c72_0 + - psutil=5.9.1=py310h5764c6d_0 + - pthread-stubs=0.4=h36c2ea0_1001 + - ptyprocess=0.7.0=pyhd3deb0d_0 + - pulseaudio=14.0=hb166930_4 + - pure_eval=0.2.2=pyhd8ed1ab_0 + - py=1.11.0=pyh6c4a22f_0 + - pycodestyle=2.8.0=pyhd8ed1ab_0 + - pycparser=2.21=pyhd8ed1ab_0 + - pydocstyle=6.1.1=pyhd8ed1ab_0 + - pyflakes=2.4.0=pyhd8ed1ab_0 + - pygments=2.12.0=pyhd8ed1ab_0 + - pyopenssl=22.0.0=pyhd8ed1ab_0 + - pyparsing=3.0.9=pyhd8ed1ab_0 + - pyqt=5.15.4=py310hd8f1fbe_0 + - pyqt5-sip=12.9.0=py310hd8f1fbe_0 + - pyrsistent=0.18.1=py310h5764c6d_1 + - pysocks=1.7.1=py310hff52083_5 + - pytest=7.1.2=py310hff52083_0 + - python=3.10.4=h9a8a25e_0_cpython + - python-dateutil=2.8.2=pyhd8ed1ab_0 + - python-fastjsonschema=2.15.3=pyhd8ed1ab_0 + - python_abi=3.10=2_cp310 + - pytz=2022.1=pyhd8ed1ab_0 + - pyzmq=23.0.0=py310h330234f_0 + - qt-main=5.15.3=hf97cb25_1 + - readline=8.1=h46c0cb4_0 + - requests=2.27.1=pyhd8ed1ab_0 + - send2trash=1.8.0=pyhd8ed1ab_0 + - setuptools=62.3.2=py310hff52083_0 + - sip=6.5.1=py310h122e73d_2 + - six=1.16.0=pyh6c4a22f_0 + - sniffio=1.2.0=py310hff52083_3 + - snowballstemmer=2.2.0=pyhd8ed1ab_0 + - soupsieve=2.3.1=pyhd8ed1ab_0 + - sphinx=4.5.0=pyh6c4a22f_0 + - sphinxcontrib-applehelp=1.0.2=py_0 + - sphinxcontrib-devhelp=1.0.2=py_0 + - sphinxcontrib-htmlhelp=2.0.0=pyhd8ed1ab_0 + - sphinxcontrib-jsmath=1.0.1=py_0 + - sphinxcontrib-qthelp=1.0.3=py_0 + - sphinxcontrib-serializinghtml=1.1.5=pyhd8ed1ab_2 + - sqlite=3.38.5=h4ff8645_0 + - stack_data=0.2.0=pyhd8ed1ab_0 + - terminado=0.15.0=py310hff52083_0 + - tinycss2=1.1.1=pyhd8ed1ab_0 + - tk=8.6.12=h27826a3_0 + - toml=0.10.2=pyhd8ed1ab_0 + - tomli=2.0.1=pyhd8ed1ab_0 + - tornado=6.1=py310h5764c6d_3 + - traitlets=5.2.1.post0=pyhd8ed1ab_0 + - typed-ast=1.5.4=py310h5764c6d_0 + - typing_extensions=4.2.0=pyha770c72_1 + - tzdata=2022a=h191b570_0 + - unicodedata2=14.0.0=py310h5764c6d_1 + - urllib3=1.26.9=pyhd8ed1ab_0 + - wcwidth=0.2.5=pyh9f0ad1d_2 + - webencodings=0.5.1=py_1 + - websocket-client=1.3.2=pyhd8ed1ab_0 + - wheel=0.37.1=pyhd8ed1ab_0 + - xorg-libxau=1.0.9=h7f98852_0 + - xorg-libxdmcp=1.1.3=h7f98852_0 + - xz=5.2.5=h516909a_1 + - zeromq=4.3.4=h9c3ff4c_1 + - zipp=3.8.0=pyhd8ed1ab_0 + - zlib=1.2.11=h166bdaf_1014 + - zstd=1.5.2=h8a70e8d_1 +prefix: /home/geoff/mambaforge/envs/pynamical From 9990675c3999de7d3b1186e9421b8da150505dc2 Mon Sep 17 00:00:00 2001 From: Geoff Boeing Date: Mon, 23 May 2022 15:44:06 -0700 Subject: [PATCH 5/6] update notebooks --- examples/pynamical-demo-3d-animation.ipynb | 2 +- examples/pynamical-demo-cobweb-plots.ipynb | 2 +- examples/pynamical-demo-logistic-model.ipynb | 2 +- examples/pynamical-demo-other-models.ipynb | 2 +- examples/pynamical-demo-phase-diagrams.ipynb | 2 +- examples/pynamical-quick-overview.ipynb | 2 +- pynamical/pynamical.py | 3 ++- 7 files changed, 8 insertions(+), 7 deletions(-) diff --git a/examples/pynamical-demo-3d-animation.ipynb b/examples/pynamical-demo-3d-animation.ipynb index 538432a..ab64c2a 100644 --- a/examples/pynamical-demo-3d-animation.ipynb +++ b/examples/pynamical-demo-3d-animation.ipynb @@ -450,7 +450,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.6" + "version": "3.10.4" } }, "nbformat": 4, diff --git a/examples/pynamical-demo-cobweb-plots.ipynb b/examples/pynamical-demo-cobweb-plots.ipynb index cae8243..2b5b7c8 100644 --- a/examples/pynamical-demo-cobweb-plots.ipynb +++ b/examples/pynamical-demo-cobweb-plots.ipynb @@ -233,7 +233,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.6" + "version": "3.10.4" } }, "nbformat": 4, diff --git a/examples/pynamical-demo-logistic-model.ipynb b/examples/pynamical-demo-logistic-model.ipynb index 3bdfa27..8393b27 100644 --- a/examples/pynamical-demo-logistic-model.ipynb +++ b/examples/pynamical-demo-logistic-model.ipynb @@ -295,7 +295,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.6" + "version": "3.10.4" } }, "nbformat": 4, diff --git a/examples/pynamical-demo-other-models.ipynb b/examples/pynamical-demo-other-models.ipynb index b6f3c0a..f258d14 100644 --- a/examples/pynamical-demo-other-models.ipynb +++ b/examples/pynamical-demo-other-models.ipynb @@ -214,7 +214,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.6" + "version": "3.10.4" } }, "nbformat": 4, diff --git a/examples/pynamical-demo-phase-diagrams.ipynb b/examples/pynamical-demo-phase-diagrams.ipynb index 3d670de..ef533fd 100644 --- a/examples/pynamical-demo-phase-diagrams.ipynb +++ b/examples/pynamical-demo-phase-diagrams.ipynb @@ -306,7 +306,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.6" + "version": "3.10.4" } }, "nbformat": 4, diff --git a/examples/pynamical-quick-overview.ipynb b/examples/pynamical-quick-overview.ipynb index 24a34a6..06590de 100644 --- a/examples/pynamical-quick-overview.ipynb +++ b/examples/pynamical-quick-overview.ipynb @@ -163,7 +163,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.6" + "version": "3.10.4" } }, "nbformat": 4, diff --git a/pynamical/pynamical.py b/pynamical/pynamical.py index e364986..f2d8192 100644 --- a/pynamical/pynamical.py +++ b/pynamical/pynamical.py @@ -436,7 +436,8 @@ def get_bifurcation_plot_points(pops): for rate in pops.columns: # append the growth rate as the x column and all the population values # as the y column - xy_points = xy_points.append(pd.DataFrame({"x": rate, "y": pops[rate]})) + to_append = pd.DataFrame({"x": rate, "y": pops[rate]}) + xy_points = pd.concat([xy_points, to_append]) # reset the index and drop old index before returning the xy point data xy_points = xy_points.reset_index().drop(labels="index", axis=1) From c8d6259e570831e39681915f5473bda22bdddcc4 Mon Sep 17 00:00:00 2001 From: Geoff Boeing Date: Mon, 23 May 2022 16:26:01 -0700 Subject: [PATCH 6/6] update reqs --- requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index 9748a35..8356405 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ matplotlib>=3.5 -numba>=0.54 -numpy>=1.21 +numba>=0.53 +numpy>=1.20,<1.22 pandas>=1.3