diff --git a/.flake8 b/.flake8
index 04c6bd8ba..65119c5bd 100644
--- a/.flake8
+++ b/.flake8
@@ -6,6 +6,14 @@
per-file-ignores =
# Imported but unused
- */__init__.py:F401
+ */__init__.py:F401,D400,D205
# Print and asserts
- test/*:T001,S101
+ test/*:T001,S101,D
+ # Ignore errors in module docstring
+ pypesto/logging.py:D400,D205,D107
+ pypesto/problem.py:D400,D205,D107
+ pypesto/result.py:D400,D205,D107
+ pypesto/version.py:D
+ # ignore D100='Missing docstring in public module',
+ # D105='Missing docstring in magic method' and D107='Missing docstring in __init__'.
+ *:D100,D105,D107
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index ab1a55fb3..3540a902a 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- python-version: [3.9]
+ python-version: [3.7]
steps:
- name: Check out repository
@@ -50,7 +50,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- python-version: [3.9]
+ python-version: [3.7]
steps:
- name: Check out repository
@@ -84,7 +84,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- python-version: [3.9]
+ python-version: [3.7]
steps:
- name: Check out repository
@@ -180,7 +180,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- python-version: [3.9]
+ python-version: [3.7]
steps:
- name: Check out repository
@@ -208,7 +208,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- python-version: [3.9]
+ python-version: [3.7]
steps:
- name: Check out repository
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index bd5fb0999..6d4474ea6 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -6,6 +6,21 @@ Release notes
..........
+0.2.9 (2021-11-03)
+------------------
+
+* General:
+ * Automatically save results (#749)
+ * Update all docstrings to numpy standard (#750)
+ * Add Google Colab and nbviewer links to all notebooks for online
+ execution (#758)
+ * Option to not save hess and sres in result (#760)
+ * Set minimum supported python version to 3.7 (#755)
+
+* Visualization:
+ * Parameterize start index in optimized model fit (#744)
+
+
0.2.8 (2021-10-28)
------------------
diff --git a/CITATION.cff b/CITATION.cff
index 44094b1a0..d6aadccdc 100644
--- a/CITATION.cff
+++ b/CITATION.cff
@@ -64,7 +64,7 @@ authors:
given-names: "Stephan"
orcid: "https://orcid.org/0000-0001-9524-6633"
-
- family-names = "Hasenauer"
+ family-names: "Hasenauer"
given-names: "Jan"
orcid: "https://orcid.org/0000-0002-4935-3312"
title: "pyPESTO - Parameter EStimation TOolbox for python"
diff --git a/README.md b/README.md
index c791b6b7a..7a010d2d4 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,6 @@ parameter estimation.
[![PyPI](https://badge.fury.io/py/pypesto.svg)](https://badge.fury.io/py/pypesto)
[![CI](https://github.com/ICB-DCM/pyPESTO/workflows/CI/badge.svg)](https://github.com/ICB-DCM/pyPESTO/actions)
[![Coverage](https://codecov.io/gh/ICB-DCM/pyPESTO/branch/master/graph/badge.svg)](https://codecov.io/gh/ICB-DCM/pyPESTO)
-[![Quality](https://api.codacy.com/project/badge/Grade/134432ddad0e464b8494587ff370f661)](https://www.codacy.com/app/dweindl/pyPESTO?utm_source=github.com&utm_medium=referral&utm_content=ICB-DCM/pyPESTO&utm_campaign=Badge_Grade)
[![Documentation](https://readthedocs.org/projects/pypesto/badge/?version=latest)](https://pypesto.readthedocs.io)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.2553546.svg)](https://doi.org/10.5281/zenodo.2553546)
diff --git a/doc/_static/colab-badge.svg b/doc/_static/colab-badge.svg
new file mode 100644
index 000000000..e5830d533
--- /dev/null
+++ b/doc/_static/colab-badge.svg
@@ -0,0 +1 @@
+
diff --git a/doc/_static/nbviewer-badge.svg b/doc/_static/nbviewer-badge.svg
new file mode 100644
index 000000000..d9d26af9b
--- /dev/null
+++ b/doc/_static/nbviewer-badge.svg
@@ -0,0 +1,186 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Open in nbviewer
+ Open in nbviewer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/conf.py b/doc/conf.py
index 928dab5c9..99e84f5bd 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -110,6 +110,19 @@
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = False
+# Add notebooks prolog to Google Colab and nbviewer
+nbsphinx_prolog = r"""
+{% set docname = 'github/icb-dcm/pypesto/blob/main/doc/' + env.doc2path(env.docname, base=None) %}
+.. raw:: html
+
+
+
+"""
# -- Options for HTML output ----------------------------------------------
@@ -127,7 +140,9 @@
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
-# html_static_path = ['_static']
+html_static_path = ['_static']
+
+# Favicon
html_favicon = "logo/logo_favicon.png"
# Custom sidebar templates, must be a dictionary that maps document names
diff --git a/doc/example.rst b/doc/example.rst
index 4451a5dc9..fbd15cf07 100644
--- a/doc/example.rst
+++ b/doc/example.rst
@@ -1,7 +1,23 @@
Examples
========
-The following examples cover typical use cases and should help get a better idea of how to use this package:
+We provide a collection of example notebooks to get a better idea of how to
+use pyPESTO, and illustrate core features.
+
+The notebooks can be run locally with an installation of jupyter
+(``pip install jupyter``), or online on Google Colab or nbviewer, following
+the links at the top of each notebook.
+At least an installation of pyPESTO is required, which can be performed by
+
+.. code:: sh
+
+ # install if not done yet
+ !pip install pypesto --quiet
+
+Potentially, further dependencies may be required.
+
+The following examples cover typical use cases and should help get a better
+idea of how to use this package:
.. toctree::
:maxdepth: 1
diff --git a/doc/example/amici_import.ipynb b/doc/example/amici_import.ipynb
index 408d2064c..73f5451f7 100644
--- a/doc/example/amici_import.ipynb
+++ b/doc/example/amici_import.ipynb
@@ -9,6 +9,17 @@
"This is an example using the \"boehm_ProteomeRes2014.xml\" model to demonstrate and test SBML import and AMICI Python interface."
]
},
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# install if not done yet\n",
+ "# !apt install libatlas-base-dev swig\n",
+ "# %pip install pypesto[amici] --quiet"
+ ]
+ },
{
"cell_type": "code",
"execution_count": 1,
@@ -566,7 +577,7 @@
],
"metadata": {
"kernelspec": {
- "display_name": "Python 3",
+ "display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@@ -580,7 +591,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.8.8"
+ "version": "3.9.7"
}
},
"nbformat": 4,
diff --git a/doc/example/conversion_reaction.ipynb b/doc/example/conversion_reaction.ipynb
index 979c41499..a145884b8 100644
--- a/doc/example/conversion_reaction.ipynb
+++ b/doc/example/conversion_reaction.ipynb
@@ -8,6 +8,17 @@
"==================="
]
},
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# install if not done yet\n",
+ "# !apt install libatlas-base-dev swig\n",
+ "# %pip install pypesto[amici] --quiet"
+ ]
+ },
{
"cell_type": "code",
"execution_count": 1,
@@ -503,7 +514,7 @@
],
"metadata": {
"kernelspec": {
- "display_name": "Python 3",
+ "display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@@ -517,7 +528,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.8.5"
+ "version": "3.9.7"
}
},
"nbformat": 4,
diff --git a/doc/example/fixed_parameters.ipynb b/doc/example/fixed_parameters.ipynb
index a23b4bdae..f0b621ad0 100644
--- a/doc/example/fixed_parameters.ipynb
+++ b/doc/example/fixed_parameters.ipynb
@@ -17,6 +17,16 @@
"of them to specified values."
]
},
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# install if not done yet\n",
+ "# %pip install pypesto --quiet"
+ ]
+ },
{
"cell_type": "markdown",
"metadata": {},
@@ -430,7 +440,7 @@
],
"metadata": {
"kernelspec": {
- "display_name": "Python 3",
+ "display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@@ -444,7 +454,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.6.9"
+ "version": "3.9.7"
}
},
"nbformat": 4,
diff --git a/doc/example/hdf5_storage.ipynb b/doc/example/hdf5_storage.ipynb
index 3e44202f6..e3dea71f6 100644
--- a/doc/example/hdf5_storage.ipynb
+++ b/doc/example/hdf5_storage.ipynb
@@ -7,6 +7,16 @@
"# Save and load results as HDF5 files"
]
},
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# install if not done yet\n",
+ "# %pip install pypesto --quiet"
+ ]
+ },
{
"cell_type": "code",
"execution_count": 24,
@@ -118,7 +128,9 @@
"outputs": [
{
"data": {
- "text/plain": ""
+ "text/plain": [
+ ""
+ ]
},
"execution_count": 27,
"metadata": {},
@@ -126,8 +138,10 @@
},
{
"data": {
- "text/plain": "