You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
a [PEP 517](https://peps.python.org/pep-0517/) compliant Python build backend that
27
+
is suitable for building C and Fortran extension modules by implementing
28
+
the [meson build system](https://mesonbuild.com/). There is no more `setup.py` and
29
+
project build options and metadata are now in `pyproject.toml`.
30
+
31
+
The main **motivation** for this has been support for Python 3.12, which deprecated
32
+
the use of `distutils`, and consequently `numpy` dropped `numpy.distutils`. The
33
+
previous build system had relied on `numpy.distutils` for building Fortran extension
34
+
modules, which would no longer work on Python 3.12. In the mean time, `scipy`, `numpy`,
35
+
as well as a number of other packages in the scientific Python ecosystem have moved
36
+
their build systems to `meson-python`. This version thus brings PySCeS in line with
37
+
the other packages.
38
+
39
+
In addition, **binary wheels for macOS on Apple silicon** (*arm64*) are provided
40
+
for the first time (Python 3.11 and 3.12).
41
+
42
+
### What has changed?
43
+
44
+
- From a regular user perspective, not much. Installation is still via `pip` or `conda`.
45
+
46
+
- From a developer perspective: there is no longer a `setup.py`. Metadata has been
47
+
migrated to `pyproject.toml`. Build settings are spread between `pyproject.toml` and
48
+
various `meson.build` files. The build is straightforward using one of:
49
+
```bash
50
+
$ pip wheel -w dist .
51
+
$ python -m build .
52
+
```
53
+
as long as the relevant compiler toolchain is installed (gcc and gfortran on Linux and
54
+
macOS, RTools on Windows). Installation can be done with
55
+
```bash
56
+
$ pip install .
57
+
or
58
+
$ pip install --no-build-isolation -e . (for an editable install)
59
+
```
60
+
Refer to [INSTALL.md](https://github.com/PySCeS/pysces/blob/main/INSTALL.md).
61
+
62
+
-`Numpy` version >=1.26 is required for the build, as older versions of `f2py` (which
63
+
is distributed with `numpy`) are not compatible. At runtime, any `numpy` version >
64
+
=1.23 is supported, older versions don't work due to ABI incompatibility.
65
+
- Binaries (wheels) are distributed for Python versions 3.9-3.12. Python 3.8 support is
66
+
dropped as the latest `numpy` and `scipy` versions also no longer support it.
67
+
- Documentation has been updated to reflect these changes.
68
+
69
+
### Bug fixes
70
+
71
+
- Fixed a bug with assignment rule evaluation when one species was an exact substring of
72
+
another species.
73
+
- Use vectorised functions `numpy.log`, `numpy.log10`, `numpy.exp` instead of
74
+
their `math.*` counterparts to support their application to arrays in e.g. assignment
75
+
rules.
76
+
- Removed a bunch of deprecated `scipy.*` functions that have moved to the `numpy.*`
77
+
namespace.
78
+
- Cleaned up unused imports.
79
+
3
80
## PySCeS release 1.1.1 (Jul 2023)
4
81
5
-
We are pleased to announce the release of the Python Simulator for Cellular Systems:
6
-
PySCeS (https://pysces.github.io/) version 1.1.1. This is the first release in the 1.1
82
+
We are pleased to announce the release of the Python Simulator for Cellular Systems:
83
+
PySCeS (https://pysces.github.io/) version 1.1.1. This is the first release in the 1.1
7
84
series and contains some new features and various bug fixes.
8
85
9
86
### New features
10
87
11
-
- When used in a notebook environment, the `ipympl` backend for matplotlib is now enabled if installed. This allows use in JupyterLab (as opposed to classic notebook). If `ipympl` is not installed, fallback is to the standard `nbAgg`, which is part of matplotlib.
12
-
- Simulation results (`mod.sim` object) can now be returned as a pandas DataFrame if pandas is installed, otherwise a numpy recarray is returned as before. This option is configurable with `custom_datatype = pandas` in the user and system configuration files (see https://pyscesdocs.readthedocs.io/en/latest/userguide_doc.html#configuration), and can be enabled or disabled per session or per model:
88
+
- When used in a notebook environment, the `ipympl` backend for matplotlib is now
89
+
enabled if installed. This allows use in JupyterLab (as opposed to classic notebook).
90
+
If `ipympl` is not installed, fallback is to the standard `nbAgg`, which is part of
91
+
matplotlib.
92
+
- Simulation results (`mod.sim` object) can now be returned as a pandas DataFrame if
93
+
pandas is installed, otherwise a numpy recarray is returned as before. This option is
94
+
configurable with `custom_datatype = pandas` in the user and system configuration
95
+
files (
96
+
see https://pyscesdocs.readthedocs.io/en/latest/userguide_doc.html#configuration), and
97
+
can be enabled or disabled per session or per model:
13
98
```python
14
99
pysces.enablePandas()
15
100
pysces.enablePandas(False)
@@ -19,170 +104,141 @@ series and contains some new features and various bug fixes.
19
104
20
105
### Bug fixes
21
106
22
-
- Fixed a bug in simulations with `RateRules` using Assimulo, where a wrong solver variable was being assigned internally.
107
+
- Fixed a bug in simulations with `RateRules` using Assimulo, where a wrong solver
108
+
variable was being assigned internally.
23
109
- Fixed SBML export when assignment rules were evaluating reaction rates.
24
-
- Enabled assignment rules (forcing functions) to track parameter changes when using CVODE. This is needed in case events change parameters during the course of the simulation.
0 commit comments