Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
7b8701f
clean up license files
jmrohwer Dec 10, 2023
20fc403
update nleq2 readme with instructions for disabling nleq2 during build
jmrohwer Dec 10, 2023
1557640
update additional licences file
jmrohwer Dec 10, 2023
3c8e0fd
delete CMake files
jmrohwer Dec 10, 2023
72d0c38
delete setup.py, rename one of the pscmodels
jmrohwer Dec 10, 2023
2ebebe1
add meson build files
jmrohwer Dec 10, 2023
fb8699c
update pyproject.toml to use mesonpy, move long description to separa…
jmrohwer Dec 10, 2023
4ae9440
update copyright year in CONTRIBUTORS.md
jmrohwer Dec 10, 2023
60f1a6b
add config.py for configuring extension modules
jmrohwer Dec 10, 2023
abfa3b2
fix small build bugs
jmrohwer Dec 10, 2023
2be243e
exclude all __pycache__ dirs in build
jmrohwer Dec 11, 2023
7e1d61b
fix numpy build dependencies
jmrohwer Dec 11, 2023
97d7ef1
fix build dependencies
jmrohwer Dec 11, 2023
c733bd2
test cibuildwheel linux
jmrohwer Dec 11, 2023
f234975
cleanup conda stuff, move outdated scripts to separate directory
jmrohwer Dec 12, 2023
dd14885
update conda build files for new mesonpy build, test linux
jmrohwer Dec 12, 2023
83f8cdd
add conda packaging files for Windows
jmrohwer Dec 13, 2023
f178174
add separate conda build and workflow files for unix and windows
jmrohwer Dec 13, 2023
e5a13f4
remove pysces/README.txt, info superseded by markdown files in root o…
jmrohwer Dec 14, 2023
decc3c6
fix requirements
jmrohwer Dec 14, 2023
459dbbb
update conda-scripts README to indicate obsolete
jmrohwer Dec 14, 2023
3571635
unify GH workflow file for Anaconda build, test with Py3.11
jmrohwer Dec 14, 2023
aa0c9fa
reset python versions for conda build after testing
jmrohwer Dec 14, 2023
5648e3a
reset cibuildwheel OS matrix
jmrohwer Dec 14, 2023
55d4b5c
update install information for latest version
jmrohwer Dec 14, 2023
42b7615
update version to 1.2.0
jmrohwer Dec 14, 2023
92c0f67
update documentation with new install instructions
jmrohwer Dec 14, 2023
eaab50f
update README
jmrohwer Dec 14, 2023
fe4a741
simplify pyscfg.ini using importlib.util, remove legacy code
jmrohwer Dec 15, 2023
a28a8f4
fix character escape syntax errors, use raw strings where needed
jmrohwer Dec 15, 2023
a871b2e
add math import; used for assignment rules with e.g. log
jmrohwer Feb 9, 2024
fe4714b
replace math.log with numpy.log etc. to deal with arrays
jmrohwer Feb 10, 2024
171defe
remove duplicate entry in NumpyToMathML dict
jmrohwer Feb 10, 2024
22c955e
Removed parsing of math.* functions from parsers\n Not sure if this b…
bgoli Feb 12, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 25 additions & 7 deletions .github/workflows/build-conda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,26 +11,44 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
# os: [ubuntu-latest, windows-2019, macos-12]
os: [ubuntu-latest]
os: [ubuntu-latest, windows-latest, macos-12]
name: Build Anaconda packages on ${{ matrix.os }}

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: (windows) Install rtools MinGW compilers
if: matrix.os == 'windows-latest'
run: |
choco install rtools -y --no-progress --force --version=4.0.0.20220206

- name: (windows) Add compiler path to PATH
if: matrix.os == 'windows-latest'
uses: myci-actions/export-env-var-powershell@1
with:
name: PATH
value: c:\rtools40\ucrt64\bin;c:\rtools40\usr\bin;$env:PATH

- name: Setup conda
uses: s-weigand/setup-conda@v1
with:
update-conda: true
update-conda: false
conda-channels: conda-forge

- name: Prepare conda environment
run: |
conda install mamba conda-build conda-verify anaconda-client
conda install mamba boa conda-verify anaconda-client
mamba update --all
mkdir build_output

- name: Build packages
run: mamba build --no-anaconda-upload --output-folder ./build_output ./packaging/conda
- name: (unix) Build packages for ${{ matrix.os }}
if: matrix.os != 'windows-latest'
run: conda mambabuild --no-anaconda-upload --output-folder ./build_output ./packaging/conda-unix

- name: (windows) Build packages for ${{ matrix.os }}
if: matrix.os == 'windows-latest'
run: conda mambabuild --no-anaconda-upload --output-folder ./build_output ./packaging/conda-win

- uses: actions/upload-artifact@v3
with:
name: build_outputs
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/cibuildwheel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
os: [ubuntu-latest, windows-latest, macos-12]

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: (windows) Install rtools MinGW compilers
if: matrix.os == 'windows-latest'
Expand Down Expand Up @@ -43,7 +43,7 @@ jobs:

- name: Build sdist
run: |
pip install scikit-build build
pip install build
python -m build -s .

- uses: actions/upload-artifact@v3
Expand Down
15 changes: 8 additions & 7 deletions ADDITIONAL_LICENCES.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,22 @@ Licences for other software (or parts thereof) distributed with, or used by, PyS

The NLEQ2 algorithm from ZIB which has its own licence and warranty and does not fall
under the PySCeS GPL licence. ZIB has kindly given us permission to distribute NLEQ2
with PySCeS provided its use falls within their terms of usage (/nleq2/nleq2_readme):
with PySCeS provided its use falls within their terms of usage
(`pysces/nleq2/nleq2.f`):

You may use or modify this code for your own non-commercial purposes for an unlimited
time. In any case you should not deliver this code without a special permission of ZIB.
In case you intend to use the code commercially, we oblige you to sign an according
licence agreement with ZIB.

If you are not using PySCeS for research or personal use you **must** disable NLEQ2 by
setting `nleq2 = 0` in setup.py before installation. This is a plug-in solver and its
removal does not otherwise influence PySCeS.
setting `nleq2 = False` in `config.py` before installation. This is a plug-in solver
and its removal does not otherwise influence PySCeS.

## PLY

David Beazley's PLY 3.3 (http://www.dabeaz.com/ply/). This package is included unchanged
and consists of two files *lex.py* and *yacc.py* in the `pysces/lib` and `pysces/core2`
modules.
David Beazley's PLY 3.11 (http://www.dabeaz.com/ply/). This package is included
unchanged and consists of two files *lex.py* and *yacc.py* in the `pysces/lib`
and `pysces/core2` modules. PLY is distributed under a BSD licence.

© Brett G. Olivier & Johann M. Rohwer, August 2021
© Brett G. Olivier & Johann M. Rohwer, January 2024
8 changes: 4 additions & 4 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# YAML 1.2
---
cff-version: "1.1.2"
cff-version: "1.2.0"
message: "If you use this software, please cite it using the information provided in this metadata."
authors:
-
Expand All @@ -14,9 +14,9 @@ authors:
affiliation: "Stellenbosch University"
orcid: "https://orcid.org/0000-0001-6288-8904"
title: "The Python Simulator for Cellular Systems: PySCeS"
version: "1.1.2"
repository-code: "https://github.com/PySCeS/pysces/tree/1.1.2"
date-released: 2023-11-17
version: "1.2.0"
repository-code: "https://github.com/PySCeS/pysces/tree/1.2.0"
date-released: 2023-12-14
doi: "10.5281/zenodo.2600905"
license: "BSD-3-Clause"
url: https://pysces.github.io
Expand Down
16 changes: 0 additions & 16 deletions CMakeLists.txt

This file was deleted.

2 changes: 1 addition & 1 deletion CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ organisations:
* The South African National Bioinformatics Network (2003-2008)
* The South African National Research Foundation (2000-2004)

© Brett G. Olivier & Johann M. Rohwer, August 2021
© Brett G. Olivier & Johann M. Rohwer, January 2024
18 changes: 18 additions & 0 deletions DESCRIPTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# PySCeS - the Python Simulator for Cellular Systems

PySCeS was originally developed by the Triple-J Group for Molecular
Cell Physiology at Stellenbosch University in order to try to model and understand the
complex processes and systems which make up the living cell. The project is
maintained by Brett Olivier (AIMMS, Vrije Universiteit Amsterdam) and Johann Rohwer
(Laboratory for Molecular Systems Biology, Stellenbosch University).

PySCeS features, amongst other things:
- A text-based model description language.
- A structural analysis module.
- Integrators for time simulation.
- Non-linear solvers for steady-state analysis.
- A module for performing Metabolic Control Analysis.
- A bifurcation module for systems which exhibit multiple steady states.
- A variety of extra utilities for parameter scans, data output and plotting.
- A dynamic module loading framework.
- Systems Biology Markup Language (SBML) import and export capability.
39 changes: 25 additions & 14 deletions INSTALL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
# Installing PySCeS

Binary install packages for all three OSs and Python versions 3.6-3.9 are provided.
Anaconda users can conveniently install PySCeS with:
Binary install packages for all three OSs and recent Python versions are
provided. Anaconda packages are available for 64-bit Windows and Linux, as well as
macOS *x86_64* architecture. Apple Silicon (*arm64*) macOS users should install with
`pip` (see below). Anaconda users can conveniently install PySCeS with:

```bash
$ conda install -c conda-forge -c pysces pysces
Expand All @@ -11,7 +13,9 @@ Any dependencies will be installed automatically, including the optional depende
*Assimulo*, *ipyparallel* and *libSBML*.

Alternatively, you can use *pip* to
install PySCeS from PyPI. Core dependencies will be installed automatically.
install PySCeS from PyPI. Core dependencies will be installed automatically. Wheels
are available for 64-bit Windows and Linux, as well as macOS architectures *x86_64* and
*arm64* (starting from PySCeS version 1.2.0).

```bash
$ pip install pysces
Expand All @@ -30,7 +34,7 @@ To install the optional dependences:
> very limited number of Python versions and operating systems on PyPI.
> **This is not guaranteed to work!** If you require Assimulo, the conda
> install is by far the easier option as up-to-date binaries are supplied
> for all OS and recent Python versions.
> for all OSs and recent Python versions.

For more information on installing and configuring PySCeS please see the
[PySCeS User Guide](https://github.com/PySCeS/pysces-documentation/blob/main/source/userguide_doc.rst#installing-and-configuring)
Expand All @@ -42,17 +46,25 @@ installation from source. This requires Fortran and C compilers.

### Windows build

The fastest way to build your own copy of PySCeS is to use Anaconda Python.
The fastest way to build your own copy of PySCeS is to use Anaconda for
installing Python and the required libraries. In addition, the *RTools* compiler
toolchain is required.

* Download and install
[Anaconda for Python 3](https://www.anaconda.com/products/individual#Downloads)
[Anaconda for Python 3](https://www.anaconda.com/download#Downloads)
* Obtain [Git for Windows](https://git-scm.com/download/win)
* Obtain the *RTools* compiler toolchain (**version 4.0.0.20220206**), either using
[Chocolatey](https://chocolatey.org/install)
(`choco install rtools -y --version=4.0.0.20220206`) or by
[direct download](https://github.com/r-windows/rtools-installer/releases/download/2022-02-06/rtools40-x86_64.exe)
- Install in `C:\rtools40` (Chocolatey automatically installs to this path)
- Add `c:\rtools40\ucrt64\bin` and `c:\rtools40\usr\bin` to the system `PATH`
* Create a PySCeS environment using conda and activate it:

```bash
$ conda create -n pyscesdev -c conda-forge python=3.8 numpy scipy \
$ conda create -n pyscesdev -c conda-forge python=3.11 numpy=1.26 scipy \
matplotlib sympy packaging pip wheel ipython python-libsbml \
fortran-compiler assimulo scikit-build
assimulo meson meson-python ninja
$ conda activate pyscesdev
```

Expand All @@ -63,11 +75,10 @@ $ conda activate pyscesdev
(pyscesdev)$ cd pysces-src
```

* Now you can build and install PySCeS into the pyscesdev environment
* Now you can build and install PySCeS into the *pyscesdev* environment

```bash
(pyscesdev)$ python setup.py build
(pyscesdev)$ python setup.py install
(pyscesdev)$ pip install --no-deps --no-build-isolation .
```

### Linux build
Expand All @@ -80,7 +91,7 @@ Clone the source from Github as described above, change into the source director
run:

```bash
$ python setup.py install
$ pip install .
```

### macOS build
Expand All @@ -92,7 +103,7 @@ compilers may be installed via [Xcode](https://developer.apple.com/xcode). Clone
source from Github as described above, change into the source directory and run:

```bash
$ python setup.py install
$ pip install .
```

© Brett G. Olivier & Johann M. Rohwer, August 2021
© Johann M. Rohwer & Brett G. Olivier, January 2024
6 changes: 3 additions & 3 deletions LATEST.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ git clone [email protected]:PySCeS/pysces.git
```

PySCeS binaries for release versions are available from PyPI and the Anaconda.org
for 64-bit Windows, Linux and macOS.
repository for 64-bit Windows, Linux and macOS.

**For PyPI:**

Expand All @@ -20,7 +20,7 @@ pip install pysces
**For Anaconda:**

```
conda install -c sbmlteam -c pysces pysces
conda install -c conda-forge -c pysces pysces
```

© Brett G. Olivier & Johann M. Rohwer, August 2021
© Brett G. Olivier & Johann M. Rohwer, January 2024
29 changes: 0 additions & 29 deletions LICENSE

This file was deleted.

9 changes: 5 additions & 4 deletions LICENCE.txt → LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
BSD 3-Clause License

Copyright (c) 2004 - 2021, PySCeS: The Python Simulator for Cellular Systems, Brett G. Olivier, Johann M. Rohwer and Jan-Hendrik S. Hofmeyr
Copyright (c) 2004 - 2024, PySCeS: The Python Simulator for Cellular Systems,
Brett G. Olivier, Johann M. Rohwer and Jan-Hendrik S. Hofmeyr
All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
Expand All @@ -13,9 +14,9 @@ are permitted provided that the following conditions are met:
conditions and the following disclaimer in the documentation and/or other materials
provided with the distribution.

* Neither the name of the B.G. Olivier, J.M. Rohwer, J.-H.S. Hofmeyr nor the names of any
contributors may be used to endorse or promote products derived from this software
without specific prior written permission.
* Neither the name of the copyright holders B.G. Olivier, J.M. Rohwer, and J.-H.S.
Hofmeyr, nor the names of any contributors, may be used to endorse or promote products
derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
Expand Down
21 changes: 0 additions & 21 deletions MANIFEST.in

This file was deleted.

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ PySCeS releases are available on [PyPI](https://pypi.org/project/pysces/#files),
[Anaconda.org](https://anaconda.org/pysces/pysces) and
[Github](https://github.com/PySCeS/pysces)

PySCeS binaries are available for Python 3.6+ on Windows, Linux and OSX and can be
PySCeS binaries are available for Python 3.9+ on Windows, Linux and OSX and can be
installed using

**PyPI**
Expand Down
22 changes: 0 additions & 22 deletions conda-environment.yml

This file was deleted.

Loading