pyEQL 1.1.5__tar.gz → 1.1.6__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.1.5 → pyeql-1.1.6}/.github/workflows/post-process.yml +11 -5
- {pyeql-1.1.5 → pyeql-1.1.6}/.github/workflows/release.yml +1 -1
- {pyeql-1.1.5 → pyeql-1.1.6}/AUTHORS.md +7 -4
- {pyeql-1.1.5 → pyeql-1.1.6}/CHANGELOG.md +27 -0
- {pyeql-1.1.5/src/pyEQL.egg-info → pyeql-1.1.6}/PKG-INFO +12 -12
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/authors.md +7 -4
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/changelog.md +27 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/pyproject.toml +11 -11
- {pyeql-1.1.5 → pyeql-1.1.6}/requirements/macos-latest_py3.10.txt +21 -21
- {pyeql-1.1.5 → pyeql-1.1.6}/requirements/macos-latest_py3.10_extras.txt +36 -36
- {pyeql-1.1.5 → pyeql-1.1.6}/requirements/macos-latest_py3.11.txt +21 -21
- {pyeql-1.1.5 → pyeql-1.1.6}/requirements/macos-latest_py3.11_extras.txt +35 -35
- {pyeql-1.1.5 → pyeql-1.1.6}/requirements/macos-latest_py3.12.txt +21 -21
- {pyeql-1.1.5 → pyeql-1.1.6}/requirements/macos-latest_py3.12_extras.txt +35 -35
- {pyeql-1.1.5 → pyeql-1.1.6}/requirements/macos-latest_py3.9.txt +22 -21
- {pyeql-1.1.5 → pyeql-1.1.6}/requirements/macos-latest_py3.9_extras.txt +37 -36
- {pyeql-1.1.5 → pyeql-1.1.6}/requirements/ubuntu-latest_py3.10.txt +21 -21
- {pyeql-1.1.5 → pyeql-1.1.6}/requirements/ubuntu-latest_py3.10_extras.txt +36 -36
- {pyeql-1.1.5 → pyeql-1.1.6}/requirements/ubuntu-latest_py3.11.txt +21 -21
- {pyeql-1.1.5 → pyeql-1.1.6}/requirements/ubuntu-latest_py3.11_extras.txt +35 -35
- {pyeql-1.1.5 → pyeql-1.1.6}/requirements/ubuntu-latest_py3.12.txt +21 -21
- {pyeql-1.1.5 → pyeql-1.1.6}/requirements/ubuntu-latest_py3.12_extras.txt +35 -35
- {pyeql-1.1.5 → pyeql-1.1.6}/requirements/ubuntu-latest_py3.9.txt +22 -21
- {pyeql-1.1.5 → pyeql-1.1.6}/requirements/ubuntu-latest_py3.9_extras.txt +37 -36
- {pyeql-1.1.5 → pyeql-1.1.6}/requirements/windows-latest_py3.10.txt +21 -21
- {pyeql-1.1.5 → pyeql-1.1.6}/requirements/windows-latest_py3.10_extras.txt +36 -36
- {pyeql-1.1.5 → pyeql-1.1.6}/requirements/windows-latest_py3.11.txt +21 -21
- {pyeql-1.1.5 → pyeql-1.1.6}/requirements/windows-latest_py3.11_extras.txt +35 -35
- {pyeql-1.1.5 → pyeql-1.1.6}/requirements/windows-latest_py3.12.txt +21 -21
- {pyeql-1.1.5 → pyeql-1.1.6}/requirements/windows-latest_py3.12_extras.txt +35 -35
- {pyeql-1.1.5 → pyeql-1.1.6}/requirements/windows-latest_py3.9.txt +22 -21
- {pyeql-1.1.5 → pyeql-1.1.6}/requirements/windows-latest_py3.9_extras.txt +37 -36
- {pyeql-1.1.5 → pyeql-1.1.6}/src/pyEQL/functions.py +27 -13
- {pyeql-1.1.5 → pyeql-1.1.6}/src/pyEQL/solution.py +4 -5
- {pyeql-1.1.5 → pyeql-1.1.6}/src/pyEQL/utils.py +6 -0
- {pyeql-1.1.5 → pyeql-1.1.6/src/pyEQL.egg-info}/PKG-INFO +12 -12
- {pyeql-1.1.5 → pyeql-1.1.6}/src/pyEQL.egg-info/requires.txt +11 -11
- {pyeql-1.1.5 → pyeql-1.1.6}/tests/test_functions.py +19 -3
- {pyeql-1.1.5 → pyeql-1.1.6}/tests/test_solution.py +1 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/tests/test_utils.py +2 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/.coveragerc +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/.gitattributes +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/.github/dependabot.yml +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/.github/pull_request_template.md +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/.github/release.yml +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/.github/workflows/testing.yaml +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/.github/workflows/upgrade_dependencies.yml +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/.gitignore +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/.pre-commit-config.yaml +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/.readthedocs.yml +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/.zenodo.json +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/CITATION.cff +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/COPYING +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/LICENSE.txt +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/MANIFEST.in +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/README.md +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/Makefile +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/_static/.gitignore +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/amounts.md +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/arithmetic.md +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/chemistry.md +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/class_solution.md +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/conf.py +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/contributing.md +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/creating.md +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/database.md +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/engines.md +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/examples/.ipynb_checkpoints/pyEQL_demo_1-checkpoint.ipynb +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/examples/.ipynb_checkpoints/pyeql_demo-checkpoint.ipynb +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/examples/.ipynb_checkpoints/pyeql_tutorial_database-checkpoint.ipynb +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/examples/.ipynb_checkpoints/pyeql_tutorial_osmotic_pressure-checkpoint.ipynb +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/examples/.ipynb_checkpoints/speedup-checkpoint.ipynb +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/examples/pyEQL_demo_1.ipynb +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/examples/pyeql_demo.ipynb +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/examples/pyeql_tutorial_database.ipynb +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/examples/pyeql_tutorial_osmotic_pressure.ipynb +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/examples/speedup.ipynb +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/index.md +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/installation.md +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/internal.md +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/license.md +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/mixing.md +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/quickstart.md +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/readme.md +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/requirements.txt +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/serialization.md +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/tutorials.md +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/docs/units.md +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/pyeql-logo.png +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/pyeql-logo.svg +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/setup.cfg +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/setup.py +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/src/pyEQL/__init__.py +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/src/pyEQL/activity_correction.py +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/src/pyEQL/database/geothermal.dat +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/src/pyEQL/database/llnl.dat +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/src/pyEQL/database/phreeqc_license.txt +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/src/pyEQL/database/pyeql_db.json +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/src/pyEQL/engines.py +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/src/pyEQL/equilibrium.py +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/src/pyEQL/presets/Ringers lactate.yaml +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/src/pyEQL/presets/normal saline.yaml +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/src/pyEQL/presets/rainwater.yaml +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/src/pyEQL/presets/seawater.yaml +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/src/pyEQL/presets/urine.yaml +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/src/pyEQL/presets/wastewater.yaml +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/src/pyEQL/salt_ion_match.py +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/src/pyEQL/solute.py +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/src/pyEQL.egg-info/SOURCES.txt +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/src/pyEQL.egg-info/dependency_links.txt +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/src/pyEQL.egg-info/top_level.txt +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/tests/conftest.py +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/tests/test_activity.py +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/tests/test_bulk_properties.py +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/tests/test_debye_length.py +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/tests/test_density.py +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/tests/test_dielectric.py +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/tests/test_effective_pitzer.py +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/tests/test_equilibrium.py +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/tests/test_logging.py +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/tests/test_mixed_electrolyte_activity.py +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/tests/test_osmotic_coeff.py +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/tests/test_phreeqc.py +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/tests/test_salt_matching.py +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/tests/test_solute.py +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/tests/test_solute_properties.py +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/tests/test_volume_concentration.py +0 -0
- {pyeql-1.1.5 → pyeql-1.1.6}/tox.ini +0 -0
|
@@ -33,26 +33,32 @@ jobs:
|
|
|
33
33
|
strategy:
|
|
34
34
|
max-parallel: 6
|
|
35
35
|
matrix:
|
|
36
|
-
|
|
36
|
+
version:
|
|
37
|
+
- { python: "3.9", resolution: highest, extras: testing }
|
|
38
|
+
- { python: "3.10", resolution: lowest-direct, extras: testing }
|
|
39
|
+
- { python: "3.11", resolution: highest, extras: testing }
|
|
40
|
+
- { python: "3.12", resolution: lowest-direct, extras: testing }
|
|
37
41
|
os:
|
|
38
42
|
- ubuntu-latest
|
|
39
43
|
- macos-latest
|
|
40
44
|
- windows-latest
|
|
41
45
|
- macos-14
|
|
42
46
|
exclude:
|
|
43
|
-
-
|
|
44
|
-
|
|
47
|
+
- {version: {
|
|
48
|
+
python: "3.9" },
|
|
49
|
+
os: macos-14 }
|
|
45
50
|
runs-on: ${{ matrix.os }}
|
|
46
51
|
steps:
|
|
47
52
|
- uses: actions/checkout@v4
|
|
48
53
|
- name: Setup Python
|
|
49
54
|
uses: actions/setup-python@v5
|
|
50
55
|
with:
|
|
51
|
-
python-version: ${{ matrix.
|
|
56
|
+
python-version: ${{ matrix.version.python }}
|
|
52
57
|
- name: Install test requirements
|
|
53
58
|
run: |
|
|
54
59
|
python -m pip install --upgrade pip
|
|
55
|
-
pip install
|
|
60
|
+
pip install uv
|
|
61
|
+
uv pip install '.[${{ matrix.version.extras }}]' --system --resolution=${{ matrix.version.resolution }}
|
|
56
62
|
- name: Run tests
|
|
57
63
|
run: |
|
|
58
64
|
pytest -n auto --cov=src/pyEQL --cov-report=xml
|
|
@@ -5,9 +5,12 @@ developed and maintained by the Kingsbury Lab at Princeton University.
|
|
|
5
5
|
|
|
6
6
|
Other contributors, listed alphabetically, are:
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
- Arpit Bhardwaj (@abhardwaj73)
|
|
9
|
+
- Dhruv Duseja (@DhruvDuseja)
|
|
10
|
+
- Hernan Grecco (@hgrecco)
|
|
11
|
+
- Jaebeom Park (@Jaebeom-P)
|
|
12
|
+
- Kirill Pushkarev (@kirill-push)
|
|
13
|
+
- Andrew Rosen (@arosen93)
|
|
14
|
+
- Sui Xiong Tay (@SuixiongTay)
|
|
12
15
|
|
|
13
16
|
(If you think that your name belongs here, please let the maintainer know)
|
|
@@ -5,6 +5,33 @@ 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.1.6] - 2024-09-01
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- `Solution.get_total_amount`: Bugfix that caused an error when called on certain elements
|
|
13
|
+
without specifying an oxidation state. For example, `get_total_amount('N')` could raise
|
|
14
|
+
an exception in a solution containing `Na` (but no `N`) due to a flaw in a logical
|
|
15
|
+
test.
|
|
16
|
+
- `Solution._adjust_charge_balance`: Removed a misleading and redundant log message (#162, @SuixiongTay)
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
|
|
20
|
+
- `gibbs_mix`: A new keyword argument `activity_correction` was added to `gibbs_mix`. It defaults
|
|
21
|
+
to `True` (no change from prior behavior), but can be set to `False` in order to calculate the
|
|
22
|
+
ideal mixing energy, which is equivalent to only considering entropic effects. (#178, @Jaebeom-P)
|
|
23
|
+
- `standardize_formula`: Improve formatting of ammonium sulfate salts. Aqueous ammonium sulfate previously
|
|
24
|
+
standardized to `H8S(NO2)2(aq)`, now it will display as `(NH4)2SO4(aq)`.
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
|
|
28
|
+
- **BREAKING** `entropy_mix` now returns the ideal mixing _entropy_ in units of J/K rather than the mixing
|
|
29
|
+
_energy_ in J. This was done to improve clarity with respect to the function name. An `activity_correction`
|
|
30
|
+
kwarg was added to `gibbs_mix` so that you can still calculate the ideal mixing energy by setting it to `False`.
|
|
31
|
+
(#178, @Jaebeom-P)
|
|
32
|
+
- Revise documentation of `gibbs_mix`, `entropy_mix`, and `donnan_eql`. (#178, @Jaebeom-P)
|
|
33
|
+
- CI: Improve comprehensiveness of CI dependency testing. (#163, #164, @abhardwaj73)
|
|
34
|
+
|
|
8
35
|
## [1.1.5] - 2024-07-28
|
|
9
36
|
|
|
10
37
|
### Fixed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pyEQL
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.6
|
|
4
4
|
Summary: A python interface for solution chemistry
|
|
5
5
|
Author-email: Ryan Kingsbury <kingsbury@princeton.edu>
|
|
6
6
|
Project-URL: Docs, https://pyeql.readthedocs.io/
|
|
@@ -21,22 +21,22 @@ License-File: LICENSE.txt
|
|
|
21
21
|
License-File: COPYING
|
|
22
22
|
License-File: AUTHORS.md
|
|
23
23
|
Requires-Dist: pint>=0.19
|
|
24
|
-
Requires-Dist: numpy<2
|
|
25
|
-
Requires-Dist: scipy
|
|
24
|
+
Requires-Dist: numpy<2,>1.26
|
|
25
|
+
Requires-Dist: scipy>=1.12
|
|
26
26
|
Requires-Dist: pymatgen==2024.5.1
|
|
27
|
-
Requires-Dist: iapws
|
|
27
|
+
Requires-Dist: iapws>=1.5.3
|
|
28
28
|
Requires-Dist: monty>=2024.7.12
|
|
29
29
|
Requires-Dist: maggma>=0.67.0
|
|
30
|
-
Requires-Dist: phreeqpython
|
|
30
|
+
Requires-Dist: phreeqpython>=1.5.2
|
|
31
31
|
Provides-Extra: testing
|
|
32
|
-
Requires-Dist: setuptools; extra == "testing"
|
|
33
|
-
Requires-Dist: pre-commit; extra == "testing"
|
|
34
|
-
Requires-Dist: pytest; extra == "testing"
|
|
35
|
-
Requires-Dist: pytest-cov; extra == "testing"
|
|
36
|
-
Requires-Dist: pytest-xdist; extra == "testing"
|
|
32
|
+
Requires-Dist: setuptools>=68; extra == "testing"
|
|
33
|
+
Requires-Dist: pre-commit>=2; extra == "testing"
|
|
34
|
+
Requires-Dist: pytest>=7; extra == "testing"
|
|
35
|
+
Requires-Dist: pytest-cov>=2.11; extra == "testing"
|
|
36
|
+
Requires-Dist: pytest-xdist>2; extra == "testing"
|
|
37
37
|
Requires-Dist: black; extra == "testing"
|
|
38
|
-
Requires-Dist: mypy; extra == "testing"
|
|
39
|
-
Requires-Dist: ruff; extra == "testing"
|
|
38
|
+
Requires-Dist: mypy>1; extra == "testing"
|
|
39
|
+
Requires-Dist: ruff>0.0.100; extra == "testing"
|
|
40
40
|
Requires-Dist: tox<4; extra == "testing"
|
|
41
41
|
Provides-Extra: docs
|
|
42
42
|
Requires-Dist: sphinx>=3.2.1; extra == "docs"
|
|
@@ -5,9 +5,12 @@ developed and maintained by the Kingsbury Lab at Princeton University.
|
|
|
5
5
|
|
|
6
6
|
Other contributors, listed alphabetically, are:
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
- Arpit Bhardwaj (@abhardwaj73)
|
|
9
|
+
- Dhruv Duseja (@DhruvDuseja)
|
|
10
|
+
- Hernan Grecco (@hgrecco)
|
|
11
|
+
- Jaebeom Park (@Jaebeom-P)
|
|
12
|
+
- Kirill Pushkarev (@kirill-push)
|
|
13
|
+
- Andrew Rosen (@arosen93)
|
|
14
|
+
- Sui Xiong Tay (@SuixiongTay)
|
|
12
15
|
|
|
13
16
|
(If you think that your name belongs here, please let the maintainer know)
|
|
@@ -5,6 +5,33 @@ 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.1.6] - 2024-09-01
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- `Solution.get_total_amount`: Bugfix that caused an error when called on certain elements
|
|
13
|
+
without specifying an oxidation state. For example, `get_total_amount('N')` could raise
|
|
14
|
+
an exception in a solution containing `Na` (but no `N`) due to a flaw in a logical
|
|
15
|
+
test.
|
|
16
|
+
- `Solution._adjust_charge_balance`: Removed a misleading and redundant log message (#162, @SuixiongTay)
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
|
|
20
|
+
- `gibbs_mix`: A new keyword argument `activity_correction` was added to `gibbs_mix`. It defaults
|
|
21
|
+
to `True` (no change from prior behavior), but can be set to `False` in order to calculate the
|
|
22
|
+
ideal mixing energy, which is equivalent to only considering entropic effects. (#178, @Jaebeom-P)
|
|
23
|
+
- `standardize_formula`: Improve formatting of ammonium sulfate salts. Aqueous ammonium sulfate previously
|
|
24
|
+
standardized to `H8S(NO2)2(aq)`, now it will display as `(NH4)2SO4(aq)`.
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
|
|
28
|
+
- **BREAKING** `entropy_mix` now returns the ideal mixing _entropy_ in units of J/K rather than the mixing
|
|
29
|
+
_energy_ in J. This was done to improve clarity with respect to the function name. An `activity_correction`
|
|
30
|
+
kwarg was added to `gibbs_mix` so that you can still calculate the ideal mixing energy by setting it to `False`.
|
|
31
|
+
(#178, @Jaebeom-P)
|
|
32
|
+
- Revise documentation of `gibbs_mix`, `entropy_mix`, and `donnan_eql`. (#178, @Jaebeom-P)
|
|
33
|
+
- CI: Improve comprehensiveness of CI dependency testing. (#163, #164, @abhardwaj73)
|
|
34
|
+
|
|
8
35
|
## [1.1.5] - 2024-07-28
|
|
9
36
|
|
|
10
37
|
### Fixed
|
|
@@ -21,13 +21,13 @@ license = {file = "LICENSE"}
|
|
|
21
21
|
requires-python = ">=3.9"
|
|
22
22
|
dependencies = [
|
|
23
23
|
"pint>=0.19",
|
|
24
|
-
"numpy
|
|
25
|
-
"scipy",
|
|
24
|
+
"numpy>1.26,<2",
|
|
25
|
+
"scipy>=1.12",
|
|
26
26
|
"pymatgen==2024.5.1",
|
|
27
|
-
"iapws",
|
|
27
|
+
"iapws>=1.5.3",
|
|
28
28
|
"monty>=2024.7.12",
|
|
29
29
|
"maggma>=0.67.0",
|
|
30
|
-
"phreeqpython",
|
|
30
|
+
"phreeqpython>=1.5.2",
|
|
31
31
|
]
|
|
32
32
|
|
|
33
33
|
[project.urls]
|
|
@@ -38,14 +38,14 @@ Package = "https://pypi.org/project/pyEQL"
|
|
|
38
38
|
|
|
39
39
|
[project.optional-dependencies]
|
|
40
40
|
testing = [
|
|
41
|
-
"setuptools",
|
|
42
|
-
"pre-commit",
|
|
43
|
-
"pytest",
|
|
44
|
-
"pytest-cov",
|
|
45
|
-
"pytest-xdist",
|
|
41
|
+
"setuptools>=68",
|
|
42
|
+
"pre-commit>=2",
|
|
43
|
+
"pytest>=7",
|
|
44
|
+
"pytest-cov>=2.11",
|
|
45
|
+
"pytest-xdist>2",
|
|
46
46
|
"black",
|
|
47
|
-
"mypy",
|
|
48
|
-
"ruff",
|
|
47
|
+
"mypy>1",
|
|
48
|
+
"ruff>0.0.100",
|
|
49
49
|
"tox<4",
|
|
50
50
|
]
|
|
51
51
|
docs = [
|
|
@@ -10,22 +10,22 @@ annotated-types==0.7.0
|
|
|
10
10
|
# via pydantic
|
|
11
11
|
appdirs==1.4.4
|
|
12
12
|
# via pint
|
|
13
|
-
attrs==
|
|
13
|
+
attrs==24.2.0
|
|
14
14
|
# via
|
|
15
15
|
# jsonlines
|
|
16
16
|
# jsonschema
|
|
17
17
|
# referencing
|
|
18
|
-
bcrypt==4.
|
|
18
|
+
bcrypt==4.2.0
|
|
19
19
|
# via paramiko
|
|
20
|
-
boto3==1.34.
|
|
20
|
+
boto3==1.34.158
|
|
21
21
|
# via maggma
|
|
22
|
-
botocore==1.34.
|
|
22
|
+
botocore==1.34.158
|
|
23
23
|
# via
|
|
24
24
|
# boto3
|
|
25
25
|
# s3transfer
|
|
26
26
|
certifi==2024.7.4
|
|
27
27
|
# via requests
|
|
28
|
-
cffi==1.
|
|
28
|
+
cffi==1.17.0
|
|
29
29
|
# via
|
|
30
30
|
# cryptography
|
|
31
31
|
# pynacl
|
|
@@ -33,7 +33,7 @@ charset-normalizer==3.3.2
|
|
|
33
33
|
# via requests
|
|
34
34
|
contourpy==1.2.1
|
|
35
35
|
# via matplotlib
|
|
36
|
-
cryptography==
|
|
36
|
+
cryptography==43.0.0
|
|
37
37
|
# via paramiko
|
|
38
38
|
cycler==0.12.1
|
|
39
39
|
# via matplotlib
|
|
@@ -67,13 +67,13 @@ kiwisolver==1.4.5
|
|
|
67
67
|
# via matplotlib
|
|
68
68
|
latexcodec==3.0.0
|
|
69
69
|
# via pybtex
|
|
70
|
-
maggma==0.69.
|
|
70
|
+
maggma==0.69.1
|
|
71
71
|
# via pyEQL (setup.py)
|
|
72
|
-
matplotlib==3.9.1
|
|
72
|
+
matplotlib==3.9.1.post1
|
|
73
73
|
# via pymatgen
|
|
74
74
|
mongomock==4.1.2
|
|
75
75
|
# via maggma
|
|
76
|
-
monty==2024.
|
|
76
|
+
monty==2024.7.30
|
|
77
77
|
# via
|
|
78
78
|
# maggma
|
|
79
79
|
# pyEQL (setup.py)
|
|
@@ -95,7 +95,7 @@ numpy==1.26.4
|
|
|
95
95
|
# pymatgen
|
|
96
96
|
# scipy
|
|
97
97
|
# spglib
|
|
98
|
-
orjson==3.10.
|
|
98
|
+
orjson==3.10.7
|
|
99
99
|
# via maggma
|
|
100
100
|
packaging==24.1
|
|
101
101
|
# via
|
|
@@ -116,9 +116,9 @@ phreeqpython==1.5.2
|
|
|
116
116
|
# via pyEQL (setup.py)
|
|
117
117
|
pillow==10.4.0
|
|
118
118
|
# via matplotlib
|
|
119
|
-
pint==0.24.
|
|
119
|
+
pint==0.24.3
|
|
120
120
|
# via pyEQL (setup.py)
|
|
121
|
-
plotly==5.
|
|
121
|
+
plotly==5.23.0
|
|
122
122
|
# via pymatgen
|
|
123
123
|
pybtex==0.24.0
|
|
124
124
|
# via pymatgen
|
|
@@ -130,9 +130,9 @@ pydantic==2.8.2
|
|
|
130
130
|
# pydantic-settings
|
|
131
131
|
pydantic-core==2.20.1
|
|
132
132
|
# via pydantic
|
|
133
|
-
pydantic-settings==2.
|
|
133
|
+
pydantic-settings==2.4.0
|
|
134
134
|
# via maggma
|
|
135
|
-
pydash==8.0.
|
|
135
|
+
pydash==8.0.3
|
|
136
136
|
# via maggma
|
|
137
137
|
pymatgen==2024.5.1
|
|
138
138
|
# via pyEQL (setup.py)
|
|
@@ -154,9 +154,9 @@ python-dotenv==1.0.1
|
|
|
154
154
|
# via pydantic-settings
|
|
155
155
|
pytz==2024.1
|
|
156
156
|
# via pandas
|
|
157
|
-
pyyaml==6.0.
|
|
157
|
+
pyyaml==6.0.2
|
|
158
158
|
# via pybtex
|
|
159
|
-
pyzmq==26.0
|
|
159
|
+
pyzmq==26.1.0
|
|
160
160
|
# via maggma
|
|
161
161
|
referencing==0.35.1
|
|
162
162
|
# via
|
|
@@ -164,7 +164,7 @@ referencing==0.35.1
|
|
|
164
164
|
# jsonschema-specifications
|
|
165
165
|
requests==2.32.3
|
|
166
166
|
# via pymatgen
|
|
167
|
-
rpds-py==0.
|
|
167
|
+
rpds-py==0.20.0
|
|
168
168
|
# via
|
|
169
169
|
# jsonschema
|
|
170
170
|
# referencing
|
|
@@ -188,17 +188,17 @@ six==1.16.0
|
|
|
188
188
|
# via
|
|
189
189
|
# pybtex
|
|
190
190
|
# python-dateutil
|
|
191
|
-
spglib==2.
|
|
191
|
+
spglib==2.5.0
|
|
192
192
|
# via pymatgen
|
|
193
193
|
sshtunnel==0.4.0
|
|
194
194
|
# via maggma
|
|
195
|
-
sympy==1.13.
|
|
195
|
+
sympy==1.13.1
|
|
196
196
|
# via pymatgen
|
|
197
197
|
tabulate==0.9.0
|
|
198
198
|
# via pymatgen
|
|
199
|
-
tenacity==
|
|
199
|
+
tenacity==9.0.0
|
|
200
200
|
# via plotly
|
|
201
|
-
tqdm==4.66.
|
|
201
|
+
tqdm==4.66.5
|
|
202
202
|
# via
|
|
203
203
|
# maggma
|
|
204
204
|
# pymatgen
|
|
@@ -12,26 +12,26 @@ annotated-types==0.7.0
|
|
|
12
12
|
# via pydantic
|
|
13
13
|
appdirs==1.4.4
|
|
14
14
|
# via pint
|
|
15
|
-
attrs==
|
|
15
|
+
attrs==24.2.0
|
|
16
16
|
# via
|
|
17
17
|
# jsonlines
|
|
18
18
|
# jsonschema
|
|
19
19
|
# referencing
|
|
20
|
-
babel==2.
|
|
20
|
+
babel==2.16.0
|
|
21
21
|
# via sphinx
|
|
22
|
-
bcrypt==4.
|
|
22
|
+
bcrypt==4.2.0
|
|
23
23
|
# via paramiko
|
|
24
|
-
black==24.
|
|
24
|
+
black==24.8.0
|
|
25
25
|
# via pyEQL (setup.py)
|
|
26
|
-
boto3==1.34.
|
|
26
|
+
boto3==1.34.158
|
|
27
27
|
# via maggma
|
|
28
|
-
botocore==1.34.
|
|
28
|
+
botocore==1.34.158
|
|
29
29
|
# via
|
|
30
30
|
# boto3
|
|
31
31
|
# s3transfer
|
|
32
32
|
certifi==2024.7.4
|
|
33
33
|
# via requests
|
|
34
|
-
cffi==1.
|
|
34
|
+
cffi==1.17.0
|
|
35
35
|
# via
|
|
36
36
|
# cryptography
|
|
37
37
|
# pynacl
|
|
@@ -43,9 +43,9 @@ click==8.1.7
|
|
|
43
43
|
# via black
|
|
44
44
|
contourpy==1.2.1
|
|
45
45
|
# via matplotlib
|
|
46
|
-
coverage[toml]==7.
|
|
46
|
+
coverage[toml]==7.6.1
|
|
47
47
|
# via pytest-cov
|
|
48
|
-
cryptography==
|
|
48
|
+
cryptography==43.0.0
|
|
49
49
|
# via paramiko
|
|
50
50
|
cycler==0.12.1
|
|
51
51
|
# via matplotlib
|
|
@@ -60,7 +60,7 @@ docutils==0.20.1
|
|
|
60
60
|
# myst-parser
|
|
61
61
|
# sphinx
|
|
62
62
|
# sphinx-rtd-theme
|
|
63
|
-
exceptiongroup==1.2.
|
|
63
|
+
exceptiongroup==1.2.2
|
|
64
64
|
# via pytest
|
|
65
65
|
execnet==2.1.1
|
|
66
66
|
# via pytest-xdist
|
|
@@ -106,7 +106,7 @@ latexcodec==3.0.0
|
|
|
106
106
|
# via pybtex
|
|
107
107
|
linkify-it-py==2.0.3
|
|
108
108
|
# via myst-parser
|
|
109
|
-
maggma==0.69.
|
|
109
|
+
maggma==0.69.1
|
|
110
110
|
# via pyEQL (setup.py)
|
|
111
111
|
markdown-it-py==3.0.0
|
|
112
112
|
# via
|
|
@@ -115,7 +115,7 @@ markdown-it-py==3.0.0
|
|
|
115
115
|
# rich
|
|
116
116
|
markupsafe==2.1.5
|
|
117
117
|
# via jinja2
|
|
118
|
-
matplotlib==3.9.1
|
|
118
|
+
matplotlib==3.9.1.post1
|
|
119
119
|
# via pymatgen
|
|
120
120
|
mdit-py-plugins==0.4.1
|
|
121
121
|
# via myst-parser
|
|
@@ -123,7 +123,7 @@ mdurl==0.1.2
|
|
|
123
123
|
# via markdown-it-py
|
|
124
124
|
mongomock==4.1.2
|
|
125
125
|
# via maggma
|
|
126
|
-
monty==2024.
|
|
126
|
+
monty==2024.7.30
|
|
127
127
|
# via
|
|
128
128
|
# maggma
|
|
129
129
|
# pyEQL (setup.py)
|
|
@@ -132,13 +132,13 @@ mpmath==1.3.0
|
|
|
132
132
|
# via sympy
|
|
133
133
|
msgpack==1.0.8
|
|
134
134
|
# via maggma
|
|
135
|
-
mypy==1.
|
|
135
|
+
mypy==1.11.1
|
|
136
136
|
# via pyEQL (setup.py)
|
|
137
137
|
mypy-extensions==1.0.0
|
|
138
138
|
# via
|
|
139
139
|
# black
|
|
140
140
|
# mypy
|
|
141
|
-
myst-parser[linkify]==
|
|
141
|
+
myst-parser[linkify]==4.0.0
|
|
142
142
|
# via pyEQL (setup.py)
|
|
143
143
|
networkx==3.3
|
|
144
144
|
# via pymatgen
|
|
@@ -155,7 +155,7 @@ numpy==1.26.4
|
|
|
155
155
|
# pymatgen
|
|
156
156
|
# scipy
|
|
157
157
|
# spglib
|
|
158
|
-
orjson==3.10.
|
|
158
|
+
orjson==3.10.7
|
|
159
159
|
# via maggma
|
|
160
160
|
packaging==24.1
|
|
161
161
|
# via
|
|
@@ -182,19 +182,19 @@ phreeqpython==1.5.2
|
|
|
182
182
|
# via pyEQL (setup.py)
|
|
183
183
|
pillow==10.4.0
|
|
184
184
|
# via matplotlib
|
|
185
|
-
pint==0.24.
|
|
185
|
+
pint==0.24.3
|
|
186
186
|
# via pyEQL (setup.py)
|
|
187
187
|
platformdirs==4.2.2
|
|
188
188
|
# via
|
|
189
189
|
# black
|
|
190
190
|
# virtualenv
|
|
191
|
-
plotly==5.
|
|
191
|
+
plotly==5.23.0
|
|
192
192
|
# via pymatgen
|
|
193
193
|
pluggy==1.5.0
|
|
194
194
|
# via
|
|
195
195
|
# pytest
|
|
196
196
|
# tox
|
|
197
|
-
pre-commit==3.
|
|
197
|
+
pre-commit==3.8.0
|
|
198
198
|
# via pyEQL (setup.py)
|
|
199
199
|
py==1.11.0
|
|
200
200
|
# via tox
|
|
@@ -208,9 +208,9 @@ pydantic==2.8.2
|
|
|
208
208
|
# pydantic-settings
|
|
209
209
|
pydantic-core==2.20.1
|
|
210
210
|
# via pydantic
|
|
211
|
-
pydantic-settings==2.
|
|
211
|
+
pydantic-settings==2.4.0
|
|
212
212
|
# via maggma
|
|
213
|
-
pydash==8.0.
|
|
213
|
+
pydash==8.0.3
|
|
214
214
|
# via maggma
|
|
215
215
|
pygments==2.18.0
|
|
216
216
|
# via
|
|
@@ -226,7 +226,7 @@ pyparsing==3.1.2
|
|
|
226
226
|
# via
|
|
227
227
|
# matplotlib
|
|
228
228
|
# periodictable
|
|
229
|
-
pytest==8.
|
|
229
|
+
pytest==8.3.2
|
|
230
230
|
# via
|
|
231
231
|
# pyEQL (setup.py)
|
|
232
232
|
# pytest-cov
|
|
@@ -245,12 +245,12 @@ python-dotenv==1.0.1
|
|
|
245
245
|
# via pydantic-settings
|
|
246
246
|
pytz==2024.1
|
|
247
247
|
# via pandas
|
|
248
|
-
pyyaml==6.0.
|
|
248
|
+
pyyaml==6.0.2
|
|
249
249
|
# via
|
|
250
250
|
# myst-parser
|
|
251
251
|
# pre-commit
|
|
252
252
|
# pybtex
|
|
253
|
-
pyzmq==26.0
|
|
253
|
+
pyzmq==26.1.0
|
|
254
254
|
# via maggma
|
|
255
255
|
referencing==0.35.1
|
|
256
256
|
# via
|
|
@@ -262,7 +262,7 @@ requests==2.32.3
|
|
|
262
262
|
# sphinx
|
|
263
263
|
rich==13.7.1
|
|
264
264
|
# via pyEQL (setup.py)
|
|
265
|
-
rpds-py==0.
|
|
265
|
+
rpds-py==0.20.0
|
|
266
266
|
# via
|
|
267
267
|
# jsonschema
|
|
268
268
|
# referencing
|
|
@@ -272,7 +272,7 @@ ruamel-yaml==0.18.6
|
|
|
272
272
|
# pymatgen
|
|
273
273
|
ruamel-yaml-clib==0.2.8
|
|
274
274
|
# via ruamel-yaml
|
|
275
|
-
ruff==0.5.
|
|
275
|
+
ruff==0.5.7
|
|
276
276
|
# via pyEQL (setup.py)
|
|
277
277
|
s3transfer==0.10.2
|
|
278
278
|
# via boto3
|
|
@@ -291,9 +291,9 @@ six==1.16.0
|
|
|
291
291
|
# tox
|
|
292
292
|
snowballstemmer==2.2.0
|
|
293
293
|
# via sphinx
|
|
294
|
-
spglib==2.
|
|
294
|
+
spglib==2.5.0
|
|
295
295
|
# via pymatgen
|
|
296
|
-
sphinx==7.
|
|
296
|
+
sphinx==7.4.7
|
|
297
297
|
# via
|
|
298
298
|
# myst-parser
|
|
299
299
|
# pyEQL (setup.py)
|
|
@@ -301,27 +301,27 @@ sphinx==7.3.7
|
|
|
301
301
|
# sphinxcontrib-jquery
|
|
302
302
|
sphinx-rtd-theme==2.0.0
|
|
303
303
|
# via pyEQL (setup.py)
|
|
304
|
-
sphinxcontrib-applehelp==
|
|
304
|
+
sphinxcontrib-applehelp==2.0.0
|
|
305
305
|
# via sphinx
|
|
306
|
-
sphinxcontrib-devhelp==
|
|
306
|
+
sphinxcontrib-devhelp==2.0.0
|
|
307
307
|
# via sphinx
|
|
308
|
-
sphinxcontrib-htmlhelp==2.0
|
|
308
|
+
sphinxcontrib-htmlhelp==2.1.0
|
|
309
309
|
# via sphinx
|
|
310
310
|
sphinxcontrib-jquery==4.1
|
|
311
311
|
# via sphinx-rtd-theme
|
|
312
312
|
sphinxcontrib-jsmath==1.0.1
|
|
313
313
|
# via sphinx
|
|
314
|
-
sphinxcontrib-qthelp==
|
|
314
|
+
sphinxcontrib-qthelp==2.0.0
|
|
315
315
|
# via sphinx
|
|
316
|
-
sphinxcontrib-serializinghtml==
|
|
316
|
+
sphinxcontrib-serializinghtml==2.0.0
|
|
317
317
|
# via sphinx
|
|
318
318
|
sshtunnel==0.4.0
|
|
319
319
|
# via maggma
|
|
320
|
-
sympy==1.13.
|
|
320
|
+
sympy==1.13.1
|
|
321
321
|
# via pymatgen
|
|
322
322
|
tabulate==0.9.0
|
|
323
323
|
# via pymatgen
|
|
324
|
-
tenacity==
|
|
324
|
+
tenacity==9.0.0
|
|
325
325
|
# via plotly
|
|
326
326
|
tomli==2.0.1
|
|
327
327
|
# via
|
|
@@ -333,7 +333,7 @@ tomli==2.0.1
|
|
|
333
333
|
# tox
|
|
334
334
|
tox==3.28.0
|
|
335
335
|
# via pyEQL (setup.py)
|
|
336
|
-
tqdm==4.66.
|
|
336
|
+
tqdm==4.66.5
|
|
337
337
|
# via
|
|
338
338
|
# maggma
|
|
339
339
|
# pymatgen
|