Skip to main content

a thin wrapper for epanet hydraulic toolkit

Project description

epanet python package

A slender, auto-generated python wrapper around the owa:epanet hydraulic network analysis toolkit. This package uses SWIG and scikit-build to generate python bindings into the C library. The objective of this package is to establish basic python support for the toolkit, rather than present a "pythonic" interface. More abstractions can be built atop this package to further abstract the API, but the set of functions here is meant to (as closely as practical) mirror the well-known and established C API.

Where possible, SWIG has been configured to throw warnings/exceptions instead of using the customary EPANET return integer value for success-checking. Also any output (pointer) parameters from the C API have been re-routed to return values. In these cases, the return tuple from the Python API will contain the values desired.

Installation

To install with pip:

pip install owa-epanet

Wheels are now provided for most installations, some extra work will be needed if installing from source.

Building the libraries

Ensure the EPANET subproject is initialized by running git submodule update --init (if necessary) and running the following commands (on Windows skip the line ./script/clean.sh). The following method uses scikit-build to invoke cmake for compiling and linking the shared libaries, and builds a python wheel.

./scripts/clean.sh
python3 setup.py sdist bdist_wheel

Test your builds using the following commands.

cd test && \
pipenv install ../dist/*.whl && \
pipenv install pytest && \
pipenv run pytest

This python library was packaged in the following way:

python3 setup.py sdist bdist_wheel
python3 -m twine upload dist/*

Versioning

This package loosely follows EPANET's release version numbers. Its major and minor numbers will correspond to the given EPANET version, but the patch number is independent. This system might change in the future.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

owa-epanet-2.2.4.tar.gz (797.3 kB view hashes)

Uploaded source

Built Distributions

owa_epanet-2.2.4-cp310-cp310-win_amd64.whl (288.8 kB view hashes)

Uploaded cp310

owa_epanet-2.2.4-cp39-cp39-win_amd64.whl (261.9 kB view hashes)

Uploaded cp39

owa_epanet-2.2.4-cp38-cp38-win_amd64.whl (288.7 kB view hashes)

Uploaded cp38

owa_epanet-2.2.4-cp37-cp37m-win_amd64.whl (261.6 kB view hashes)

Uploaded cp37

owa_epanet-2.2.4-cp36-cp36m-win_amd64.whl (287.9 kB view hashes)

Uploaded cp36

owa_epanet-2.2.4-cp36-cp36m-win32.whl (261.5 kB view hashes)

Uploaded cp36

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page