pyEQL 0.15.1__tar.gz → 1.0.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-0.15.1 → pyeql-1.0.1}/.github/workflows/post-process.yml +1 -1
- {pyEQL-0.15.1 → pyeql-1.0.1}/.github/workflows/testing.yaml +1 -1
- {pyEQL-0.15.1 → pyeql-1.0.1}/.pre-commit-config.yaml +3 -1
- {pyEQL-0.15.1 → pyeql-1.0.1}/CHANGELOG.md +45 -2
- pyeql-1.0.1/CITATION.cff +26 -0
- {pyEQL-0.15.1/src/pyEQL.egg-info → pyeql-1.0.1}/PKG-INFO +9 -10
- {pyEQL-0.15.1 → pyeql-1.0.1}/README.md +4 -6
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/changelog.md +45 -2
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/examples/pyeql_demo.ipynb +96 -121
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/examples/pyeql_tutorial_database.ipynb +415 -400
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/examples/pyeql_tutorial_osmotic_pressure.ipynb +16 -23
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/index.md +1 -1
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/installation.md +3 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/readme.md +4 -6
- pyeql-1.0.1/pyeql-logo.png +0 -0
- pyeql-1.0.1/pyeql-logo.svg +915 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/pyproject.toml +1 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/requirements/macos-latest_py3.10.txt +128 -65
- {pyEQL-0.15.1 → pyeql-1.0.1}/requirements/macos-latest_py3.10_extras.txt +138 -82
- {pyEQL-0.15.1 → pyeql-1.0.1}/requirements/macos-latest_py3.11.txt +127 -64
- {pyEQL-0.15.1 → pyeql-1.0.1}/requirements/macos-latest_py3.11_extras.txt +136 -81
- {pyEQL-0.15.1 → pyeql-1.0.1}/requirements/macos-latest_py3.12.txt +127 -64
- {pyEQL-0.15.1 → pyeql-1.0.1}/requirements/macos-latest_py3.12_extras.txt +136 -81
- {pyEQL-0.15.1 → pyeql-1.0.1}/requirements/macos-latest_py3.9.txt +123 -66
- {pyEQL-0.15.1 → pyeql-1.0.1}/requirements/macos-latest_py3.9_extras.txt +133 -83
- {pyEQL-0.15.1 → pyeql-1.0.1}/requirements/ubuntu-latest_py3.10.txt +128 -65
- {pyEQL-0.15.1 → pyeql-1.0.1}/requirements/ubuntu-latest_py3.10_extras.txt +138 -82
- {pyEQL-0.15.1 → pyeql-1.0.1}/requirements/ubuntu-latest_py3.11.txt +127 -64
- {pyEQL-0.15.1 → pyeql-1.0.1}/requirements/ubuntu-latest_py3.11_extras.txt +136 -81
- {pyEQL-0.15.1 → pyeql-1.0.1}/requirements/ubuntu-latest_py3.12.txt +127 -64
- {pyEQL-0.15.1 → pyeql-1.0.1}/requirements/ubuntu-latest_py3.12_extras.txt +136 -81
- {pyEQL-0.15.1 → pyeql-1.0.1}/requirements/ubuntu-latest_py3.9.txt +123 -66
- {pyEQL-0.15.1 → pyeql-1.0.1}/requirements/ubuntu-latest_py3.9_extras.txt +133 -83
- {pyEQL-0.15.1 → pyeql-1.0.1}/requirements/windows-latest_py3.10.txt +127 -65
- {pyEQL-0.15.1 → pyeql-1.0.1}/requirements/windows-latest_py3.10_extras.txt +137 -82
- {pyEQL-0.15.1 → pyeql-1.0.1}/requirements/windows-latest_py3.11.txt +126 -64
- {pyEQL-0.15.1 → pyeql-1.0.1}/requirements/windows-latest_py3.11_extras.txt +135 -81
- {pyEQL-0.15.1 → pyeql-1.0.1}/requirements/windows-latest_py3.12.txt +126 -64
- {pyEQL-0.15.1 → pyeql-1.0.1}/requirements/windows-latest_py3.12_extras.txt +135 -81
- {pyEQL-0.15.1 → pyeql-1.0.1}/requirements/windows-latest_py3.9.txt +122 -66
- {pyEQL-0.15.1 → pyeql-1.0.1}/requirements/windows-latest_py3.9_extras.txt +132 -83
- {pyEQL-0.15.1 → pyeql-1.0.1}/setup.cfg +4 -3
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL/__init__.py +9 -1
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL/activity_correction.py +24 -21
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL/engines.py +56 -42
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL/equilibrium.py +18 -12
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL/functions.py +8 -161
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL/salt_ion_match.py +1 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL/solute.py +3 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL/solution.py +189 -763
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL/utils.py +3 -0
- {pyEQL-0.15.1 → pyeql-1.0.1/src/pyEQL.egg-info}/PKG-INFO +9 -10
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL.egg-info/SOURCES.txt +2 -1
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL.egg-info/requires.txt +4 -3
- pyeql-1.0.1/tests/test_logging.py +20 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/tests/test_phreeqc.py +16 -6
- pyEQL-0.15.1/pyeql-logo.png +0 -0
- pyEQL-0.15.1/pyeql-logo.svg +0 -740
- pyEQL-0.15.1/src/pyEQL/logging_system.py +0 -78
- {pyEQL-0.15.1 → pyeql-1.0.1}/.coveragerc +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/.gitattributes +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/.github/dependabot.yml +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/.github/pull_request_template.md +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/.github/release.yml +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/.github/workflows/release.yml +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/.github/workflows/upgrade_dependencies.yml +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/.gitignore +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/.readthedocs.yml +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/.zenodo.json +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/AUTHORS.md +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/COPYING +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/LICENSE.txt +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/MANIFEST.in +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/Makefile +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/_static/.gitignore +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/amounts.md +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/arithmetic.md +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/authors.md +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/chemistry.md +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/class_solution.md +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/conf.py +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/contributing.md +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/creating.md +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/database.md +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/engines.md +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/examples/.ipynb_checkpoints/pyEQL_demo_1-checkpoint.ipynb +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/examples/.ipynb_checkpoints/pyeql_demo-checkpoint.ipynb +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/examples/.ipynb_checkpoints/pyeql_tutorial_database-checkpoint.ipynb +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/examples/.ipynb_checkpoints/pyeql_tutorial_osmotic_pressure-checkpoint.ipynb +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/examples/.ipynb_checkpoints/speedup-checkpoint.ipynb +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/examples/pyEQL_demo_1.ipynb +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/examples/speedup.ipynb +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/internal.md +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/license.md +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/mixing.md +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/quickstart.md +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/requirements.txt +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/serialization.md +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/tutorials.md +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/docs/units.md +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/setup.py +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL/database/geothermal.dat +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL/database/llnl.dat +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL/database/phreeqc_license.txt +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL/database/pyeql_db.json +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL/pint_custom_units.txt +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL/presets/Ringers lactate.yaml +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL/presets/normal saline.yaml +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL/presets/rainwater.yaml +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL/presets/seawater.yaml +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL/presets/urine.yaml +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL/presets/wastewater.yaml +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL.egg-info/dependency_links.txt +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL.egg-info/not-zip-safe +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/src/pyEQL.egg-info/top_level.txt +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/tests/conftest.py +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/tests/test_activity.py +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/tests/test_bulk_properties.py +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/tests/test_debye_length.py +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/tests/test_density.py +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/tests/test_dielectric.py +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/tests/test_effective_pitzer.py +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/tests/test_equilibrium.py +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/tests/test_functions.py +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/tests/test_mixed_electrolyte_activity.py +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/tests/test_osmotic_coeff.py +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/tests/test_salt_matching.py +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/tests/test_solute.py +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/tests/test_solute_properties.py +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/tests/test_solution.py +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/tests/test_utils.py +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/tests/test_volume_concentration.py +0 -0
- {pyEQL-0.15.1 → pyeql-1.0.1}/tox.ini +0 -0
|
@@ -27,7 +27,7 @@ repos:
|
|
|
27
27
|
hooks:
|
|
28
28
|
- id: codespell
|
|
29
29
|
stages: [commit, commit-msg]
|
|
30
|
-
exclude_types: [html]
|
|
30
|
+
exclude_types: [html, svg]
|
|
31
31
|
additional_dependencies: [tomli] # needed to read pyproject.toml below py3.11
|
|
32
32
|
|
|
33
33
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
@@ -38,7 +38,9 @@ repos:
|
|
|
38
38
|
- id: destroyed-symlinks
|
|
39
39
|
- id: end-of-file-fixer
|
|
40
40
|
- id: mixed-line-ending
|
|
41
|
+
exclude_types: [svg]
|
|
41
42
|
- id: trailing-whitespace
|
|
43
|
+
exclude_types: [svg]
|
|
42
44
|
|
|
43
45
|
- repo: https://github.com/pre-commit/mirrors-prettier
|
|
44
46
|
rev: v4.0.0-alpha.8
|
|
@@ -5,7 +5,51 @@ 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
|
-
##
|
|
8
|
+
## [1.0.1] - 2024-06-17
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Added `NPY201` ruleset to `ruff` configuration to check support for `numpy` 2.0
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
- `NativeEOS` and `PHREEQCEOS` `equilibrate`: Fixed a charge balancing bug that cause repeated calls to `equlibrate` to
|
|
17
|
+
severely distort the pH and/or the composition. (#141)[https://github.com/KingsburyLab/pyEQL/issues/141]
|
|
18
|
+
- `UnicodeDecodeError` when trying to connect to ion database on non-English platforms ([#122](https://github.com/KingsburyLab/pyEQL/issues/122))
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- Replace `math` with `numpy` functions throughout. This mainly changed calls to `log` and `exp`.
|
|
23
|
+
- Docs: Fix missing close parentheses in docstring (@Andrew S. Rosen)
|
|
24
|
+
|
|
25
|
+
## [1.0.0] - 2024-03-17
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
|
|
29
|
+
- `Solution.__init__`: new keyword argument `log_level` allows user to control the verbosity of log messages by setting
|
|
30
|
+
the level (e.g., ERROR, WARNING, etc.) that will be shown in stdout.
|
|
31
|
+
- Docs: added a note about a workaround for Apple M1/M2 Macs proposed by @xiaoxiaozhu123
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
|
|
35
|
+
- `Solution.__init__`: The deprecated format for specifying solutes (e.g., `[["Na+", "0.5 mol/L]]`)
|
|
36
|
+
which previously only generated log warning message, now raises a `DeprecationWarning`. Use dict-style input (e.g.,
|
|
37
|
+
`{"Na+":"0.5 mol/L"}`) instead.
|
|
38
|
+
- New logo! Updated the `pyEQL` logo (for the first time in 9 years!) to address an obsolete font in the .svg
|
|
39
|
+
and modernize the design.
|
|
40
|
+
|
|
41
|
+
### Removed
|
|
42
|
+
|
|
43
|
+
- **BREAKING** All methods and functions (with the exception of `Solution.list_XXX` methods) previously marked with
|
|
44
|
+
deprecation warnings have been removed.
|
|
45
|
+
|
|
46
|
+
## [0.15.1] - 2024-03-13
|
|
47
|
+
|
|
48
|
+
### Fixed
|
|
49
|
+
|
|
50
|
+
- `Solution.get_total_amount`: Fixed an issue in which `ppm` units would fail.
|
|
51
|
+
|
|
52
|
+
## [0.15.0] - 2024-03-13
|
|
9
53
|
|
|
10
54
|
### Added
|
|
11
55
|
|
|
@@ -19,7 +63,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
19
63
|
|
|
20
64
|
### Fixed
|
|
21
65
|
|
|
22
|
-
- `Solution.get_total_amount`: Fixed an issue in which `ppm` units would fail.
|
|
23
66
|
- `Solution`: Fixed an issue in which repeated calls to `equilibrate` when using `NativeEOS` or `PHREEQCEOS` would
|
|
24
67
|
change the mass of the `Solution` slightly. This was attributed to the fact that `pyEQL` and `PHREEQC` use slightly
|
|
25
68
|
different molecular weights for water.
|
pyeql-1.0.1/CITATION.cff
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
cff-version: "1.2.0"
|
|
2
|
+
authors:
|
|
3
|
+
- family-names: Kingsbury
|
|
4
|
+
given-names: Ryan
|
|
5
|
+
orcid: "https://orcid.org/0000-0002-7168-3967"
|
|
6
|
+
doi: 10.5281/zenodo.8332915
|
|
7
|
+
message: If you use this software, please cite our article in the
|
|
8
|
+
Journal of Open Source Software.
|
|
9
|
+
preferred-citation:
|
|
10
|
+
authors:
|
|
11
|
+
- family-names: Kingsbury
|
|
12
|
+
given-names: Ryan
|
|
13
|
+
orcid: "https://orcid.org/0000-0002-7168-3967"
|
|
14
|
+
date-published: 2024-03-25
|
|
15
|
+
doi: 10.21105/joss.06295
|
|
16
|
+
issn: 2475-9066
|
|
17
|
+
issue: 95
|
|
18
|
+
journal: Journal of Open Source Software
|
|
19
|
+
publisher:
|
|
20
|
+
name: Open Journals
|
|
21
|
+
start: 6295
|
|
22
|
+
title: "pyEQL: A Python interface for water chemistry"
|
|
23
|
+
type: article
|
|
24
|
+
url: "https://joss.theoj.org/papers/10.21105/joss.06295"
|
|
25
|
+
volume: 9
|
|
26
|
+
title: "pyEQL: A Python interface for water chemistry"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pyEQL
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 1.0.1
|
|
4
4
|
Summary: Python tools for solution chemistry
|
|
5
5
|
Home-page: https://github.com/KingsburyLab/pyEQL
|
|
6
6
|
Author: Ryan Kingsbury
|
|
@@ -19,18 +19,19 @@ License-File: LICENSE.txt
|
|
|
19
19
|
License-File: COPYING
|
|
20
20
|
License-File: AUTHORS.md
|
|
21
21
|
Requires-Dist: pint>=0.19
|
|
22
|
-
Requires-Dist: numpy
|
|
22
|
+
Requires-Dist: numpy<2
|
|
23
23
|
Requires-Dist: scipy
|
|
24
|
-
Requires-Dist: pymatgen
|
|
24
|
+
Requires-Dist: pymatgen==2024.5.1
|
|
25
25
|
Requires-Dist: iapws
|
|
26
26
|
Requires-Dist: monty
|
|
27
|
-
Requires-Dist: maggma>=0.
|
|
27
|
+
Requires-Dist: maggma>=0.67.0
|
|
28
28
|
Requires-Dist: phreeqpython
|
|
29
29
|
Provides-Extra: testing
|
|
30
30
|
Requires-Dist: setuptools; extra == "testing"
|
|
31
31
|
Requires-Dist: pre-commit; extra == "testing"
|
|
32
32
|
Requires-Dist: pytest; extra == "testing"
|
|
33
33
|
Requires-Dist: pytest-cov; extra == "testing"
|
|
34
|
+
Requires-Dist: pytest-xdist; extra == "testing"
|
|
34
35
|
Requires-Dist: black; extra == "testing"
|
|
35
36
|
Requires-Dist: mypy; extra == "testing"
|
|
36
37
|
Requires-Dist: ruff; extra == "testing"
|
|
@@ -50,11 +51,9 @@ Requires-Dist: rich; extra == "full"
|
|
|
50
51
|
[](https://badge.fury.io/py/pyEQL)
|
|
51
52
|
[](https://joss.theoj.org/papers/bdd9e247ea9736a0fdbbd5fe12bef7a6)
|
|
52
53
|
|
|
54
|
+
<img src="pyeql-logo.png" alt="pyEQL logo" style="width:600px;"/>
|
|
53
55
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
A python interface for water chemistry
|
|
57
|
-
|
|
56
|
+
# A python interface for water chemistry
|
|
58
57
|
|
|
59
58
|
## Description
|
|
60
59
|
|
|
@@ -122,8 +121,8 @@ Detailed documentation is available at [https://pyeql.readthedocs.io/](https://p
|
|
|
122
121
|
- [maggma](https://materialsproject.github.io/maggma/) - interface for accessing the property database
|
|
123
122
|
- [scipy](https://www.scipy.org/) - for certain nonlinear equation solvers
|
|
124
123
|
|
|
125
|
-
<!-- pyscaffold-notes -->
|
|
126
|
-
|
|
124
|
+
## <!-- pyscaffold-notes -->
|
|
125
|
+
|
|
127
126
|
pyEQL is licensed under LGPL.
|
|
128
127
|
|
|
129
128
|
This project has been set up using PyScaffold 4.5. For details and usage
|
|
@@ -6,11 +6,9 @@
|
|
|
6
6
|
[](https://badge.fury.io/py/pyEQL)
|
|
7
7
|
[](https://joss.theoj.org/papers/bdd9e247ea9736a0fdbbd5fe12bef7a6)
|
|
8
8
|
|
|
9
|
+
<img src="pyeql-logo.png" alt="pyEQL logo" style="width:600px;"/>
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
A python interface for water chemistry
|
|
13
|
-
|
|
11
|
+
# A python interface for water chemistry
|
|
14
12
|
|
|
15
13
|
## Description
|
|
16
14
|
|
|
@@ -78,8 +76,8 @@ Detailed documentation is available at [https://pyeql.readthedocs.io/](https://p
|
|
|
78
76
|
- [maggma](https://materialsproject.github.io/maggma/) - interface for accessing the property database
|
|
79
77
|
- [scipy](https://www.scipy.org/) - for certain nonlinear equation solvers
|
|
80
78
|
|
|
81
|
-
<!-- pyscaffold-notes -->
|
|
82
|
-
|
|
79
|
+
## <!-- pyscaffold-notes -->
|
|
80
|
+
|
|
83
81
|
pyEQL is licensed under LGPL.
|
|
84
82
|
|
|
85
83
|
This project has been set up using PyScaffold 4.5. For details and usage
|
|
@@ -5,7 +5,51 @@ 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
|
-
##
|
|
8
|
+
## [1.0.1] - 2024-06-17
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Added `NPY201` ruleset to `ruff` configuration to check support for `numpy` 2.0
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
- `NativeEOS` and `PHREEQCEOS` `equilibrate`: Fixed a charge balancing bug that cause repeated calls to `equlibrate` to
|
|
17
|
+
severely distort the pH and/or the composition. (#141)[https://github.com/KingsburyLab/pyEQL/issues/141]
|
|
18
|
+
- `UnicodeDecodeError` when trying to connect to ion database on non-English platforms ([#122](https://github.com/KingsburyLab/pyEQL/issues/122))
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- Replace `math` with `numpy` functions throughout. This mainly changed calls to `log` and `exp`.
|
|
23
|
+
- Docs: Fix missing close parentheses in docstring (@Andrew S. Rosen)
|
|
24
|
+
|
|
25
|
+
## [1.0.0] - 2024-03-17
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
|
|
29
|
+
- `Solution.__init__`: new keyword argument `log_level` allows user to control the verbosity of log messages by setting
|
|
30
|
+
the level (e.g., ERROR, WARNING, etc.) that will be shown in stdout.
|
|
31
|
+
- Docs: added a note about a workaround for Apple M1/M2 Macs proposed by @xiaoxiaozhu123
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
|
|
35
|
+
- `Solution.__init__`: The deprecated format for specifying solutes (e.g., `[["Na+", "0.5 mol/L]]`)
|
|
36
|
+
which previously only generated log warning message, now raises a `DeprecationWarning`. Use dict-style input (e.g.,
|
|
37
|
+
`{"Na+":"0.5 mol/L"}`) instead.
|
|
38
|
+
- New logo! Updated the `pyEQL` logo (for the first time in 9 years!) to address an obsolete font in the .svg
|
|
39
|
+
and modernize the design.
|
|
40
|
+
|
|
41
|
+
### Removed
|
|
42
|
+
|
|
43
|
+
- **BREAKING** All methods and functions (with the exception of `Solution.list_XXX` methods) previously marked with
|
|
44
|
+
deprecation warnings have been removed.
|
|
45
|
+
|
|
46
|
+
## [0.15.1] - 2024-03-13
|
|
47
|
+
|
|
48
|
+
### Fixed
|
|
49
|
+
|
|
50
|
+
- `Solution.get_total_amount`: Fixed an issue in which `ppm` units would fail.
|
|
51
|
+
|
|
52
|
+
## [0.15.0] - 2024-03-13
|
|
9
53
|
|
|
10
54
|
### Added
|
|
11
55
|
|
|
@@ -19,7 +63,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
19
63
|
|
|
20
64
|
### Fixed
|
|
21
65
|
|
|
22
|
-
- `Solution.get_total_amount`: Fixed an issue in which `ppm` units would fail.
|
|
23
66
|
- `Solution`: Fixed an issue in which repeated calls to `equilibrate` when using `NativeEOS` or `PHREEQCEOS` would
|
|
24
67
|
change the mass of the `Solution` slightly. This was attributed to the fact that `pyEQL` and `PHREEQC` use slightly
|
|
25
68
|
different molecular weights for water.
|