diff options
author | CoprDistGit <infra@openeuler.org> | 2023-06-20 05:36:21 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-06-20 05:36:21 +0000 |
commit | 3b2ec7c91ee4c1734246ce516aa0d26842288de4 (patch) | |
tree | de9ead7e67c2b14f60994908593061b2147c4ae9 /python-pyswmm.spec | |
parent | 4ebb29a8e1d88d7cabe60ced0197fca25d9b26e4 (diff) |
automatic import of python-pyswmmopeneuler20.03
Diffstat (limited to 'python-pyswmm.spec')
-rw-r--r-- | python-pyswmm.spec | 588 |
1 files changed, 588 insertions, 0 deletions
diff --git a/python-pyswmm.spec b/python-pyswmm.spec new file mode 100644 index 0000000..ca48fd1 --- /dev/null +++ b/python-pyswmm.spec @@ -0,0 +1,588 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pyswmm +Version: 1.4.0 +Release: 1 +Summary: Python Wrapper for SWMM5 API +License: BSD2 License +URL: https://github.com/OpenWaterAnalytics/pyswmm/wiki +Source0: https://mirrors.aliyun.com/pypi/web/packages/1d/82/bd158aca7d23c441c55c8890e963f0a7c5a3bf87a4e2bc8b88176a4b7845/pyswmm-1.4.0.tar.gz +BuildArch: noarch + +Requires: python3-swmm-toolkit +Requires: python3-julian +Requires: python3-aenum +Requires: python3-swmm-toolkit +Requires: python3-swmm-toolkit +Requires: python3-swmm-toolkit +Requires: python3-swmm-toolkit +Requires: python3-swmm-toolkit +Requires: python3-swmm-toolkit + +%description +<div align="center" style="max-width:500px;margin: auto;"> + <img src="https://raw.githubusercontent.com/OpenWaterAnalytics/pyswmm/master/docs/source/_static/type-logo-black.png"><br> +</div> + + +# python wrappers for the Stormwater Management Model (SWMM5) + +[](https://github.com/OpenWaterAnalytics/pyswmm/actions/workflows/python-package.yml) +[](http://docs.pyswmm.org/) +[](LICENSE.txt) +[](https://pypi.python.org/pypi/pyswmm/) +[](https://pypi.python.org/pypi/pyswmm/) +[](https://doi.org/10.21105/joss.02292) + +## Getting started + +* Poject Website: [www.pyswmm.org](https://www.pyswmm.org) + +* [Official PySWMM Documentation](http://docs.pyswmm.org) + +* [PySWMM YouTube Channel](https://www.youtube.com/channel/UCv-OYsz2moiMRzZIRhqbpHA/featured) + + +* [PySWMM Example Bundles](https://www.pyswmm.org/examples) + +🆘Do you need HELP?🆘 +> We provide support on [Stack +> Overflow](https://stackoverflow.com/search?q=pyswmm) or [GitHub +> Discussions](https://github.com/OpenWaterAnalytics/pyswmm/discussions) +> to answer support questions related to PySWMM. + +Cite our Paper +> McDonnell, Bryant E., Ratliff, Katherine M., Tryby, Michael E., Wu, +> Jennifer Jia Xin, & Mullapudi, Abhiram. (2020). PySWMM: The Python +> Interface to Stormwater Management Model (SWMM). *Journal of Open +> Source Software, 5*(52), 2292, <https://doi.org/10.21105/joss.02292> + +# YouTube Training Vidoes + +Setting a manhole inflow during a running simulation! +> [](https://youtu.be/av8L5gNSBvI) + +# Overview + +PySWMM is a Python language software package for the creation, +manipulation, and study of the structure, dynamics, and function of +complex networks. + +With PySWMM you can load and manipulate USEPA Stormwater Management +Models. With the development of PySWMM, control algorithms can now be +developed exclusively in Python which allows the use of functions and +objects as well as storing and tracking hydraulic trends for control +actions. + +As of version v1.1.0, PySWMM includes new features to process metadata +and timeseries stored in SWMM binary output file. + +# Who uses PySWMM? + +PySWMM is used by engineers, modelers, and researchers who want to +streamline stormwater modeling optimization, controls, and +post-processing results. + +# Goals + +PySWMM is intended to provide + +- tools for the study of the structure and dynamics within USEPA + SWMM5, +- a standard programming interface and graph implementation that is + suitable for many applications, +- a rapid development environment for collaborative, multidisciplinary + projects, +- an interface to USEPA SWMM5, +- development and implementation of control logic outside of native + EPA-SWMM Controls, +- methods for users to establish their own node inflows, +- a coding interface to binary output files, +- new modeling possibilities for the SWMM5 Community. + +# Install + +Get the latest version of PySWMM from +[PyPI](https://pypi.python.org/pypi/pyswmm/) See the [Quick +Guide](https://www.pyswmm.org/docs)! + +``` +$ pip install pyswmm +``` +As of version 1.3.1, pyswmm can be installed with specific versions of the SWMM engine ranging from 5.1.14 to 5.2.3 using pip extras: + +``` +$ pip install pyswmm[swmm5.2.1] +``` + +### SWMM and Python Compatibility Table + +| pyswmm version | swmm-toolkit compatibility<br>(SWMM engine) | python compatibility | +|----------------|--------------------------------------------------------------------------------------------------------|----------------------| +| 1.0.0 - 1.1.1 | 0.8.2 (SWMM 5.1.13) | 3.6 - 3.9 | +| 1.2.0 - 1.3.1 | 0.9.1 - 0.14.0 (SWMM 5.1.14 - 5.2.3)<br>Note: 0.11.0 (SWMM 5.2.0) only supported on windows | 3.7 - 3.11 | + +# Usage + +A quick example that steps through a simulation: + +Examples: + +See the [Latte Example](https://www.pyswmm.org/examples) + +``` python +from pyswmm import Simulation, Nodes, Links + +with Simulation(r'Example1.inp') as sim: + Node21 = Nodes(sim)["21"] + print("Invert Elevation: {}". format(Node21.invert_elevation)) + + Link15 = Links(sim)['15'] + print("Outlet Node ID: {}".format(Link15.outlet_node)) + + # Launch a simulation! + for ind, step in enumerate(sim): + if ind % 100 == 0: + print(sim.current_time,",",round(sim.percent_complete*100),"%",\ + Node21.depth, Link15.flow) +``` + +Opening a SWMM binary output file and accessing model metadata and +timeseries. + +``` python +from swmm.toolkit.shared_enum import SubcatchAttribute, NodeAttribute, LinkAttribute +from pyswmm import Output + +with Output('model.out') as out: + print(len(out.subcatchments)) + print(len(out.nodes)) + print(len(out.links)) + print(out.version) + sub_ts = out.subcatch_series('S1', SubcatchAttribute.RUNOFF_RATE) + node_ts = out.node_series('J1', NodeAttribute.INVERT_DEPTH) + link_ts = out.link_series('C2', LinkAttribute.FLOW_RATE) +``` + +# Bugs + +Our issue tracker is at +<https://github.com/OpenWaterAnalytics/pyswmm/issues>. Please report any +bugs that you find. Or, even better, fork the repository on GitHub and +create a pull request. All changes are welcome, big or small, and we +will help you make the pull request if you are new to git (just ask on +the issue). + +# Contributing + +Please check out our Wiki +<https://github.com/OpenWaterAnalytics/pyswmm/wiki> for more information +on contributing, including an Author Contribution Checklist. + +# License + +Distributed with a BSD2 license; see LICENSE.txt: + + Copyright (C) 2014-2023 PySWMM Developers + Community-Owned See AUTHORS and CITATION.cff + +# Acknowledgements + +- Assela Pathirana + + +%package -n python3-pyswmm +Summary: Python Wrapper for SWMM5 API +Provides: python-pyswmm +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-pyswmm +<div align="center" style="max-width:500px;margin: auto;"> + <img src="https://raw.githubusercontent.com/OpenWaterAnalytics/pyswmm/master/docs/source/_static/type-logo-black.png"><br> +</div> + + +# python wrappers for the Stormwater Management Model (SWMM5) + +[](https://github.com/OpenWaterAnalytics/pyswmm/actions/workflows/python-package.yml) +[](http://docs.pyswmm.org/) +[](LICENSE.txt) +[](https://pypi.python.org/pypi/pyswmm/) +[](https://pypi.python.org/pypi/pyswmm/) +[](https://doi.org/10.21105/joss.02292) + +## Getting started + +* Poject Website: [www.pyswmm.org](https://www.pyswmm.org) + +* [Official PySWMM Documentation](http://docs.pyswmm.org) + +* [PySWMM YouTube Channel](https://www.youtube.com/channel/UCv-OYsz2moiMRzZIRhqbpHA/featured) + + +* [PySWMM Example Bundles](https://www.pyswmm.org/examples) + +🆘Do you need HELP?🆘 +> We provide support on [Stack +> Overflow](https://stackoverflow.com/search?q=pyswmm) or [GitHub +> Discussions](https://github.com/OpenWaterAnalytics/pyswmm/discussions) +> to answer support questions related to PySWMM. + +Cite our Paper +> McDonnell, Bryant E., Ratliff, Katherine M., Tryby, Michael E., Wu, +> Jennifer Jia Xin, & Mullapudi, Abhiram. (2020). PySWMM: The Python +> Interface to Stormwater Management Model (SWMM). *Journal of Open +> Source Software, 5*(52), 2292, <https://doi.org/10.21105/joss.02292> + +# YouTube Training Vidoes + +Setting a manhole inflow during a running simulation! +> [](https://youtu.be/av8L5gNSBvI) + +# Overview + +PySWMM is a Python language software package for the creation, +manipulation, and study of the structure, dynamics, and function of +complex networks. + +With PySWMM you can load and manipulate USEPA Stormwater Management +Models. With the development of PySWMM, control algorithms can now be +developed exclusively in Python which allows the use of functions and +objects as well as storing and tracking hydraulic trends for control +actions. + +As of version v1.1.0, PySWMM includes new features to process metadata +and timeseries stored in SWMM binary output file. + +# Who uses PySWMM? + +PySWMM is used by engineers, modelers, and researchers who want to +streamline stormwater modeling optimization, controls, and +post-processing results. + +# Goals + +PySWMM is intended to provide + +- tools for the study of the structure and dynamics within USEPA + SWMM5, +- a standard programming interface and graph implementation that is + suitable for many applications, +- a rapid development environment for collaborative, multidisciplinary + projects, +- an interface to USEPA SWMM5, +- development and implementation of control logic outside of native + EPA-SWMM Controls, +- methods for users to establish their own node inflows, +- a coding interface to binary output files, +- new modeling possibilities for the SWMM5 Community. + +# Install + +Get the latest version of PySWMM from +[PyPI](https://pypi.python.org/pypi/pyswmm/) See the [Quick +Guide](https://www.pyswmm.org/docs)! + +``` +$ pip install pyswmm +``` +As of version 1.3.1, pyswmm can be installed with specific versions of the SWMM engine ranging from 5.1.14 to 5.2.3 using pip extras: + +``` +$ pip install pyswmm[swmm5.2.1] +``` + +### SWMM and Python Compatibility Table + +| pyswmm version | swmm-toolkit compatibility<br>(SWMM engine) | python compatibility | +|----------------|--------------------------------------------------------------------------------------------------------|----------------------| +| 1.0.0 - 1.1.1 | 0.8.2 (SWMM 5.1.13) | 3.6 - 3.9 | +| 1.2.0 - 1.3.1 | 0.9.1 - 0.14.0 (SWMM 5.1.14 - 5.2.3)<br>Note: 0.11.0 (SWMM 5.2.0) only supported on windows | 3.7 - 3.11 | + +# Usage + +A quick example that steps through a simulation: + +Examples: + +See the [Latte Example](https://www.pyswmm.org/examples) + +``` python +from pyswmm import Simulation, Nodes, Links + +with Simulation(r'Example1.inp') as sim: + Node21 = Nodes(sim)["21"] + print("Invert Elevation: {}". format(Node21.invert_elevation)) + + Link15 = Links(sim)['15'] + print("Outlet Node ID: {}".format(Link15.outlet_node)) + + # Launch a simulation! + for ind, step in enumerate(sim): + if ind % 100 == 0: + print(sim.current_time,",",round(sim.percent_complete*100),"%",\ + Node21.depth, Link15.flow) +``` + +Opening a SWMM binary output file and accessing model metadata and +timeseries. + +``` python +from swmm.toolkit.shared_enum import SubcatchAttribute, NodeAttribute, LinkAttribute +from pyswmm import Output + +with Output('model.out') as out: + print(len(out.subcatchments)) + print(len(out.nodes)) + print(len(out.links)) + print(out.version) + sub_ts = out.subcatch_series('S1', SubcatchAttribute.RUNOFF_RATE) + node_ts = out.node_series('J1', NodeAttribute.INVERT_DEPTH) + link_ts = out.link_series('C2', LinkAttribute.FLOW_RATE) +``` + +# Bugs + +Our issue tracker is at +<https://github.com/OpenWaterAnalytics/pyswmm/issues>. Please report any +bugs that you find. Or, even better, fork the repository on GitHub and +create a pull request. All changes are welcome, big or small, and we +will help you make the pull request if you are new to git (just ask on +the issue). + +# Contributing + +Please check out our Wiki +<https://github.com/OpenWaterAnalytics/pyswmm/wiki> for more information +on contributing, including an Author Contribution Checklist. + +# License + +Distributed with a BSD2 license; see LICENSE.txt: + + Copyright (C) 2014-2023 PySWMM Developers + Community-Owned See AUTHORS and CITATION.cff + +# Acknowledgements + +- Assela Pathirana + + +%package help +Summary: Development documents and examples for pyswmm +Provides: python3-pyswmm-doc +%description help +<div align="center" style="max-width:500px;margin: auto;"> + <img src="https://raw.githubusercontent.com/OpenWaterAnalytics/pyswmm/master/docs/source/_static/type-logo-black.png"><br> +</div> + + +# python wrappers for the Stormwater Management Model (SWMM5) + +[](https://github.com/OpenWaterAnalytics/pyswmm/actions/workflows/python-package.yml) +[](http://docs.pyswmm.org/) +[](LICENSE.txt) +[](https://pypi.python.org/pypi/pyswmm/) +[](https://pypi.python.org/pypi/pyswmm/) +[](https://doi.org/10.21105/joss.02292) + +## Getting started + +* Poject Website: [www.pyswmm.org](https://www.pyswmm.org) + +* [Official PySWMM Documentation](http://docs.pyswmm.org) + +* [PySWMM YouTube Channel](https://www.youtube.com/channel/UCv-OYsz2moiMRzZIRhqbpHA/featured) + + +* [PySWMM Example Bundles](https://www.pyswmm.org/examples) + +🆘Do you need HELP?🆘 +> We provide support on [Stack +> Overflow](https://stackoverflow.com/search?q=pyswmm) or [GitHub +> Discussions](https://github.com/OpenWaterAnalytics/pyswmm/discussions) +> to answer support questions related to PySWMM. + +Cite our Paper +> McDonnell, Bryant E., Ratliff, Katherine M., Tryby, Michael E., Wu, +> Jennifer Jia Xin, & Mullapudi, Abhiram. (2020). PySWMM: The Python +> Interface to Stormwater Management Model (SWMM). *Journal of Open +> Source Software, 5*(52), 2292, <https://doi.org/10.21105/joss.02292> + +# YouTube Training Vidoes + +Setting a manhole inflow during a running simulation! +> [](https://youtu.be/av8L5gNSBvI) + +# Overview + +PySWMM is a Python language software package for the creation, +manipulation, and study of the structure, dynamics, and function of +complex networks. + +With PySWMM you can load and manipulate USEPA Stormwater Management +Models. With the development of PySWMM, control algorithms can now be +developed exclusively in Python which allows the use of functions and +objects as well as storing and tracking hydraulic trends for control +actions. + +As of version v1.1.0, PySWMM includes new features to process metadata +and timeseries stored in SWMM binary output file. + +# Who uses PySWMM? + +PySWMM is used by engineers, modelers, and researchers who want to +streamline stormwater modeling optimization, controls, and +post-processing results. + +# Goals + +PySWMM is intended to provide + +- tools for the study of the structure and dynamics within USEPA + SWMM5, +- a standard programming interface and graph implementation that is + suitable for many applications, +- a rapid development environment for collaborative, multidisciplinary + projects, +- an interface to USEPA SWMM5, +- development and implementation of control logic outside of native + EPA-SWMM Controls, +- methods for users to establish their own node inflows, +- a coding interface to binary output files, +- new modeling possibilities for the SWMM5 Community. + +# Install + +Get the latest version of PySWMM from +[PyPI](https://pypi.python.org/pypi/pyswmm/) See the [Quick +Guide](https://www.pyswmm.org/docs)! + +``` +$ pip install pyswmm +``` +As of version 1.3.1, pyswmm can be installed with specific versions of the SWMM engine ranging from 5.1.14 to 5.2.3 using pip extras: + +``` +$ pip install pyswmm[swmm5.2.1] +``` + +### SWMM and Python Compatibility Table + +| pyswmm version | swmm-toolkit compatibility<br>(SWMM engine) | python compatibility | +|----------------|--------------------------------------------------------------------------------------------------------|----------------------| +| 1.0.0 - 1.1.1 | 0.8.2 (SWMM 5.1.13) | 3.6 - 3.9 | +| 1.2.0 - 1.3.1 | 0.9.1 - 0.14.0 (SWMM 5.1.14 - 5.2.3)<br>Note: 0.11.0 (SWMM 5.2.0) only supported on windows | 3.7 - 3.11 | + +# Usage + +A quick example that steps through a simulation: + +Examples: + +See the [Latte Example](https://www.pyswmm.org/examples) + +``` python +from pyswmm import Simulation, Nodes, Links + +with Simulation(r'Example1.inp') as sim: + Node21 = Nodes(sim)["21"] + print("Invert Elevation: {}". format(Node21.invert_elevation)) + + Link15 = Links(sim)['15'] + print("Outlet Node ID: {}".format(Link15.outlet_node)) + + # Launch a simulation! + for ind, step in enumerate(sim): + if ind % 100 == 0: + print(sim.current_time,",",round(sim.percent_complete*100),"%",\ + Node21.depth, Link15.flow) +``` + +Opening a SWMM binary output file and accessing model metadata and +timeseries. + +``` python +from swmm.toolkit.shared_enum import SubcatchAttribute, NodeAttribute, LinkAttribute +from pyswmm import Output + +with Output('model.out') as out: + print(len(out.subcatchments)) + print(len(out.nodes)) + print(len(out.links)) + print(out.version) + sub_ts = out.subcatch_series('S1', SubcatchAttribute.RUNOFF_RATE) + node_ts = out.node_series('J1', NodeAttribute.INVERT_DEPTH) + link_ts = out.link_series('C2', LinkAttribute.FLOW_RATE) +``` + +# Bugs + +Our issue tracker is at +<https://github.com/OpenWaterAnalytics/pyswmm/issues>. Please report any +bugs that you find. Or, even better, fork the repository on GitHub and +create a pull request. All changes are welcome, big or small, and we +will help you make the pull request if you are new to git (just ask on +the issue). + +# Contributing + +Please check out our Wiki +<https://github.com/OpenWaterAnalytics/pyswmm/wiki> for more information +on contributing, including an Author Contribution Checklist. + +# License + +Distributed with a BSD2 license; see LICENSE.txt: + + Copyright (C) 2014-2023 PySWMM Developers + Community-Owned See AUTHORS and CITATION.cff + +# Acknowledgements + +- Assela Pathirana + + +%prep +%autosetup -n pyswmm-1.4.0 + +%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-pyswmm -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 1.4.0-1 +- Package Spec generated |