Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Read the Docs testing codecov Supported python versions DOI PyPI version status

pyEQL logo

A python interface for water chemistry

Description

The goal of pyEQL is to provide a stable, intuitive, easy to learn python interface for water chemistry that can be connected to a variety of different modeling engines

Specifically, pyEQL defines a Solution class to represent an aqueous electrolyte solution. The Solution class allows the user to manipulate solutions as Python objects, providing methods to populate them with solutes, calculate species-specific properties (such as activity and diffusion coefficients), and retrieve bulk properties (such as density, conductivity, or volume).

>>> from pyEQL import Solution
>>> s1=Solution({"Na+":"1 mol/L", "Cl-": "1 mol/L"})
>>> s1.density
<Quantity(1.03710384, 'kilogram / liter')>
>>> s1.conductivity
<Quantity(8.09523295, 'siemens / meter')>
>>> s1.osmotic_pressure.to('atm')
<Quantity(46.7798197, 'standard_atmosphere')>
>>> s1.get_amount('Na+', 'ug/L')
<Quantity(22989769.3, 'microgram / liter')>

pyEQL also includes a number of other utilities to support water chemistry analysis, including a built-in property database of diffusion coefficients, activity correction parameters, and other data on a variety of common electrolytes.

It is designed to be customizable and easy to integrate into projects that require modeling of chemical thermodyanmics of aqueous solutions. It aspires to provide a flexible, extensible framework for the user, with a high level of transparency about data sources and calculation methods.

Key Features

  • Build accurate solution properties using a minimum of inputs. Just specify the identity and quantity of a solute and pyEQL will do the rest.

  • "Graceful Decay" from more sophisticated, data-intensive modeling approaches to simpler, less accurate ones depending on the amount of data supplied.

  • Not limited to dilute solutions. pyEQL contains out of the box support for the Pitzer Model and other methods for modeling concentrated solutions.

  • Built in database containing hundreds of model parameters and physicochemical properties for different ions.

  • Units-aware calculations (by means of the pint library)

Documentation

Detailed documentation is available at https://pyeql.readthedocs.io/

Dependencies

  • Python 3.10+. This project will attempt to adhere to NumPy's NEP 29 deprecation policy for older version of Python.
  • pint - for units-aware calculations
  • pymatgen - periodic table and chemical formula information
  • phreeqpython - for PHREEQC-based speciation calculations
  • iapws - equations of state for water
  • monty - serialization and deserialization utilities
  • maggma - interface for accessing the property database
  • scipy - for certain nonlinear equation solvers

pyEQL is licensed under LGPL.

This project has been set up using PyScaffold 4.5. For details and usage information on PyScaffold see https://pyscaffold.org/.

Metadata

Release files for vineetb-pyEQL 1.4.0rc9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vineetb-pyEQL 1.4.0rc9
File Size Uploaded Provenance
vineetb_pyeql-1.4.0rc9.tar.gz 14.2 MB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for vineetb-pyEQL 1.4.0rc9
File Interpreter ABI Platform
vineetb_pyeql-1.4.0rc9-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details

Total release size: 16.5 MB

Release files / vineetb_pyeql-1.4.0rc9.tar.gz

Download URL vineetb_pyeql-1.4.0rc9.tar.gz
Size 14.2 MB
Tags Source
SHA-256 checksum
How to use checksums
b7ed2f576166569381f7f5fd3dbba155f7a10bd4a02725fe85fea4a2010e40a4
BLAKE2b-256 checksum
How to use checksums
a8e9d83631587779fe8f4fc37fde1a43e410d4f870359b5b192a06394c97528d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release files / vineetb_pyeql-1.4.0rc9-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL vineetb_pyeql-1.4.0rc9-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 2.3 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0bdb4c6321a157f50d039cd205382e90c5c647301c5e78096fd6b02ac49e953e
BLAKE2b-256 checksum
How to use checksums
0d24794e16c4e4c3a8f15ff5d1abbaba759d649a1cd6f1090144ab2d19eea11d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Security for vineetb-pyEQL 1.4.0rc9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page