pyEQL 1.0.0__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.
Files changed (130) hide show
  1. {pyEQL-1.0.0 → pyeql-1.0.1}/.github/workflows/post-process.yml +1 -1
  2. {pyEQL-1.0.0 → pyeql-1.0.1}/.github/workflows/testing.yaml +1 -1
  3. {pyEQL-1.0.0 → pyeql-1.0.1}/CHANGELOG.md +17 -0
  4. pyeql-1.0.1/CITATION.cff +26 -0
  5. {pyEQL-1.0.0/src/pyEQL.egg-info → pyeql-1.0.1}/PKG-INFO +5 -4
  6. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/changelog.md +17 -0
  7. {pyEQL-1.0.0 → pyeql-1.0.1}/pyproject.toml +1 -0
  8. {pyEQL-1.0.0 → pyeql-1.0.1}/requirements/macos-latest_py3.10.txt +128 -65
  9. {pyEQL-1.0.0 → pyeql-1.0.1}/requirements/macos-latest_py3.10_extras.txt +138 -82
  10. {pyEQL-1.0.0 → pyeql-1.0.1}/requirements/macos-latest_py3.11.txt +127 -64
  11. {pyEQL-1.0.0 → pyeql-1.0.1}/requirements/macos-latest_py3.11_extras.txt +136 -81
  12. {pyEQL-1.0.0 → pyeql-1.0.1}/requirements/macos-latest_py3.12.txt +127 -64
  13. {pyEQL-1.0.0 → pyeql-1.0.1}/requirements/macos-latest_py3.12_extras.txt +136 -81
  14. {pyEQL-1.0.0 → pyeql-1.0.1}/requirements/macos-latest_py3.9.txt +123 -66
  15. {pyEQL-1.0.0 → pyeql-1.0.1}/requirements/macos-latest_py3.9_extras.txt +133 -83
  16. {pyEQL-1.0.0 → pyeql-1.0.1}/requirements/ubuntu-latest_py3.10.txt +128 -65
  17. {pyEQL-1.0.0 → pyeql-1.0.1}/requirements/ubuntu-latest_py3.10_extras.txt +138 -82
  18. {pyEQL-1.0.0 → pyeql-1.0.1}/requirements/ubuntu-latest_py3.11.txt +127 -64
  19. {pyEQL-1.0.0 → pyeql-1.0.1}/requirements/ubuntu-latest_py3.11_extras.txt +136 -81
  20. {pyEQL-1.0.0 → pyeql-1.0.1}/requirements/ubuntu-latest_py3.12.txt +127 -64
  21. {pyEQL-1.0.0 → pyeql-1.0.1}/requirements/ubuntu-latest_py3.12_extras.txt +136 -81
  22. {pyEQL-1.0.0 → pyeql-1.0.1}/requirements/ubuntu-latest_py3.9.txt +123 -66
  23. {pyEQL-1.0.0 → pyeql-1.0.1}/requirements/ubuntu-latest_py3.9_extras.txt +133 -83
  24. {pyEQL-1.0.0 → pyeql-1.0.1}/requirements/windows-latest_py3.10.txt +127 -65
  25. {pyEQL-1.0.0 → pyeql-1.0.1}/requirements/windows-latest_py3.10_extras.txt +137 -82
  26. {pyEQL-1.0.0 → pyeql-1.0.1}/requirements/windows-latest_py3.11.txt +126 -64
  27. {pyEQL-1.0.0 → pyeql-1.0.1}/requirements/windows-latest_py3.11_extras.txt +135 -81
  28. {pyEQL-1.0.0 → pyeql-1.0.1}/requirements/windows-latest_py3.12.txt +126 -64
  29. {pyEQL-1.0.0 → pyeql-1.0.1}/requirements/windows-latest_py3.12_extras.txt +135 -81
  30. {pyEQL-1.0.0 → pyeql-1.0.1}/requirements/windows-latest_py3.9.txt +122 -66
  31. {pyEQL-1.0.0 → pyeql-1.0.1}/requirements/windows-latest_py3.9_extras.txt +132 -83
  32. {pyEQL-1.0.0 → pyeql-1.0.1}/setup.cfg +4 -3
  33. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL/__init__.py +1 -1
  34. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL/activity_correction.py +15 -11
  35. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL/engines.py +27 -11
  36. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL/equilibrium.py +6 -5
  37. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL/functions.py +5 -4
  38. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL/solution.py +13 -12
  39. {pyEQL-1.0.0 → pyeql-1.0.1/src/pyEQL.egg-info}/PKG-INFO +5 -4
  40. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL.egg-info/SOURCES.txt +1 -0
  41. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL.egg-info/requires.txt +4 -3
  42. {pyEQL-1.0.0 → pyeql-1.0.1}/tests/test_phreeqc.py +12 -4
  43. {pyEQL-1.0.0 → pyeql-1.0.1}/.coveragerc +0 -0
  44. {pyEQL-1.0.0 → pyeql-1.0.1}/.gitattributes +0 -0
  45. {pyEQL-1.0.0 → pyeql-1.0.1}/.github/dependabot.yml +0 -0
  46. {pyEQL-1.0.0 → pyeql-1.0.1}/.github/pull_request_template.md +0 -0
  47. {pyEQL-1.0.0 → pyeql-1.0.1}/.github/release.yml +0 -0
  48. {pyEQL-1.0.0 → pyeql-1.0.1}/.github/workflows/release.yml +0 -0
  49. {pyEQL-1.0.0 → pyeql-1.0.1}/.github/workflows/upgrade_dependencies.yml +0 -0
  50. {pyEQL-1.0.0 → pyeql-1.0.1}/.gitignore +0 -0
  51. {pyEQL-1.0.0 → pyeql-1.0.1}/.pre-commit-config.yaml +0 -0
  52. {pyEQL-1.0.0 → pyeql-1.0.1}/.readthedocs.yml +0 -0
  53. {pyEQL-1.0.0 → pyeql-1.0.1}/.zenodo.json +0 -0
  54. {pyEQL-1.0.0 → pyeql-1.0.1}/AUTHORS.md +0 -0
  55. {pyEQL-1.0.0 → pyeql-1.0.1}/COPYING +0 -0
  56. {pyEQL-1.0.0 → pyeql-1.0.1}/LICENSE.txt +0 -0
  57. {pyEQL-1.0.0 → pyeql-1.0.1}/MANIFEST.in +0 -0
  58. {pyEQL-1.0.0 → pyeql-1.0.1}/README.md +0 -0
  59. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/Makefile +0 -0
  60. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/_static/.gitignore +0 -0
  61. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/amounts.md +0 -0
  62. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/arithmetic.md +0 -0
  63. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/authors.md +0 -0
  64. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/chemistry.md +0 -0
  65. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/class_solution.md +0 -0
  66. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/conf.py +0 -0
  67. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/contributing.md +0 -0
  68. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/creating.md +0 -0
  69. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/database.md +0 -0
  70. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/engines.md +0 -0
  71. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/examples/.ipynb_checkpoints/pyEQL_demo_1-checkpoint.ipynb +0 -0
  72. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/examples/.ipynb_checkpoints/pyeql_demo-checkpoint.ipynb +0 -0
  73. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/examples/.ipynb_checkpoints/pyeql_tutorial_database-checkpoint.ipynb +0 -0
  74. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/examples/.ipynb_checkpoints/pyeql_tutorial_osmotic_pressure-checkpoint.ipynb +0 -0
  75. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/examples/.ipynb_checkpoints/speedup-checkpoint.ipynb +0 -0
  76. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/examples/pyEQL_demo_1.ipynb +0 -0
  77. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/examples/pyeql_demo.ipynb +0 -0
  78. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/examples/pyeql_tutorial_database.ipynb +0 -0
  79. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/examples/pyeql_tutorial_osmotic_pressure.ipynb +0 -0
  80. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/examples/speedup.ipynb +0 -0
  81. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/index.md +0 -0
  82. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/installation.md +0 -0
  83. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/internal.md +0 -0
  84. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/license.md +0 -0
  85. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/mixing.md +0 -0
  86. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/quickstart.md +0 -0
  87. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/readme.md +0 -0
  88. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/requirements.txt +0 -0
  89. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/serialization.md +0 -0
  90. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/tutorials.md +0 -0
  91. {pyEQL-1.0.0 → pyeql-1.0.1}/docs/units.md +0 -0
  92. {pyEQL-1.0.0 → pyeql-1.0.1}/pyeql-logo.png +0 -0
  93. {pyEQL-1.0.0 → pyeql-1.0.1}/pyeql-logo.svg +0 -0
  94. {pyEQL-1.0.0 → pyeql-1.0.1}/setup.py +0 -0
  95. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL/database/geothermal.dat +0 -0
  96. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL/database/llnl.dat +0 -0
  97. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL/database/phreeqc_license.txt +0 -0
  98. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL/database/pyeql_db.json +0 -0
  99. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL/pint_custom_units.txt +0 -0
  100. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL/presets/Ringers lactate.yaml +0 -0
  101. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL/presets/normal saline.yaml +0 -0
  102. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL/presets/rainwater.yaml +0 -0
  103. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL/presets/seawater.yaml +0 -0
  104. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL/presets/urine.yaml +0 -0
  105. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL/presets/wastewater.yaml +0 -0
  106. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL/salt_ion_match.py +0 -0
  107. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL/solute.py +0 -0
  108. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL/utils.py +0 -0
  109. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL.egg-info/dependency_links.txt +0 -0
  110. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL.egg-info/not-zip-safe +0 -0
  111. {pyEQL-1.0.0 → pyeql-1.0.1}/src/pyEQL.egg-info/top_level.txt +0 -0
  112. {pyEQL-1.0.0 → pyeql-1.0.1}/tests/conftest.py +0 -0
  113. {pyEQL-1.0.0 → pyeql-1.0.1}/tests/test_activity.py +0 -0
  114. {pyEQL-1.0.0 → pyeql-1.0.1}/tests/test_bulk_properties.py +0 -0
  115. {pyEQL-1.0.0 → pyeql-1.0.1}/tests/test_debye_length.py +0 -0
  116. {pyEQL-1.0.0 → pyeql-1.0.1}/tests/test_density.py +0 -0
  117. {pyEQL-1.0.0 → pyeql-1.0.1}/tests/test_dielectric.py +0 -0
  118. {pyEQL-1.0.0 → pyeql-1.0.1}/tests/test_effective_pitzer.py +0 -0
  119. {pyEQL-1.0.0 → pyeql-1.0.1}/tests/test_equilibrium.py +0 -0
  120. {pyEQL-1.0.0 → pyeql-1.0.1}/tests/test_functions.py +0 -0
  121. {pyEQL-1.0.0 → pyeql-1.0.1}/tests/test_logging.py +0 -0
  122. {pyEQL-1.0.0 → pyeql-1.0.1}/tests/test_mixed_electrolyte_activity.py +0 -0
  123. {pyEQL-1.0.0 → pyeql-1.0.1}/tests/test_osmotic_coeff.py +0 -0
  124. {pyEQL-1.0.0 → pyeql-1.0.1}/tests/test_salt_matching.py +0 -0
  125. {pyEQL-1.0.0 → pyeql-1.0.1}/tests/test_solute.py +0 -0
  126. {pyEQL-1.0.0 → pyeql-1.0.1}/tests/test_solute_properties.py +0 -0
  127. {pyEQL-1.0.0 → pyeql-1.0.1}/tests/test_solution.py +0 -0
  128. {pyEQL-1.0.0 → pyeql-1.0.1}/tests/test_utils.py +0 -0
  129. {pyEQL-1.0.0 → pyeql-1.0.1}/tests/test_volume_concentration.py +0 -0
  130. {pyEQL-1.0.0 → pyeql-1.0.1}/tox.ini +0 -0
@@ -55,7 +55,7 @@ jobs:
55
55
  pip install -e ".[testing]"
56
56
  - name: Run tests
57
57
  run: |
58
- pytest --cov=src/pyEQL --cov-report=xml
58
+ pytest -n auto --cov=src/pyEQL --cov-report=xml
59
59
  - uses: codecov/codecov-action@v4
60
60
  with:
61
61
  token: ${{ secrets.CODECOV_TOKEN }}
@@ -64,7 +64,7 @@ jobs:
64
64
  pip install -e ".[testing]"
65
65
  - name: Run tests
66
66
  run: |
67
- pytest --cov=src/pyEQL --cov-report=xml
67
+ pytest -n auto --cov=src/pyEQL --cov-report=xml
68
68
  - uses: codecov/codecov-action@v4
69
69
  with:
70
70
  token: ${{ secrets.CODECOV_TOKEN }}
@@ -5,6 +5,23 @@ 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.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
+
8
25
  ## [1.0.0] - 2024-03-17
9
26
 
10
27
  ### 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: 1.0.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>=2023.10.11
24
+ Requires-Dist: pymatgen==2024.5.1
25
25
  Requires-Dist: iapws
26
26
  Requires-Dist: monty
27
- Requires-Dist: maggma>=0.57.5
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"
@@ -5,6 +5,23 @@ 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.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
+
8
25
  ## [1.0.0] - 2024-03-17
9
26
 
10
27
  ### Added
@@ -47,6 +47,7 @@ select = [
47
47
  "UP", # pyupgrade
48
48
  "W", # pycodestyle warning
49
49
  "YTT", # flake8-2020
50
+ "NPY201", # Numpy 2.0 migration
50
51
  ]
51
52
  ignore = [
52
53
  "B008", # Do not perform function call `unit` in argument defaults
@@ -6,26 +6,34 @@
6
6
  #
7
7
  aioitertools==0.11.0
8
8
  # via maggma
9
- annotated-types==0.6.0
9
+ annotated-types==0.7.0
10
10
  # via pydantic
11
- anyio==4.3.0
12
- # via starlette
11
+ anyio==4.4.0
12
+ # via
13
+ # httpx
14
+ # starlette
15
+ # watchfiles
16
+ appdirs==1.4.4
17
+ # via pint
13
18
  attrs==23.2.0
14
19
  # via
15
20
  # jsonschema
16
21
  # referencing
17
- bcrypt==4.1.2
22
+ bcrypt==4.1.3
18
23
  # via paramiko
19
- blinker==1.7.0
24
+ blinker==1.8.2
20
25
  # via flask
21
- boto3==1.34.59
26
+ boto3==1.34.122
22
27
  # via maggma
23
- botocore==1.34.59
28
+ botocore==1.34.122
24
29
  # via
25
30
  # boto3
26
31
  # s3transfer
27
- certifi==2024.2.2
28
- # via requests
32
+ certifi==2024.6.2
33
+ # via
34
+ # httpcore
35
+ # httpx
36
+ # requests
29
37
  cffi==1.16.0
30
38
  # via
31
39
  # cryptography
@@ -36,46 +44,66 @@ click==8.1.7
36
44
  # via
37
45
  # flask
38
46
  # mongogrant
47
+ # typer
39
48
  # uvicorn
40
- contourpy==1.2.0
49
+ contourpy==1.2.1
41
50
  # via matplotlib
42
- cryptography==42.0.5
51
+ cryptography==42.0.8
43
52
  # via paramiko
44
53
  cycler==0.12.1
45
54
  # via matplotlib
46
55
  dnspython==2.6.1
47
56
  # via
57
+ # email-validator
48
58
  # maggma
49
59
  # pymongo
50
- exceptiongroup==1.2.0
60
+ email-validator==2.1.1
61
+ # via fastapi
62
+ exceptiongroup==1.2.1
51
63
  # via anyio
52
- fastapi==0.110.0
64
+ fastapi==0.111.0
53
65
  # via maggma
54
- flask==3.0.2
66
+ fastapi-cli==0.0.4
67
+ # via fastapi
68
+ flask==3.0.3
55
69
  # via mongogrant
56
- fonttools==4.49.0
70
+ flexcache==0.3
71
+ # via pint
72
+ flexparser==0.3.1
73
+ # via pint
74
+ fonttools==4.53.0
57
75
  # via matplotlib
58
- future==1.0.0
59
- # via uncertainties
60
76
  h11==0.14.0
77
+ # via
78
+ # httpcore
79
+ # uvicorn
80
+ httpcore==1.0.5
81
+ # via httpx
82
+ httptools==0.6.1
61
83
  # via uvicorn
62
- iapws==1.5.3
84
+ httpx==0.27.0
85
+ # via fastapi
86
+ iapws==1.5.4
63
87
  # via pyEQL (setup.py)
64
- idna==3.6
88
+ idna==3.7
65
89
  # via
66
90
  # anyio
91
+ # email-validator
92
+ # httpx
67
93
  # requests
68
- itsdangerous==2.1.2
69
- # via flask
70
- jinja2==3.1.3
94
+ itsdangerous==2.2.0
71
95
  # via flask
96
+ jinja2==3.1.4
97
+ # via
98
+ # fastapi
99
+ # flask
72
100
  jmespath==1.0.1
73
101
  # via
74
102
  # boto3
75
103
  # botocore
76
- joblib==1.3.2
104
+ joblib==1.4.2
77
105
  # via pymatgen
78
- jsonschema==4.21.1
106
+ jsonschema==4.22.0
79
107
  # via maggma
80
108
  jsonschema-specifications==2023.12.1
81
109
  # via jsonschema
@@ -83,19 +111,23 @@ kiwisolver==1.4.5
83
111
  # via matplotlib
84
112
  latexcodec==3.0.0
85
113
  # via pybtex
86
- maggma==0.63.4
114
+ maggma==0.67.0
87
115
  # via pyEQL (setup.py)
116
+ markdown-it-py==3.0.0
117
+ # via rich
88
118
  markupsafe==2.1.5
89
119
  # via
90
120
  # jinja2
91
121
  # werkzeug
92
- matplotlib==3.8.3
122
+ matplotlib==3.9.0
93
123
  # via pymatgen
124
+ mdurl==0.1.2
125
+ # via markdown-it-py
94
126
  mongogrant==0.3.3
95
127
  # via maggma
96
128
  mongomock==4.1.2
97
129
  # via maggma
98
- monty==2024.2.26
130
+ monty==2024.5.24
99
131
  # via
100
132
  # maggma
101
133
  # pyEQL (setup.py)
@@ -104,7 +136,7 @@ mpmath==1.3.0
104
136
  # via sympy
105
137
  msgpack==1.0.8
106
138
  # via maggma
107
- networkx==3.2.1
139
+ networkx==3.3
108
140
  # via pymatgen
109
141
  numpy==1.26.4
110
142
  # via
@@ -117,47 +149,51 @@ numpy==1.26.4
117
149
  # pymatgen
118
150
  # scipy
119
151
  # spglib
120
- orjson==3.9.15
121
- # via maggma
122
- packaging==23.2
152
+ orjson==3.10.3
153
+ # via
154
+ # fastapi
155
+ # maggma
156
+ packaging==24.1
123
157
  # via
124
158
  # matplotlib
125
159
  # mongomock
126
160
  # plotly
127
161
  palettable==3.3.3
128
162
  # via pymatgen
129
- pandas==2.2.1
163
+ pandas==2.2.2
130
164
  # via pymatgen
131
165
  paramiko==3.4.0
132
166
  # via sshtunnel
133
- periodictable==1.6.1
167
+ periodictable==1.7.0
134
168
  # via phreeqpython
135
- phreeqpython==1.5.0
169
+ phreeqpython==1.5.2
136
170
  # via pyEQL (setup.py)
137
- pillow==10.2.0
171
+ pillow==10.3.0
138
172
  # via matplotlib
139
- pint==0.23
173
+ pint==0.24
140
174
  # via pyEQL (setup.py)
141
- plotly==5.19.0
175
+ plotly==5.22.0
142
176
  # via pymatgen
143
177
  pybtex==0.24.0
144
178
  # via pymatgen
145
- pycparser==2.21
179
+ pycparser==2.22
146
180
  # via cffi
147
- pydantic==2.6.3
181
+ pydantic==2.7.3
148
182
  # via
149
183
  # fastapi
150
184
  # maggma
151
185
  # pydantic-settings
152
- pydantic-core==2.16.3
186
+ pydantic-core==2.18.4
153
187
  # via pydantic
154
- pydantic-settings==2.2.1
188
+ pydantic-settings==2.3.1
155
189
  # via maggma
156
- pydash==7.0.7
190
+ pydash==8.0.1
157
191
  # via maggma
158
- pymatgen==2024.3.1
192
+ pygments==2.18.0
193
+ # via rich
194
+ pymatgen==2024.6.4
159
195
  # via pyEQL (setup.py)
160
- pymongo==4.6.2
196
+ pymongo==4.7.3
161
197
  # via
162
198
  # maggma
163
199
  # mongogrant
@@ -174,34 +210,42 @@ python-dateutil==2.9.0.post0
174
210
  # matplotlib
175
211
  # pandas
176
212
  python-dotenv==1.0.1
177
- # via pydantic-settings
213
+ # via
214
+ # pydantic-settings
215
+ # uvicorn
216
+ python-multipart==0.0.9
217
+ # via fastapi
178
218
  pytz==2024.1
179
219
  # via pandas
180
220
  pyyaml==6.0.1
181
- # via pybtex
182
- pyzmq==25.1.2
221
+ # via
222
+ # pybtex
223
+ # uvicorn
224
+ pyzmq==26.0.3
183
225
  # via maggma
184
- referencing==0.33.0
226
+ referencing==0.35.1
185
227
  # via
186
228
  # jsonschema
187
229
  # jsonschema-specifications
188
- requests==2.31.0
230
+ requests==2.32.3
189
231
  # via
190
232
  # mongogrant
191
233
  # pymatgen
192
- rpds-py==0.18.0
234
+ rich==13.7.1
235
+ # via typer
236
+ rpds-py==0.18.1
193
237
  # via
194
238
  # jsonschema
195
239
  # referencing
196
- ruamel-yaml==0.17.40
240
+ ruamel-yaml==0.18.6
197
241
  # via
198
242
  # maggma
199
243
  # pymatgen
200
244
  ruamel-yaml-clib==0.2.8
201
245
  # via ruamel-yaml
202
- s3transfer==0.10.0
246
+ s3transfer==0.10.1
203
247
  # via boto3
204
- scipy==1.12.0
248
+ scipy==1.13.1
205
249
  # via
206
250
  # iapws
207
251
  # phreeqpython
@@ -209,48 +253,67 @@ scipy==1.12.0
209
253
  # pymatgen
210
254
  sentinels==1.0.0
211
255
  # via mongomock
256
+ shellingham==1.5.4
257
+ # via typer
212
258
  six==1.16.0
213
259
  # via
214
260
  # pybtex
215
261
  # python-dateutil
216
262
  sniffio==1.3.1
217
- # via anyio
218
- spglib==2.3.1
263
+ # via
264
+ # anyio
265
+ # httpx
266
+ spglib==2.4.0
219
267
  # via pymatgen
220
268
  sshtunnel==0.4.0
221
269
  # via maggma
222
- starlette==0.36.3
270
+ starlette==0.37.2
223
271
  # via fastapi
224
- sympy==1.12
272
+ sympy==1.12.1
225
273
  # via pymatgen
226
274
  tabulate==0.9.0
227
275
  # via pymatgen
228
- tenacity==8.2.3
276
+ tenacity==8.3.0
229
277
  # via plotly
230
- tqdm==4.66.2
278
+ tqdm==4.66.4
231
279
  # via
232
280
  # maggma
233
281
  # pymatgen
234
- typing-extensions==4.10.0
282
+ typer==0.12.3
283
+ # via fastapi-cli
284
+ typing-extensions==4.12.2
235
285
  # via
236
286
  # anyio
237
287
  # fastapi
288
+ # flexcache
289
+ # flexparser
238
290
  # pint
239
291
  # pydantic
240
292
  # pydantic-core
241
293
  # pydash
294
+ # typer
242
295
  # uvicorn
243
296
  tzdata==2024.1
244
297
  # via pandas
245
- uncertainties==3.1.7
298
+ ujson==5.10.0
299
+ # via fastapi
300
+ uncertainties==3.2.1
246
301
  # via pymatgen
247
- urllib3==2.0.7
302
+ urllib3==2.2.1
248
303
  # via
249
304
  # botocore
250
305
  # requests
251
- uvicorn==0.28.0
252
- # via maggma
253
- werkzeug==3.0.1
306
+ uvicorn[standard]==0.30.1
307
+ # via
308
+ # fastapi
309
+ # maggma
310
+ uvloop==0.19.0
311
+ # via uvicorn
312
+ watchfiles==0.22.0
313
+ # via uvicorn
314
+ websockets==12.0
315
+ # via uvicorn
316
+ werkzeug==3.0.3
254
317
  # via flask
255
318
 
256
319
  # The following packages are considered to be unsafe in a requirements file: