pyEQL 1.3.0__tar.gz → 1.3.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyeql-1.3.0 → pyeql-1.3.1}/CHANGELOG.md +8 -0
- {pyeql-1.3.0/src/pyEQL.egg-info → pyeql-1.3.1}/PKG-INFO +1 -1
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/changelog.md +8 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/src/pyEQL/solution.py +5 -1
- {pyeql-1.3.0 → pyeql-1.3.1/src/pyEQL.egg-info}/PKG-INFO +1 -1
- {pyeql-1.3.0 → pyeql-1.3.1}/tests/conftest.py +2 -2
- {pyeql-1.3.0 → pyeql-1.3.1}/.coveragerc +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/.gitattributes +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/.github/dependabot.yml +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/.github/pull_request_template.md +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/.github/release.yml +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/.github/workflows/post-process.yml +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/.github/workflows/release.yml +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/.github/workflows/testing.yaml +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/.github/workflows/upgrade_dependencies.yml +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/.gitignore +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/.pre-commit-config.yaml +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/.readthedocs.yml +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/.zenodo.json +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/AUTHORS.md +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/CITATION.cff +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/COPYING +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/LICENSE.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/MANIFEST.in +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/README.md +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/Makefile +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/_static/.gitignore +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/amounts.md +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/arithmetic.md +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/authors.md +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/chemistry.md +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/class_solution.md +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/conf.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/contributing.md +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/creating.md +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/database.md +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/engines.md +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/examples/.ipynb_checkpoints/pyEQL_demo_1-checkpoint.ipynb +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/examples/.ipynb_checkpoints/pyeql_demo-checkpoint.ipynb +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/examples/.ipynb_checkpoints/pyeql_tutorial_database-checkpoint.ipynb +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/examples/.ipynb_checkpoints/pyeql_tutorial_osmotic_pressure-checkpoint.ipynb +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/examples/.ipynb_checkpoints/speedup-checkpoint.ipynb +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/examples/pyeql_demo.ipynb +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/examples/pyeql_tutorial_activity.ipynb +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/examples/pyeql_tutorial_carbonate.ipynb +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/examples/pyeql_tutorial_database.ipynb +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/examples/pyeql_tutorial_osmotic_pressure.ipynb +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/index.md +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/installation.md +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/internal.md +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/license.md +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/mixing.md +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/quickstart.md +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/requirements.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/serialization.md +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/tutorials.md +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/docs/units.md +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/pyeql-logo.png +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/pyeql-logo.svg +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/pyproject.toml +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/requirements/macos-latest_py3.10.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/requirements/macos-latest_py3.10_extras.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/requirements/macos-latest_py3.11.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/requirements/macos-latest_py3.11_extras.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/requirements/macos-latest_py3.12.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/requirements/macos-latest_py3.12_extras.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/requirements/macos-latest_py3.9.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/requirements/macos-latest_py3.9_extras.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/requirements/ubuntu-latest_py3.10.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/requirements/ubuntu-latest_py3.10_extras.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/requirements/ubuntu-latest_py3.11.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/requirements/ubuntu-latest_py3.11_extras.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/requirements/ubuntu-latest_py3.12.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/requirements/ubuntu-latest_py3.12_extras.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/requirements/ubuntu-latest_py3.9.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/requirements/ubuntu-latest_py3.9_extras.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/requirements/windows-latest_py3.10.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/requirements/windows-latest_py3.10_extras.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/requirements/windows-latest_py3.11.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/requirements/windows-latest_py3.11_extras.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/requirements/windows-latest_py3.12.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/requirements/windows-latest_py3.12_extras.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/requirements/windows-latest_py3.9.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/requirements/windows-latest_py3.9_extras.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/setup.cfg +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/setup.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/src/pyEQL/__init__.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/src/pyEQL/activity_correction.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/src/pyEQL/database/geothermal.dat +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/src/pyEQL/database/llnl.dat +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/src/pyEQL/database/phreeqc_license.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/src/pyEQL/database/pyeql_db.json +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/src/pyEQL/engines.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/src/pyEQL/equilibrium.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/src/pyEQL/functions.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/src/pyEQL/presets/Ringers lactate.yaml +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/src/pyEQL/presets/normal saline.yaml +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/src/pyEQL/presets/rainwater.yaml +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/src/pyEQL/presets/seawater.yaml +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/src/pyEQL/presets/urine.yaml +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/src/pyEQL/presets/wastewater.yaml +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/src/pyEQL/py.typed +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/src/pyEQL/salt_ion_match.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/src/pyEQL/solute.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/src/pyEQL/utils.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/src/pyEQL.egg-info/SOURCES.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/src/pyEQL.egg-info/dependency_links.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/src/pyEQL.egg-info/requires.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/src/pyEQL.egg-info/top_level.txt +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/tests/test_activity.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/tests/test_bulk_properties.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/tests/test_debye_length.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/tests/test_density.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/tests/test_dielectric.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/tests/test_effective_pitzer.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/tests/test_equilibrium.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/tests/test_functions.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/tests/test_logging.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/tests/test_mixed_electrolyte_activity.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/tests/test_osmotic_coeff.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/tests/test_phreeqc.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/tests/test_salt_matching.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/tests/test_solute.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/tests/test_solute_properties.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/tests/test_solution.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/tests/test_utils.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/tests/test_volume_concentration.py +0 -0
- {pyeql-1.3.0 → pyeql-1.3.1}/tox.ini +0 -0
|
@@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.3.1] - 2025-08-18
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- `Solution.get_salt_dict()`: In solutions containing polyatomic ions with a heteroatom (an atom other than `H` or `O`)
|
|
13
|
+
having a stoichiometric coefficient greater than 1 mol per mol salt , such as Fe(CN)6[-3], the method would
|
|
14
|
+
return incorrect results, possibly impacting activity coefficient calculations. This has now been fixed. (#277, @ugognw)
|
|
15
|
+
|
|
8
16
|
## [1.3.0] - 2025-08-08
|
|
9
17
|
|
|
10
18
|
### Fixed
|
|
@@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.3.1] - 2025-08-18
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- `Solution.get_salt_dict()`: In solutions containing polyatomic ions with a heteroatom (an atom other than `H` or `O`)
|
|
13
|
+
having a stoichiometric coefficient greater than 1 mol per mol salt , such as Fe(CN)6[-3], the method would
|
|
14
|
+
return incorrect results, possibly impacting activity coefficient calculations. This has now been fixed. (#277, @ugognw)
|
|
15
|
+
|
|
8
16
|
## [1.3.0] - 2025-08-08
|
|
9
17
|
|
|
10
18
|
### Fixed
|
|
@@ -1571,7 +1571,11 @@ class Solution(MSONable):
|
|
|
1571
1571
|
# # use only the predominant species for each element
|
|
1572
1572
|
components = {}
|
|
1573
1573
|
for el, lst in self.get_components_by_element().items():
|
|
1574
|
-
|
|
1574
|
+
component = lst[0]
|
|
1575
|
+
ion = Ion.from_formula(component)
|
|
1576
|
+
el_no_oxi_state = el.split("(")[0]
|
|
1577
|
+
nu_el = ion.get_el_amt_dict()[el_no_oxi_state]
|
|
1578
|
+
components[component] = self.get_total_amount(el, "mol").magnitude / nu_el
|
|
1575
1579
|
# add H+ and OH-, which would otherwise be excluded
|
|
1576
1580
|
for k in ["H[+1]", "OH[-1]"]:
|
|
1577
1581
|
if self.components.get(k):
|
|
@@ -7,8 +7,8 @@ import pyEQL
|
|
|
7
7
|
from pyEQL.engines import EOS
|
|
8
8
|
from pyEQL.salt_ion_match import Salt
|
|
9
9
|
|
|
10
|
-
_CATIONS = ["Na[+1]", "Ca[+2]", "Fe[+3]", "K[+1]", "Li[+1]", "Cu[+2]", "Ba[+2]"]
|
|
11
|
-
_ANIONS = ["Cl[-1]", "SO4[-2]", "PO4[-3]", "ClO[-1]", "NO3[-1]", "CO3[-2]", "MnO4[-2]"]
|
|
10
|
+
_CATIONS = ["Na[+1]", "Ca[+2]", "Fe[+3]", "K[+1]", "Li[+1]", "Cu[+2]", "Ba[+2]", "NH4[+1]"]
|
|
11
|
+
_ANIONS = ["Fe(CN)6[-3]", "Cl[-1]", "SO4[-2]", "PO4[-3]", "ClO[-1]", "NO3[-1]", "CO3[-2]", "MnO4[-2]"]
|
|
12
12
|
_SALTS = list(product(_CATIONS[:3], _ANIONS[:3]))
|
|
13
13
|
_ACIDS = [("H[+1]", anion) for anion in _ANIONS[:3]]
|
|
14
14
|
_BASES = [(cation, "OH[-1]") for cation in _CATIONS[:3]]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|