summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-06-20 03:29:40 +0000
committerCoprDistGit <infra@openeuler.org>2023-06-20 03:29:40 +0000
commit685b75be6667c1b87130530efa15c6f9b89f6254 (patch)
treeaaa453075798b07d7c8d043b27e9e4f8bb5e3a9b
parenta8ada40729aa73774a07bfc6e436076ed330f9e0 (diff)
automatic import of python-stochastic-arrowopeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-stochastic-arrow.spec498
-rw-r--r--sources1
3 files changed, 500 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..af117f1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/stochastic-arrow-0.5.2.tar.gz
diff --git a/python-stochastic-arrow.spec b/python-stochastic-arrow.spec
new file mode 100644
index 0000000..46a1069
--- /dev/null
+++ b/python-stochastic-arrow.spec
@@ -0,0 +1,498 @@
+%global _empty_manifest_terminate_build 0
+Name: python-stochastic-arrow
+Version: 0.5.2
+Release: 1
+Summary: please add a summary manually as the author left a blank one
+License: MIT
+URL: https://github.com/CovertLab/arrow
+Source0: https://mirrors.aliyun.com/pypi/web/packages/54/d1/23afc4b2349578db96085c8ed6ee94e407ebc82b39275f707120baa075ae/stochastic-arrow-0.5.2.tar.gz
+BuildArch: noarch
+
+
+%description
+# Arrow
+
+“... even if the previous millisecond is closer to us than the birth of the universe, it is equally out of reach.”
+― Jean-Christophe Valtat, Luminous Chaos
+
+## Concept
+
+This library implements a generalized version of the [Gillespie
+Algorithm](https://en.wikipedia.org/wiki/Gillespie_algorithm), a stochastic
+approach to numerically solving discrete systems. Each iteration, the algorithm
+will calculate the propensities for each reaction given a rate and the counts
+of the reactants present in the current state of the system, then selects one
+reaction to occur and the interval of time between the previous reaction and
+the current reaction. Iterating this produces a trajectory (or `history`) of
+the state vector over the course of the simulation.
+
+## Installation
+
+Add the following to your `requirements.txt`, or run
+`pip install stochastic-arrow` to install it [from PyPI](https://pypi.org/project/stochastic-arrow/):
+
+ stochastic-arrow
+
+## Usage
+
+The `arrow` library presents a single class as an interface,
+`StochasticSystem`, which operates on a set of reactions (encoded as a `numpy`
+matrix of stoichiometrix coefficients) and associated reaction rates:
+
+```python
+from arrow import StochasticSystem
+import numpy as np
+
+# Each row is a reaction and each column is a molecular species (or other
+# entity). The first reaction here means that the first and second elements
+# combine to create the third, while the fourth is unaffected.
+stoichiometric_matrix = np.array([
+ [1, 1, -1, 0],
+ [-2, 0, 0, 1],
+ [-1, -1, 1, 0]], np.int64)
+
+# Once we have a matrix of reactions, we can
+# construct the system.
+system = StochasticSystem(stoichiometric_matrix)
+```
+
+Now that the system has been instantiated, we can invoke it with any initial
+state vector and set of reaction rates and then run it for a given time interval:
+
+```python
+# This gives the initial state of the system (counts of each molecular species,
+# for instance).
+import numpy as np
+state = np.array([1000, 1000, 0, 0])
+
+# We also specify how long we want the simulation to run. Here we set it to one
+# second.
+duration = 1
+
+# Each reaction has an associated rate for how probable that reaction is.
+rates = np.array([3.0, 1.0, 1.0])
+```
+
+Once we have an initial state and rates, we can run the simulation for the
+given duration. `evolve` returns a dictionary with five keys:
+
+* steps - the number of steps the simulation took
+* time - at what time point each event took place
+* events - the events that occurred
+* occurrences - the number of times each event occurred (derived directly from `events`)
+* outcome - the final state of the system
+
+```python
+result = system.evolve(duration, state, rates)
+```
+
+If you are interested in the history of states for plotting or otherwise, these can be
+derived from the list of events and the stoichiometric matrix, along with the inital
+state. `reenact_events` will do this for you:
+
+```python
+from arrow import reenact_events
+
+history = reenact_events(stoichiometry, result['events'], state)
+```
+
+## Testing
+
+`arrow` uses [pytest](https://docs.pytest.org/en/latest/). To test it:
+
+ > make clean compile
+ > pytest
+
+**NOTE:** `make compile` without an explicit `clean` might not fully build the extension.
+
+There are more command line features in test_arrow:
+
+ > python -m arrow.test.test_arrow --complexation
+
+ > python -m arrow.test.test_arrow --plot
+
+ > python -m arrow.test.test_arrow --obsidian
+
+ > python -m arrow.test.test_arrow --memory
+
+ > python -m arrow.test.test_arrow --time
+
+More examples:
+
+ > python -m arrow.test.test_hang
+
+ > pytest -m arrow/test/test_arrow.py
+
+ > pytest -k flagella
+
+## Changelog
+
+### Version 0.5.2
+
+* Update to Cython 0.29.34. (Cython 3.0.0 is now in beta.)
+
+### Version 0.5.1
+
+* Update to Cython 3.0.0a11 for compatibility with Python 3.11.
+ Add `arrow.pxd` to work around a Cython 3.0.0 bug.
+* Stop using deprecated `numpy.distutils` to avoid warnings and prepare for its
+ removal in Python 3.12.
+* Make `test_arrow.py --plot` compatible with Python 3.
+* Fix `PytestReturnNotNoneWarning` warnings from pytest 7.2.0.
+
+### Version 0.5.0
+
+* Add the arrow_hang unit test which catches a nasty edge-case (Issue #48),
+ fix the bug, and make the code more robust to some other potential bugs.
+
+### Version 0.4.4
+
+* Can pickle StochasticSystem instances.
+
+### Version 0.3.0
+
+* Introduced backwards-incompatible API change for supplying rates at `evolve()` time rather than `__init__()` for `StochasticSystem`.
+
+
+%package -n python3-stochastic-arrow
+Summary: please add a summary manually as the author left a blank one
+Provides: python-stochastic-arrow
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-stochastic-arrow
+# Arrow
+
+“... even if the previous millisecond is closer to us than the birth of the universe, it is equally out of reach.”
+― Jean-Christophe Valtat, Luminous Chaos
+
+## Concept
+
+This library implements a generalized version of the [Gillespie
+Algorithm](https://en.wikipedia.org/wiki/Gillespie_algorithm), a stochastic
+approach to numerically solving discrete systems. Each iteration, the algorithm
+will calculate the propensities for each reaction given a rate and the counts
+of the reactants present in the current state of the system, then selects one
+reaction to occur and the interval of time between the previous reaction and
+the current reaction. Iterating this produces a trajectory (or `history`) of
+the state vector over the course of the simulation.
+
+## Installation
+
+Add the following to your `requirements.txt`, or run
+`pip install stochastic-arrow` to install it [from PyPI](https://pypi.org/project/stochastic-arrow/):
+
+ stochastic-arrow
+
+## Usage
+
+The `arrow` library presents a single class as an interface,
+`StochasticSystem`, which operates on a set of reactions (encoded as a `numpy`
+matrix of stoichiometrix coefficients) and associated reaction rates:
+
+```python
+from arrow import StochasticSystem
+import numpy as np
+
+# Each row is a reaction and each column is a molecular species (or other
+# entity). The first reaction here means that the first and second elements
+# combine to create the third, while the fourth is unaffected.
+stoichiometric_matrix = np.array([
+ [1, 1, -1, 0],
+ [-2, 0, 0, 1],
+ [-1, -1, 1, 0]], np.int64)
+
+# Once we have a matrix of reactions, we can
+# construct the system.
+system = StochasticSystem(stoichiometric_matrix)
+```
+
+Now that the system has been instantiated, we can invoke it with any initial
+state vector and set of reaction rates and then run it for a given time interval:
+
+```python
+# This gives the initial state of the system (counts of each molecular species,
+# for instance).
+import numpy as np
+state = np.array([1000, 1000, 0, 0])
+
+# We also specify how long we want the simulation to run. Here we set it to one
+# second.
+duration = 1
+
+# Each reaction has an associated rate for how probable that reaction is.
+rates = np.array([3.0, 1.0, 1.0])
+```
+
+Once we have an initial state and rates, we can run the simulation for the
+given duration. `evolve` returns a dictionary with five keys:
+
+* steps - the number of steps the simulation took
+* time - at what time point each event took place
+* events - the events that occurred
+* occurrences - the number of times each event occurred (derived directly from `events`)
+* outcome - the final state of the system
+
+```python
+result = system.evolve(duration, state, rates)
+```
+
+If you are interested in the history of states for plotting or otherwise, these can be
+derived from the list of events and the stoichiometric matrix, along with the inital
+state. `reenact_events` will do this for you:
+
+```python
+from arrow import reenact_events
+
+history = reenact_events(stoichiometry, result['events'], state)
+```
+
+## Testing
+
+`arrow` uses [pytest](https://docs.pytest.org/en/latest/). To test it:
+
+ > make clean compile
+ > pytest
+
+**NOTE:** `make compile` without an explicit `clean` might not fully build the extension.
+
+There are more command line features in test_arrow:
+
+ > python -m arrow.test.test_arrow --complexation
+
+ > python -m arrow.test.test_arrow --plot
+
+ > python -m arrow.test.test_arrow --obsidian
+
+ > python -m arrow.test.test_arrow --memory
+
+ > python -m arrow.test.test_arrow --time
+
+More examples:
+
+ > python -m arrow.test.test_hang
+
+ > pytest -m arrow/test/test_arrow.py
+
+ > pytest -k flagella
+
+## Changelog
+
+### Version 0.5.2
+
+* Update to Cython 0.29.34. (Cython 3.0.0 is now in beta.)
+
+### Version 0.5.1
+
+* Update to Cython 3.0.0a11 for compatibility with Python 3.11.
+ Add `arrow.pxd` to work around a Cython 3.0.0 bug.
+* Stop using deprecated `numpy.distutils` to avoid warnings and prepare for its
+ removal in Python 3.12.
+* Make `test_arrow.py --plot` compatible with Python 3.
+* Fix `PytestReturnNotNoneWarning` warnings from pytest 7.2.0.
+
+### Version 0.5.0
+
+* Add the arrow_hang unit test which catches a nasty edge-case (Issue #48),
+ fix the bug, and make the code more robust to some other potential bugs.
+
+### Version 0.4.4
+
+* Can pickle StochasticSystem instances.
+
+### Version 0.3.0
+
+* Introduced backwards-incompatible API change for supplying rates at `evolve()` time rather than `__init__()` for `StochasticSystem`.
+
+
+%package help
+Summary: Development documents and examples for stochastic-arrow
+Provides: python3-stochastic-arrow-doc
+%description help
+# Arrow
+
+“... even if the previous millisecond is closer to us than the birth of the universe, it is equally out of reach.”
+― Jean-Christophe Valtat, Luminous Chaos
+
+## Concept
+
+This library implements a generalized version of the [Gillespie
+Algorithm](https://en.wikipedia.org/wiki/Gillespie_algorithm), a stochastic
+approach to numerically solving discrete systems. Each iteration, the algorithm
+will calculate the propensities for each reaction given a rate and the counts
+of the reactants present in the current state of the system, then selects one
+reaction to occur and the interval of time between the previous reaction and
+the current reaction. Iterating this produces a trajectory (or `history`) of
+the state vector over the course of the simulation.
+
+## Installation
+
+Add the following to your `requirements.txt`, or run
+`pip install stochastic-arrow` to install it [from PyPI](https://pypi.org/project/stochastic-arrow/):
+
+ stochastic-arrow
+
+## Usage
+
+The `arrow` library presents a single class as an interface,
+`StochasticSystem`, which operates on a set of reactions (encoded as a `numpy`
+matrix of stoichiometrix coefficients) and associated reaction rates:
+
+```python
+from arrow import StochasticSystem
+import numpy as np
+
+# Each row is a reaction and each column is a molecular species (or other
+# entity). The first reaction here means that the first and second elements
+# combine to create the third, while the fourth is unaffected.
+stoichiometric_matrix = np.array([
+ [1, 1, -1, 0],
+ [-2, 0, 0, 1],
+ [-1, -1, 1, 0]], np.int64)
+
+# Once we have a matrix of reactions, we can
+# construct the system.
+system = StochasticSystem(stoichiometric_matrix)
+```
+
+Now that the system has been instantiated, we can invoke it with any initial
+state vector and set of reaction rates and then run it for a given time interval:
+
+```python
+# This gives the initial state of the system (counts of each molecular species,
+# for instance).
+import numpy as np
+state = np.array([1000, 1000, 0, 0])
+
+# We also specify how long we want the simulation to run. Here we set it to one
+# second.
+duration = 1
+
+# Each reaction has an associated rate for how probable that reaction is.
+rates = np.array([3.0, 1.0, 1.0])
+```
+
+Once we have an initial state and rates, we can run the simulation for the
+given duration. `evolve` returns a dictionary with five keys:
+
+* steps - the number of steps the simulation took
+* time - at what time point each event took place
+* events - the events that occurred
+* occurrences - the number of times each event occurred (derived directly from `events`)
+* outcome - the final state of the system
+
+```python
+result = system.evolve(duration, state, rates)
+```
+
+If you are interested in the history of states for plotting or otherwise, these can be
+derived from the list of events and the stoichiometric matrix, along with the inital
+state. `reenact_events` will do this for you:
+
+```python
+from arrow import reenact_events
+
+history = reenact_events(stoichiometry, result['events'], state)
+```
+
+## Testing
+
+`arrow` uses [pytest](https://docs.pytest.org/en/latest/). To test it:
+
+ > make clean compile
+ > pytest
+
+**NOTE:** `make compile` without an explicit `clean` might not fully build the extension.
+
+There are more command line features in test_arrow:
+
+ > python -m arrow.test.test_arrow --complexation
+
+ > python -m arrow.test.test_arrow --plot
+
+ > python -m arrow.test.test_arrow --obsidian
+
+ > python -m arrow.test.test_arrow --memory
+
+ > python -m arrow.test.test_arrow --time
+
+More examples:
+
+ > python -m arrow.test.test_hang
+
+ > pytest -m arrow/test/test_arrow.py
+
+ > pytest -k flagella
+
+## Changelog
+
+### Version 0.5.2
+
+* Update to Cython 0.29.34. (Cython 3.0.0 is now in beta.)
+
+### Version 0.5.1
+
+* Update to Cython 3.0.0a11 for compatibility with Python 3.11.
+ Add `arrow.pxd` to work around a Cython 3.0.0 bug.
+* Stop using deprecated `numpy.distutils` to avoid warnings and prepare for its
+ removal in Python 3.12.
+* Make `test_arrow.py --plot` compatible with Python 3.
+* Fix `PytestReturnNotNoneWarning` warnings from pytest 7.2.0.
+
+### Version 0.5.0
+
+* Add the arrow_hang unit test which catches a nasty edge-case (Issue #48),
+ fix the bug, and make the code more robust to some other potential bugs.
+
+### Version 0.4.4
+
+* Can pickle StochasticSystem instances.
+
+### Version 0.3.0
+
+* Introduced backwards-incompatible API change for supplying rates at `evolve()` time rather than `__init__()` for `StochasticSystem`.
+
+
+%prep
+%autosetup -n stochastic-arrow-0.5.2
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-stochastic-arrow -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.5.2-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..d003425
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+a61d31d9640b76e2f68dfad824170c5e stochastic-arrow-0.5.2.tar.gz