summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-18 04:06:58 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-18 04:06:58 +0000
commit0402495f939f4cb07c8d3cd22706f6e44c05eff8 (patch)
treece7c5ac3977f90feaad772d2470981816adaf35b
parentfcdf37c1350cdec431be9c9b646d86ca7dd48efe (diff)
automatic import of python-atomica
-rw-r--r--.gitignore1
-rw-r--r--python-atomica.spec400
-rw-r--r--sources1
3 files changed, 402 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..a5bb2de 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/atomica-1.25.17.tar.gz
diff --git a/python-atomica.spec b/python-atomica.spec
new file mode 100644
index 0000000..3a598b4
--- /dev/null
+++ b/python-atomica.spec
@@ -0,0 +1,400 @@
+%global _empty_manifest_terminate_build 0
+Name: python-atomica
+Version: 1.25.17
+Release: 1
+Summary: Toolbox for compartment-based dynamic systems with costing and optimization
+License: MIT License
+URL: https://atomica.tools
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/75/84/b461fde759bd783847673422b7a78a9712e97a92f2b04a1ca04350b8bd1c/atomica-1.25.17.tar.gz
+BuildArch: noarch
+
+Requires: python3-matplotlib
+Requires: python3-numpy
+Requires: python3-scipy
+Requires: python3-pandas
+Requires: python3-xlsxwriter
+Requires: python3-openpyxl
+Requires: python3-pyswarm
+Requires: python3-hyperopt
+Requires: python3-sciris
+Requires: python3-tqdm
+
+%description
+# Atomica
+
+[![Build Status](https://dev.azure.com/AtomicaTeam/Atomica/_apis/build/status/atomicateam.atomica?branchName=master)](https://dev.azure.com/AtomicaTeam/Atomica/_build/latest?definitionId=1&branchName=master)
+
+[![PyPi version](https://badgen.net/pypi/v/atomica/)](https://pypi.com/project/atomica)
+
+Atomica is a simulation engine for compartmental models. It can be used to simulate disease epidemics, health care cascades, and many other things.
+
+For detailed documentation, visit [https://atomica.tools/docs](https://atomica.tools/docs)
+
+## Installation
+
+Atomica is available for Python 3 only. Because we develop using Python 3.7, it is possible that dictionary order is relevant (although we endeavour to use ordered dictionaries via `Sciris` in places where order matters). Therefore, we only _officially_ support Python 3.7, as this is the first Python release that guarantees ordering of all dictionaries.
+
+Atomica is distributed via PyPI, and the PyPI version corresponds to `master` branch of this repository. To install via PyPI, it is only necessary to run
+
+```
+pip install atomica
+```
+
+Installation of `numpy`, `scipy` and `matplotlib` will automatically take place via `pip` because they are dependencies of Atomica. However, in practice these packages may require system-level setup so it is usually easiest to install them separately beforehand. We recommend using Anaconda, which facilitates getting the binaries and dependencies like QT installed in a platform-agnostic manner. We also recommend working within an Anaconda environment.
+
+You may also wish to install `mkl` first, before installing `numpy` etc. to improve performance. So for example:
+
+```
+conda install mkl
+conda install numpy scipy matplotlib
+```
+
+## Git installation
+
+If you want to install a different branch of Atomica, or plan to make changes to the Atomica source code, you will need to install Atomica via Git rather than via PyPI. This can be performed using
+
+```
+git clone https://github.com/atomicateam/atomica.git
+cd atomica
+pip install -e .
+```
+
+## Running tests
+
+Atomica includes a suite of tests, some of which get automatically run and others that are used manually. The automated test suite can be executed with `pytest`, and can be run from within an isolated environment using `tox`. To use the tests, you will need to follow the steps above to perform a 'Git installation' because the tests are not included in the PyPI distribution. After installation, you can run individual test scripts from the `tests` directory with commands like:
+
+```
+python tests/testworkflow.py
+```
+
+Note that many of the tests open `matplotlib` figures as part of the test. If the test script is run on a machine without a display available, the error
+
+```
+_tkinter.TclError: couldn't connect to display "localhost:0.0"
+```
+
+will be raised. In that case, simply set the `matplotlib` backend to `agg` which allows the calls to succeed with a display present. For example, run
+
+```
+export MPLBACKEND=agg
+python tests/testworkflow.py
+```
+
+To run the automated suite, install the test dependencies using
+
+```
+pip install -r requirements.txt
+```
+
+which will install the additional development dependencies. Then, to run the automated suite, from the root directory (the one containing `README.md`) run:
+
+```
+pytest
+```
+
+To run the tests in an isolated virtual environment, from the root directory, run
+
+```
+tox
+```
+
+If you don't have `tox`, install it using `pip install tox`. The default configuration expects Python 3.6 and Python 3.7 to be on your system - to test only against a specific version, pass the python version as an argument to `tox` e.g.
+
+```
+tox -e py37
+```
+
+to test Python 3.7 only.
+
+## Troubleshooting
+
+### Installation fails due to missing `numpy`
+
+If running `pip install -e .` in a new environment, `numpy` must be installed prior to `scipy`. In some cases,
+installing `numpy` may fail due to missing compiler options. In that case, you may wish to install `numpy` via Anaconda
+(by installing Python through Anaconda, and using `conda install numpy scipy matplotlib`). In general, our experience
+has been that it is easier to set up the C binaries for `numpy` and the QT dependencies for `matplotlib` via Anaconda
+rather than doing this via the system, which involves different steps on every platform.
+
+### Figure plotting hangs
+
+On some systems, the default `matplotlib` backend may hang - this is not an issue with `atomica`. To resolve, try changing the backend by including
+
+```
+import matplotlib
+matplotlib.use("Qt5Agg")
+```
+
+at the very start of your script. A different backend may be required for your system. You can make the change persistant by setting the backend in your `matplotlibrc` file.
+
+
+%package -n python3-atomica
+Summary: Toolbox for compartment-based dynamic systems with costing and optimization
+Provides: python-atomica
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-atomica
+# Atomica
+
+[![Build Status](https://dev.azure.com/AtomicaTeam/Atomica/_apis/build/status/atomicateam.atomica?branchName=master)](https://dev.azure.com/AtomicaTeam/Atomica/_build/latest?definitionId=1&branchName=master)
+
+[![PyPi version](https://badgen.net/pypi/v/atomica/)](https://pypi.com/project/atomica)
+
+Atomica is a simulation engine for compartmental models. It can be used to simulate disease epidemics, health care cascades, and many other things.
+
+For detailed documentation, visit [https://atomica.tools/docs](https://atomica.tools/docs)
+
+## Installation
+
+Atomica is available for Python 3 only. Because we develop using Python 3.7, it is possible that dictionary order is relevant (although we endeavour to use ordered dictionaries via `Sciris` in places where order matters). Therefore, we only _officially_ support Python 3.7, as this is the first Python release that guarantees ordering of all dictionaries.
+
+Atomica is distributed via PyPI, and the PyPI version corresponds to `master` branch of this repository. To install via PyPI, it is only necessary to run
+
+```
+pip install atomica
+```
+
+Installation of `numpy`, `scipy` and `matplotlib` will automatically take place via `pip` because they are dependencies of Atomica. However, in practice these packages may require system-level setup so it is usually easiest to install them separately beforehand. We recommend using Anaconda, which facilitates getting the binaries and dependencies like QT installed in a platform-agnostic manner. We also recommend working within an Anaconda environment.
+
+You may also wish to install `mkl` first, before installing `numpy` etc. to improve performance. So for example:
+
+```
+conda install mkl
+conda install numpy scipy matplotlib
+```
+
+## Git installation
+
+If you want to install a different branch of Atomica, or plan to make changes to the Atomica source code, you will need to install Atomica via Git rather than via PyPI. This can be performed using
+
+```
+git clone https://github.com/atomicateam/atomica.git
+cd atomica
+pip install -e .
+```
+
+## Running tests
+
+Atomica includes a suite of tests, some of which get automatically run and others that are used manually. The automated test suite can be executed with `pytest`, and can be run from within an isolated environment using `tox`. To use the tests, you will need to follow the steps above to perform a 'Git installation' because the tests are not included in the PyPI distribution. After installation, you can run individual test scripts from the `tests` directory with commands like:
+
+```
+python tests/testworkflow.py
+```
+
+Note that many of the tests open `matplotlib` figures as part of the test. If the test script is run on a machine without a display available, the error
+
+```
+_tkinter.TclError: couldn't connect to display "localhost:0.0"
+```
+
+will be raised. In that case, simply set the `matplotlib` backend to `agg` which allows the calls to succeed with a display present. For example, run
+
+```
+export MPLBACKEND=agg
+python tests/testworkflow.py
+```
+
+To run the automated suite, install the test dependencies using
+
+```
+pip install -r requirements.txt
+```
+
+which will install the additional development dependencies. Then, to run the automated suite, from the root directory (the one containing `README.md`) run:
+
+```
+pytest
+```
+
+To run the tests in an isolated virtual environment, from the root directory, run
+
+```
+tox
+```
+
+If you don't have `tox`, install it using `pip install tox`. The default configuration expects Python 3.6 and Python 3.7 to be on your system - to test only against a specific version, pass the python version as an argument to `tox` e.g.
+
+```
+tox -e py37
+```
+
+to test Python 3.7 only.
+
+## Troubleshooting
+
+### Installation fails due to missing `numpy`
+
+If running `pip install -e .` in a new environment, `numpy` must be installed prior to `scipy`. In some cases,
+installing `numpy` may fail due to missing compiler options. In that case, you may wish to install `numpy` via Anaconda
+(by installing Python through Anaconda, and using `conda install numpy scipy matplotlib`). In general, our experience
+has been that it is easier to set up the C binaries for `numpy` and the QT dependencies for `matplotlib` via Anaconda
+rather than doing this via the system, which involves different steps on every platform.
+
+### Figure plotting hangs
+
+On some systems, the default `matplotlib` backend may hang - this is not an issue with `atomica`. To resolve, try changing the backend by including
+
+```
+import matplotlib
+matplotlib.use("Qt5Agg")
+```
+
+at the very start of your script. A different backend may be required for your system. You can make the change persistant by setting the backend in your `matplotlibrc` file.
+
+
+%package help
+Summary: Development documents and examples for atomica
+Provides: python3-atomica-doc
+%description help
+# Atomica
+
+[![Build Status](https://dev.azure.com/AtomicaTeam/Atomica/_apis/build/status/atomicateam.atomica?branchName=master)](https://dev.azure.com/AtomicaTeam/Atomica/_build/latest?definitionId=1&branchName=master)
+
+[![PyPi version](https://badgen.net/pypi/v/atomica/)](https://pypi.com/project/atomica)
+
+Atomica is a simulation engine for compartmental models. It can be used to simulate disease epidemics, health care cascades, and many other things.
+
+For detailed documentation, visit [https://atomica.tools/docs](https://atomica.tools/docs)
+
+## Installation
+
+Atomica is available for Python 3 only. Because we develop using Python 3.7, it is possible that dictionary order is relevant (although we endeavour to use ordered dictionaries via `Sciris` in places where order matters). Therefore, we only _officially_ support Python 3.7, as this is the first Python release that guarantees ordering of all dictionaries.
+
+Atomica is distributed via PyPI, and the PyPI version corresponds to `master` branch of this repository. To install via PyPI, it is only necessary to run
+
+```
+pip install atomica
+```
+
+Installation of `numpy`, `scipy` and `matplotlib` will automatically take place via `pip` because they are dependencies of Atomica. However, in practice these packages may require system-level setup so it is usually easiest to install them separately beforehand. We recommend using Anaconda, which facilitates getting the binaries and dependencies like QT installed in a platform-agnostic manner. We also recommend working within an Anaconda environment.
+
+You may also wish to install `mkl` first, before installing `numpy` etc. to improve performance. So for example:
+
+```
+conda install mkl
+conda install numpy scipy matplotlib
+```
+
+## Git installation
+
+If you want to install a different branch of Atomica, or plan to make changes to the Atomica source code, you will need to install Atomica via Git rather than via PyPI. This can be performed using
+
+```
+git clone https://github.com/atomicateam/atomica.git
+cd atomica
+pip install -e .
+```
+
+## Running tests
+
+Atomica includes a suite of tests, some of which get automatically run and others that are used manually. The automated test suite can be executed with `pytest`, and can be run from within an isolated environment using `tox`. To use the tests, you will need to follow the steps above to perform a 'Git installation' because the tests are not included in the PyPI distribution. After installation, you can run individual test scripts from the `tests` directory with commands like:
+
+```
+python tests/testworkflow.py
+```
+
+Note that many of the tests open `matplotlib` figures as part of the test. If the test script is run on a machine without a display available, the error
+
+```
+_tkinter.TclError: couldn't connect to display "localhost:0.0"
+```
+
+will be raised. In that case, simply set the `matplotlib` backend to `agg` which allows the calls to succeed with a display present. For example, run
+
+```
+export MPLBACKEND=agg
+python tests/testworkflow.py
+```
+
+To run the automated suite, install the test dependencies using
+
+```
+pip install -r requirements.txt
+```
+
+which will install the additional development dependencies. Then, to run the automated suite, from the root directory (the one containing `README.md`) run:
+
+```
+pytest
+```
+
+To run the tests in an isolated virtual environment, from the root directory, run
+
+```
+tox
+```
+
+If you don't have `tox`, install it using `pip install tox`. The default configuration expects Python 3.6 and Python 3.7 to be on your system - to test only against a specific version, pass the python version as an argument to `tox` e.g.
+
+```
+tox -e py37
+```
+
+to test Python 3.7 only.
+
+## Troubleshooting
+
+### Installation fails due to missing `numpy`
+
+If running `pip install -e .` in a new environment, `numpy` must be installed prior to `scipy`. In some cases,
+installing `numpy` may fail due to missing compiler options. In that case, you may wish to install `numpy` via Anaconda
+(by installing Python through Anaconda, and using `conda install numpy scipy matplotlib`). In general, our experience
+has been that it is easier to set up the C binaries for `numpy` and the QT dependencies for `matplotlib` via Anaconda
+rather than doing this via the system, which involves different steps on every platform.
+
+### Figure plotting hangs
+
+On some systems, the default `matplotlib` backend may hang - this is not an issue with `atomica`. To resolve, try changing the backend by including
+
+```
+import matplotlib
+matplotlib.use("Qt5Agg")
+```
+
+at the very start of your script. A different backend may be required for your system. You can make the change persistant by setting the backend in your `matplotlibrc` file.
+
+
+%prep
+%autosetup -n atomica-1.25.17
+
+%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-atomica -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Thu May 18 2023 Python_Bot <Python_Bot@openeuler.org> - 1.25.17-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..a46621f
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+56d02cac4decab1aca644f6e3e96dacb atomica-1.25.17.tar.gz