pyEQL 1.3.1__tar.gz → 1.4.0rc9__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 (501) hide show
  1. pyeql-1.4.0rc9/.github/workflows/release.yml +94 -0
  2. pyeql-1.4.0rc9/.github/workflows/testing-pinned.yaml +40 -0
  3. {pyeql-1.3.1 → pyeql-1.4.0rc9}/.github/workflows/testing.yaml +32 -26
  4. {pyeql-1.3.1 → pyeql-1.4.0rc9}/.gitignore +3 -0
  5. {pyeql-1.3.1 → pyeql-1.4.0rc9}/.pre-commit-config.yaml +2 -7
  6. {pyeql-1.3.1 → pyeql-1.4.0rc9}/CHANGELOG.md +36 -0
  7. pyeql-1.4.0rc9/CMakeLists.txt +61 -0
  8. {pyeql-1.3.1/src/pyEQL.egg-info → pyeql-1.4.0rc9}/PKG-INFO +8 -9
  9. pyeql-1.4.0rc9/cibuildwheel.toml +10 -0
  10. pyeql-1.4.0rc9/docs/authors.md +1 -0
  11. pyeql-1.4.0rc9/docs/changelog.md +1 -0
  12. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/conf.py +2 -1
  13. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/examples/pyeql_tutorial_carbonate.ipynb +19 -19
  14. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/installation.md +1 -1
  15. {pyeql-1.3.1 → pyeql-1.4.0rc9}/pyproject.toml +10 -4
  16. pyeql-1.4.0rc9/requirements.txt +127 -0
  17. pyeql-1.4.0rc9/setup.cfg +8 -0
  18. {pyeql-1.3.1 → pyeql-1.4.0rc9}/src/pyEQL/__init__.py +5 -8
  19. {pyeql-1.3.1 → pyeql-1.4.0rc9}/src/pyEQL/activity_correction.py +1 -1
  20. {pyeql-1.3.1 → pyeql-1.4.0rc9}/src/pyEQL/engines.py +388 -7
  21. {pyeql-1.3.1 → pyeql-1.4.0rc9}/src/pyEQL/functions.py +1 -1
  22. pyeql-1.4.0rc9/src/pyEQL/phreeqc/__init__.py +5 -0
  23. pyeql-1.4.0rc9/src/pyEQL/phreeqc/bindings.cpp +84 -0
  24. pyeql-1.4.0rc9/src/pyEQL/phreeqc/core.py +239 -0
  25. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/README.md +10 -0
  26. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/CMakeLists.txt +476 -0
  27. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/INSTALL +302 -0
  28. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/IPhreeqc.rc +61 -0
  29. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/IPhreeqcConfig.cmake.in +4 -0
  30. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/Makefile.am +8 -0
  31. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/Makefile.in +816 -0
  32. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/aclocal.m4 +1217 -0
  33. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/ar-lib +270 -0
  34. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/compile +347 -0
  35. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/config.guess +1441 -0
  36. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/config.sub +1813 -0
  37. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/depcomp +791 -0
  38. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/install-sh +508 -0
  39. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/ltmain.sh +11156 -0
  40. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/missing +215 -0
  41. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/config/test-driver +148 -0
  42. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/configure +23867 -0
  43. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/configure.ac +136 -0
  44. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/Amm.dat +1968 -0
  45. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/CMakeLists.txt +32 -0
  46. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/ColdChem.dat +267 -0
  47. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/Concrete_PHR.dat +158 -0
  48. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/Concrete_PZ.dat +195 -0
  49. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/Kinec.v2.dat +12039 -0
  50. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/Kinec_v3.dat +12159 -0
  51. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/Makefile.am +28 -0
  52. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/Makefile.in +530 -0
  53. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/PHREEQC_ThermoddemV1.10_15Dec2020.dat +12965 -0
  54. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/Tipping_Hurley.dat +4137 -0
  55. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/core10.dat +6824 -0
  56. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/frezchem.dat +634 -0
  57. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/iso.dat +7235 -0
  58. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/llnl.dat +19310 -0
  59. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/minteq.dat +5654 -0
  60. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/minteq.v4.dat +13212 -0
  61. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/phreeqc.dat +1972 -0
  62. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/phreeqc_rates.dat +3158 -0
  63. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/pitzer.dat +1044 -0
  64. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/sit.dat +14348 -0
  65. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/database/wateq4f.dat +4036 -0
  66. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/CMakeLists.txt +35 -0
  67. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/IPhreeqc.pdf +0 -0
  68. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/Makefile.am +24 -0
  69. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/Makefile.in +545 -0
  70. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/NOTICE +51 -0
  71. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/Phreeqc_2_1999_manual.pdf +0 -0
  72. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/Phreeqc_3_2013_manual.pdf +0 -0
  73. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/README +428 -0
  74. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/RELEASE +7294 -0
  75. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/IPhreeqc_8h.html +5096 -0
  76. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/IPhreeqc_8h_source.html +389 -0
  77. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/IPhreeqc_8hpp.html +83 -0
  78. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/IPhreeqc_8hpp_source.html +478 -0
  79. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/Var_8h.html +318 -0
  80. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/Var_8h_source.html +200 -0
  81. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/bc_s.png +0 -0
  82. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/bdwn.png +0 -0
  83. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/classIPhreeqc.html +2274 -0
  84. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/classIPhreeqc.png +0 -0
  85. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/classIPhreeqcStop.html +69 -0
  86. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/classIPhreeqcStop.png +0 -0
  87. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/closed.png +0 -0
  88. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html +68 -0
  89. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/doxygen.css +1440 -0
  90. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/doxygen.png +0 -0
  91. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/dynsections.js +97 -0
  92. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2blank.png +0 -0
  93. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2doc.png +0 -0
  94. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2folderclosed.png +0 -0
  95. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2folderopen.png +0 -0
  96. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2lastnode.png +0 -0
  97. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2link.png +0 -0
  98. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2mlastnode.png +0 -0
  99. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2mnode.png +0 -0
  100. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2node.png +0 -0
  101. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2plastnode.png +0 -0
  102. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2pnode.png +0 -0
  103. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2splitbar.png +0 -0
  104. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/ftv2vertline.png +0 -0
  105. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/index.html +58 -0
  106. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/jquery.js +31 -0
  107. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/nav_f.png +0 -0
  108. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/nav_g.png +0 -0
  109. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/nav_h.png +0 -0
  110. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/open.png +0 -0
  111. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/structVAR.html +143 -0
  112. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/sync_off.png +0 -0
  113. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/sync_on.png +0 -0
  114. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/tab_a.png +0 -0
  115. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/tab_b.png +0 -0
  116. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/tab_h.png +0 -0
  117. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/tab_s.png +0 -0
  118. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/html/tabs.css +60 -0
  119. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/doc/phreeqc3.chm +0 -0
  120. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/CMakeLists.txt +11 -0
  121. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/Makefile.am +88 -0
  122. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/Makefile.in +696 -0
  123. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/c/CMakeLists.txt +1 -0
  124. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/c/advect/CMakeLists.txt +35 -0
  125. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/c/advect/CMakeLists.txt.in +21 -0
  126. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/c/advect/README.txt +44 -0
  127. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/c/advect/advect.c +101 -0
  128. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/c/advect/ic +17 -0
  129. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/c/advect/phreeqc.dat +1579 -0
  130. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/CMakeLists.txt +10 -0
  131. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/README.txt +3 -0
  132. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/excel/CMakeLists.txt +9 -0
  133. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/excel/phreeqc.dat +1582 -0
  134. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/excel/runphreeqc.xls +0 -0
  135. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/excel/withcallback.xls +0 -0
  136. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/python/CMakeLists.txt +11 -0
  137. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/python/Gypsum.py +52 -0
  138. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/python/parallel_advect.py +465 -0
  139. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/python/phreeqc.dat +1582 -0
  140. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/python/pitzer.dat +790 -0
  141. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/com/python/wateq4f.dat +3846 -0
  142. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/cpp/CMakeLists.txt +1 -0
  143. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/cpp/advect/CMakeLists.txt +35 -0
  144. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/cpp/advect/CMakeLists.txt.in +20 -0
  145. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/cpp/advect/README.txt +45 -0
  146. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/cpp/advect/advect.cpp +110 -0
  147. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/cpp/advect/ic +17 -0
  148. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/cpp/advect/phreeqc.dat +1579 -0
  149. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/fortran/CMakeLists.txt +1 -0
  150. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/fortran/advect/CMakeLists.txt +44 -0
  151. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/fortran/advect/CMakeLists.txt.in +24 -0
  152. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/fortran/advect/README.txt +45 -0
  153. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/fortran/advect/advect.F90 +102 -0
  154. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/fortran/advect/ic +17 -0
  155. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/fortran/advect/phreeqc.dat +1579 -0
  156. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/using-cmake/CMakeLists.txt +26 -0
  157. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/using-cmake/CMakeLists.txt.in +20 -0
  158. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/using-cmake/README.txt +37 -0
  159. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/using-cmake/ex2 +26 -0
  160. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/using-cmake/main.cpp +20 -0
  161. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/using-cmake/phreeqc.dat +1837 -0
  162. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/examples/using-cmake/post-install.cmake.in +7 -0
  163. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/CMakeLists.txt +185 -0
  164. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/FileTest.cpp +171 -0
  165. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/FileTest.h +34 -0
  166. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/Makefile.am +18 -0
  167. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/Makefile.in +466 -0
  168. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/TestCVar.cpp +9 -0
  169. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/TestIPhreeqc.cpp +4901 -0
  170. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/TestIPhreeqcLib.cpp +4644 -0
  171. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/TestSelectedOutput.cpp +669 -0
  172. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/TestVar.cpp +10 -0
  173. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/conv_fail.in +11 -0
  174. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/dump +42 -0
  175. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/iso.dat +7231 -0
  176. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/kinn20140218 +349 -0
  177. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/missing_e.dat +1556 -0
  178. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/multi_punch +105 -0
  179. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/multi_punch_no_set +102 -0
  180. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/phreeqc.dat.90a6449 +1935 -0
  181. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/gtest/phreeqc.dat.old +1556 -0
  182. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/m4/libtool.m4 +8388 -0
  183. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/m4/ltoptions.m4 +437 -0
  184. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/m4/ltsugar.m4 +124 -0
  185. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/m4/ltversion.m4 +23 -0
  186. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/m4/lt~obsolete.m4 +99 -0
  187. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/resource.h +14 -0
  188. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/CSelectedOutput.cpp +401 -0
  189. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/CSelectedOutput.hxx +77 -0
  190. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/CVar.hxx +162 -0
  191. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/Debug.h +12 -0
  192. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/ErrorReporter.hxx +70 -0
  193. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqc.cpp +1889 -0
  194. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqc.f.inc +91 -0
  195. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqc.f90.inc +603 -0
  196. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqc.h +2182 -0
  197. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqc.hpp +1027 -0
  198. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqcCallbacks.h +19 -0
  199. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqcF.f +653 -0
  200. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqcLib.cpp +1098 -0
  201. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqc_interface.F90 +1283 -0
  202. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqc_interface_F.cpp +535 -0
  203. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/IPhreeqc_interface_F.h +162 -0
  204. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/Makefile.am +210 -0
  205. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/Makefile.in +1294 -0
  206. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/README.Fortran +17 -0
  207. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/Var.c +84 -0
  208. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/Var.h +152 -0
  209. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/Version.h +36 -0
  210. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fimpl.h +282 -0
  211. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap.cpp +646 -0
  212. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap.h +163 -0
  213. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap1.cpp +24 -0
  214. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap2.cpp +24 -0
  215. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap3.cpp +24 -0
  216. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap4.cpp +24 -0
  217. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap5.cpp +24 -0
  218. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap6.cpp +25 -0
  219. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap7.cpp +25 -0
  220. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/fwrap8.cpp +24 -0
  221. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ChartHandler.cpp +225 -0
  222. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ChartHandler.h +59 -0
  223. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ChartObject.cpp +1382 -0
  224. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ChartObject.h +444 -0
  225. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/CurveObject.cpp +42 -0
  226. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/CurveObject.h +79 -0
  227. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Dictionary.cpp +41 -0
  228. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Dictionary.h +28 -0
  229. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ExchComp.cxx +398 -0
  230. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ExchComp.h +117 -0
  231. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Exchange.cxx +466 -0
  232. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Exchange.h +74 -0
  233. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Form1.h +1184 -0
  234. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Form1.resX +36 -0
  235. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/GasComp.cxx +265 -0
  236. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/GasComp.h +59 -0
  237. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/GasPhase.cxx +659 -0
  238. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/GasPhase.h +103 -0
  239. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ISolution.cxx +40 -0
  240. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ISolution.h +53 -0
  241. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ISolutionComp.cxx +202 -0
  242. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ISolutionComp.h +138 -0
  243. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/KineticsComp.cxx +318 -0
  244. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/KineticsComp.h +81 -0
  245. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/NA.h +1 -0
  246. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/NameDouble.cxx +537 -0
  247. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/NameDouble.h +66 -0
  248. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/NumKeyword.cxx +190 -0
  249. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/NumKeyword.h +67 -0
  250. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PBasic.cpp +8350 -0
  251. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PBasic.h +572 -0
  252. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PHRQ_io_output.cpp +411 -0
  253. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PPassemblage.cxx +375 -0
  254. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PPassemblage.h +70 -0
  255. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PPassemblageComp.cxx +441 -0
  256. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PPassemblageComp.h +83 -0
  257. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Phreeqc.cpp +2087 -0
  258. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Phreeqc.h +2164 -0
  259. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PhreeqcKeywords/Keywords.cpp +242 -0
  260. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/PhreeqcKeywords/Keywords.h +104 -0
  261. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Pressure.cxx +417 -0
  262. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Pressure.h +43 -0
  263. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Reaction.cxx +284 -0
  264. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Reaction.h +57 -0
  265. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ReadClass.cxx +1150 -0
  266. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SS.cxx +609 -0
  267. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SS.h +128 -0
  268. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SSassemblage.cxx +317 -0
  269. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SSassemblage.h +59 -0
  270. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SScomp.cxx +297 -0
  271. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SScomp.h +66 -0
  272. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SelectedOutput.cpp +115 -0
  273. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SelectedOutput.h +209 -0
  274. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Serializer.cxx +213 -0
  275. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Serializer.h +42 -0
  276. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Solution.cxx +1795 -0
  277. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Solution.h +154 -0
  278. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SolutionIsotope.cxx +333 -0
  279. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SolutionIsotope.h +85 -0
  280. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/StorageBin.cxx +1507 -0
  281. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/StorageBin.h +141 -0
  282. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/StorageBinList.cpp +358 -0
  283. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/StorageBinList.h +81 -0
  284. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Surface.cxx +837 -0
  285. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Surface.h +108 -0
  286. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SurfaceCharge.cxx +617 -0
  287. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SurfaceCharge.h +137 -0
  288. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SurfaceComp.cxx +509 -0
  289. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/SurfaceComp.h +70 -0
  290. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/System.cxx +103 -0
  291. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/System.h +89 -0
  292. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Temperature.cxx +423 -0
  293. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Temperature.h +42 -0
  294. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Use.cpp +78 -0
  295. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/Use.h +159 -0
  296. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/UserPunch.cpp +32 -0
  297. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/UserPunch.h +39 -0
  298. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/ZedGraph.dll +0 -0
  299. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/advection.cpp +140 -0
  300. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/basicsubs.cpp +4333 -0
  301. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cl1.cpp +881 -0
  302. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/PHRQ_base.cxx +117 -0
  303. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/PHRQ_base.h +48 -0
  304. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/PHRQ_exports.h +20 -0
  305. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/PHRQ_io.cpp +914 -0
  306. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/PHRQ_io.h +207 -0
  307. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/Parser.cxx +1331 -0
  308. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/Parser.h +310 -0
  309. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/Utils.cxx +263 -0
  310. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/Utils.h +29 -0
  311. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/common/phrqtype.h +18 -0
  312. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cvdense.cpp +566 -0
  313. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cvdense.h +267 -0
  314. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cvode.cpp +3939 -0
  315. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cvode.h +940 -0
  316. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cxxKinetics.cxx +617 -0
  317. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cxxKinetics.h +78 -0
  318. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cxxMix.cxx +154 -0
  319. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/cxxMix.h +58 -0
  320. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/dense.cpp +175 -0
  321. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/dense.h +341 -0
  322. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/dumper.cpp +277 -0
  323. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/dumper.h +60 -0
  324. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/gases.cpp +748 -0
  325. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/global_structures.h +1672 -0
  326. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/input.cpp +133 -0
  327. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/integrate.cpp +1219 -0
  328. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/inverse.cpp +5135 -0
  329. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/isotopes.cpp +1813 -0
  330. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/kinetics.cpp +3180 -0
  331. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/mainsubs.cpp +2320 -0
  332. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/model.cpp +5843 -0
  333. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/nvector.cpp +272 -0
  334. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/nvector.h +485 -0
  335. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/nvector_serial.cpp +1032 -0
  336. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/nvector_serial.h +369 -0
  337. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/parse.cpp +1044 -0
  338. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/phqalloc.cpp +316 -0
  339. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/phqalloc.h +47 -0
  340. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/pitzer.cpp +2709 -0
  341. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/pitzer_structures.cpp +225 -0
  342. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/prep.cpp +6267 -0
  343. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/print.cpp +3673 -0
  344. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/read.cpp +10245 -0
  345. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/readtr.cpp +1495 -0
  346. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/runner.cpp +158 -0
  347. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/runner.h +33 -0
  348. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/sit.cpp +1684 -0
  349. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/smalldense.cpp +324 -0
  350. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/smalldense.h +261 -0
  351. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/spread.cpp +1309 -0
  352. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/step.cpp +1566 -0
  353. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/structures.cpp +3381 -0
  354. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/sundialsmath.cpp +133 -0
  355. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/sundialsmath.h +162 -0
  356. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/sundialstypes.h +183 -0
  357. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/tally.cpp +1288 -0
  358. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/tidy.cpp +5600 -0
  359. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/transport.cpp +6403 -0
  360. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/phreeqcpp/utilities.cpp +1339 -0
  361. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/src/thread.h +64 -0
  362. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/CMakeLists.txt +133 -0
  363. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/Makefile.am +45 -0
  364. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/Makefile.in +1128 -0
  365. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/ex2.in +26 -0
  366. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/main.f90 +31 -0
  367. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/main77.f +6 -0
  368. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/main_fortran.cxx +8 -0
  369. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/phreeqc.dat.in +1556 -0
  370. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/test_c.c +148 -0
  371. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/test_cxx.cxx +152 -0
  372. pyeql-1.4.0rc9/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100/tests/test_f90.F90 +328 -0
  373. pyeql-1.4.0rc9/src/pyEQL/phreeqc/iphreeqc_wrapper.cpp +75 -0
  374. pyeql-1.4.0rc9/src/pyEQL/phreeqc/solution.py +74 -0
  375. pyeql-1.4.0rc9/src/pyEQL/phreeqc/var.py +50 -0
  376. pyeql-1.4.0rc9/src/pyEQL/presets/__init__.py +17 -0
  377. {pyeql-1.3.1 → pyeql-1.4.0rc9}/src/pyEQL/solution.py +82 -25
  378. {pyeql-1.3.1 → pyeql-1.4.0rc9}/src/pyEQL/utils.py +7 -0
  379. pyeql-1.4.0rc9/tests/files_phreeqc/sophisticated_test_case.pqi +14 -0
  380. pyeql-1.4.0rc9/tests/files_phreeqc/sophisticated_test_case.pqo +151 -0
  381. pyeql-1.4.0rc9/tests/files_phreeqc/water_pH7_temp25.pqi +5 -0
  382. pyeql-1.4.0rc9/tests/files_phreeqc/water_pH7_temp25.pqo +91 -0
  383. pyeql-1.4.0rc9/tests/phreeqc/conftest.py +9 -0
  384. pyeql-1.4.0rc9/tests/phreeqc/phreeqc.dat +1972 -0
  385. pyeql-1.4.0rc9/tests/phreeqc/test_phreeqc.py +610 -0
  386. pyeql-1.4.0rc9/tests/phreeqc/test_phreeqc_solution.py +16 -0
  387. pyeql-1.4.0rc9/tests/phreeqc/test_var.py +40 -0
  388. {pyeql-1.3.1 → pyeql-1.4.0rc9}/tests/test_activity.py +2 -2
  389. {pyeql-1.3.1 → pyeql-1.4.0rc9}/tests/test_functions.py +2 -3
  390. {pyeql-1.3.1 → pyeql-1.4.0rc9}/tests/test_phreeqc.py +172 -11
  391. pyeql-1.4.0rc9/tests/test_pyeql_phreeqc.py +423 -0
  392. {pyeql-1.3.1 → pyeql-1.4.0rc9}/tests/test_salt_matching.py +2 -2
  393. {pyeql-1.3.1 → pyeql-1.4.0rc9}/tests/test_solution.py +163 -8
  394. {pyeql-1.3.1 → pyeql-1.4.0rc9}/tests/test_utils.py +4 -0
  395. pyeql-1.3.1/.github/workflows/post-process.yml +0 -64
  396. pyeql-1.3.1/.github/workflows/release.yml +0 -60
  397. pyeql-1.3.1/.github/workflows/upgrade_dependencies.yml +0 -93
  398. pyeql-1.3.1/PKG-INFO +0 -131
  399. pyeql-1.3.1/docs/_static/.gitignore +0 -1
  400. pyeql-1.3.1/docs/authors.md +0 -21
  401. pyeql-1.3.1/docs/changelog.md +0 -662
  402. pyeql-1.3.1/requirements/macos-latest_py3.10.txt +0 -231
  403. pyeql-1.3.1/requirements/macos-latest_py3.10_extras.txt +0 -374
  404. pyeql-1.3.1/requirements/macos-latest_py3.11.txt +0 -231
  405. pyeql-1.3.1/requirements/macos-latest_py3.11_extras.txt +0 -364
  406. pyeql-1.3.1/requirements/macos-latest_py3.12.txt +0 -231
  407. pyeql-1.3.1/requirements/macos-latest_py3.12_extras.txt +0 -364
  408. pyeql-1.3.1/requirements/macos-latest_py3.9.txt +0 -231
  409. pyeql-1.3.1/requirements/macos-latest_py3.9_extras.txt +0 -378
  410. pyeql-1.3.1/requirements/ubuntu-latest_py3.10.txt +0 -231
  411. pyeql-1.3.1/requirements/ubuntu-latest_py3.10_extras.txt +0 -374
  412. pyeql-1.3.1/requirements/ubuntu-latest_py3.11.txt +0 -231
  413. pyeql-1.3.1/requirements/ubuntu-latest_py3.11_extras.txt +0 -364
  414. pyeql-1.3.1/requirements/ubuntu-latest_py3.12.txt +0 -231
  415. pyeql-1.3.1/requirements/ubuntu-latest_py3.12_extras.txt +0 -364
  416. pyeql-1.3.1/requirements/ubuntu-latest_py3.9.txt +0 -231
  417. pyeql-1.3.1/requirements/ubuntu-latest_py3.9_extras.txt +0 -378
  418. pyeql-1.3.1/requirements/windows-latest_py3.10.txt +0 -233
  419. pyeql-1.3.1/requirements/windows-latest_py3.10_extras.txt +0 -381
  420. pyeql-1.3.1/requirements/windows-latest_py3.11.txt +0 -233
  421. pyeql-1.3.1/requirements/windows-latest_py3.11_extras.txt +0 -371
  422. pyeql-1.3.1/requirements/windows-latest_py3.12.txt +0 -233
  423. pyeql-1.3.1/requirements/windows-latest_py3.12_extras.txt +0 -371
  424. pyeql-1.3.1/requirements/windows-latest_py3.9.txt +0 -233
  425. pyeql-1.3.1/requirements/windows-latest_py3.9_extras.txt +0 -385
  426. pyeql-1.3.1/setup.cfg +0 -11
  427. pyeql-1.3.1/src/pyEQL.egg-info/SOURCES.txt +0 -127
  428. pyeql-1.3.1/src/pyEQL.egg-info/dependency_links.txt +0 -1
  429. pyeql-1.3.1/src/pyEQL.egg-info/requires.txt +0 -27
  430. pyeql-1.3.1/src/pyEQL.egg-info/top_level.txt +0 -1
  431. {pyeql-1.3.1 → pyeql-1.4.0rc9}/.coveragerc +0 -0
  432. {pyeql-1.3.1 → pyeql-1.4.0rc9}/.gitattributes +0 -0
  433. {pyeql-1.3.1 → pyeql-1.4.0rc9}/.github/dependabot.yml +0 -0
  434. {pyeql-1.3.1 → pyeql-1.4.0rc9}/.github/pull_request_template.md +0 -0
  435. {pyeql-1.3.1 → pyeql-1.4.0rc9}/.github/release.yml +0 -0
  436. {pyeql-1.3.1 → pyeql-1.4.0rc9}/.readthedocs.yml +0 -0
  437. {pyeql-1.3.1 → pyeql-1.4.0rc9}/.zenodo.json +0 -0
  438. {pyeql-1.3.1 → pyeql-1.4.0rc9}/AUTHORS.md +0 -0
  439. {pyeql-1.3.1 → pyeql-1.4.0rc9}/CITATION.cff +0 -0
  440. {pyeql-1.3.1 → pyeql-1.4.0rc9}/COPYING +0 -0
  441. {pyeql-1.3.1 → pyeql-1.4.0rc9}/LICENSE.txt +0 -0
  442. {pyeql-1.3.1 → pyeql-1.4.0rc9}/MANIFEST.in +0 -0
  443. {pyeql-1.3.1 → pyeql-1.4.0rc9}/README.md +0 -0
  444. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/Makefile +0 -0
  445. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/amounts.md +0 -0
  446. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/arithmetic.md +0 -0
  447. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/chemistry.md +0 -0
  448. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/class_solution.md +0 -0
  449. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/contributing.md +0 -0
  450. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/creating.md +0 -0
  451. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/database.md +0 -0
  452. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/engines.md +0 -0
  453. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/examples/.ipynb_checkpoints/pyEQL_demo_1-checkpoint.ipynb +0 -0
  454. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/examples/.ipynb_checkpoints/pyeql_demo-checkpoint.ipynb +0 -0
  455. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/examples/.ipynb_checkpoints/pyeql_tutorial_database-checkpoint.ipynb +0 -0
  456. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/examples/.ipynb_checkpoints/pyeql_tutorial_osmotic_pressure-checkpoint.ipynb +0 -0
  457. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/examples/.ipynb_checkpoints/speedup-checkpoint.ipynb +0 -0
  458. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/examples/pyeql_demo.ipynb +0 -0
  459. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/examples/pyeql_tutorial_activity.ipynb +0 -0
  460. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/examples/pyeql_tutorial_database.ipynb +0 -0
  461. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/examples/pyeql_tutorial_osmotic_pressure.ipynb +0 -0
  462. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/index.md +0 -0
  463. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/internal.md +0 -0
  464. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/license.md +0 -0
  465. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/mixing.md +0 -0
  466. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/quickstart.md +0 -0
  467. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/requirements.txt +0 -0
  468. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/serialization.md +0 -0
  469. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/tutorials.md +0 -0
  470. {pyeql-1.3.1 → pyeql-1.4.0rc9}/docs/units.md +0 -0
  471. {pyeql-1.3.1 → pyeql-1.4.0rc9}/pyeql-logo.png +0 -0
  472. {pyeql-1.3.1 → pyeql-1.4.0rc9}/pyeql-logo.svg +0 -0
  473. {pyeql-1.3.1 → pyeql-1.4.0rc9}/setup.py +0 -0
  474. {pyeql-1.3.1 → pyeql-1.4.0rc9}/src/pyEQL/database/geothermal.dat +0 -0
  475. {pyeql-1.3.1 → pyeql-1.4.0rc9}/src/pyEQL/database/llnl.dat +0 -0
  476. {pyeql-1.3.1 → pyeql-1.4.0rc9}/src/pyEQL/database/phreeqc_license.txt +0 -0
  477. {pyeql-1.3.1 → pyeql-1.4.0rc9}/src/pyEQL/database/pyeql_db.json +0 -0
  478. {pyeql-1.3.1 → pyeql-1.4.0rc9}/src/pyEQL/equilibrium.py +0 -0
  479. {pyeql-1.3.1 → pyeql-1.4.0rc9}/src/pyEQL/presets/Ringers lactate.yaml +0 -0
  480. {pyeql-1.3.1 → pyeql-1.4.0rc9}/src/pyEQL/presets/normal saline.yaml +0 -0
  481. {pyeql-1.3.1 → pyeql-1.4.0rc9}/src/pyEQL/presets/rainwater.yaml +0 -0
  482. {pyeql-1.3.1 → pyeql-1.4.0rc9}/src/pyEQL/presets/seawater.yaml +0 -0
  483. {pyeql-1.3.1 → pyeql-1.4.0rc9}/src/pyEQL/presets/urine.yaml +0 -0
  484. {pyeql-1.3.1 → pyeql-1.4.0rc9}/src/pyEQL/presets/wastewater.yaml +0 -0
  485. {pyeql-1.3.1 → pyeql-1.4.0rc9}/src/pyEQL/py.typed +0 -0
  486. {pyeql-1.3.1 → pyeql-1.4.0rc9}/src/pyEQL/salt_ion_match.py +0 -0
  487. {pyeql-1.3.1 → pyeql-1.4.0rc9}/src/pyEQL/solute.py +0 -0
  488. {pyeql-1.3.1 → pyeql-1.4.0rc9}/tests/conftest.py +0 -0
  489. {pyeql-1.3.1 → pyeql-1.4.0rc9}/tests/test_bulk_properties.py +0 -0
  490. {pyeql-1.3.1 → pyeql-1.4.0rc9}/tests/test_debye_length.py +0 -0
  491. {pyeql-1.3.1 → pyeql-1.4.0rc9}/tests/test_density.py +0 -0
  492. {pyeql-1.3.1 → pyeql-1.4.0rc9}/tests/test_dielectric.py +0 -0
  493. {pyeql-1.3.1 → pyeql-1.4.0rc9}/tests/test_effective_pitzer.py +0 -0
  494. {pyeql-1.3.1 → pyeql-1.4.0rc9}/tests/test_equilibrium.py +0 -0
  495. {pyeql-1.3.1 → pyeql-1.4.0rc9}/tests/test_logging.py +0 -0
  496. {pyeql-1.3.1 → pyeql-1.4.0rc9}/tests/test_mixed_electrolyte_activity.py +0 -0
  497. {pyeql-1.3.1 → pyeql-1.4.0rc9}/tests/test_osmotic_coeff.py +0 -0
  498. {pyeql-1.3.1 → pyeql-1.4.0rc9}/tests/test_solute.py +0 -0
  499. {pyeql-1.3.1 → pyeql-1.4.0rc9}/tests/test_solute_properties.py +0 -0
  500. {pyeql-1.3.1 → pyeql-1.4.0rc9}/tests/test_volume_concentration.py +0 -0
  501. {pyeql-1.3.1 → pyeql-1.4.0rc9}/tox.ini +0 -0
@@ -0,0 +1,94 @@
1
+ name: release
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ jobs:
8
+
9
+ build_sdist:
10
+ name: Build source
11
+ runs-on: ubuntu-latest
12
+
13
+ steps:
14
+ - uses: actions/checkout@v6
15
+ with:
16
+ fetch-depth: 0
17
+ ref: ${{ github.event.release.tag_name }}
18
+
19
+ - name: Build source
20
+ run: |
21
+ python -m pip install pip --upgrade
22
+ pip install build --upgrade
23
+ python -m build --sdist --outdir=wheelhouse
24
+
25
+ - name: Upload sdist to github
26
+ uses: actions/upload-artifact@v6
27
+ with:
28
+ name: wheels-sdist
29
+ path: wheelhouse/*.tar.gz
30
+ if-no-files-found: error
31
+
32
+ build_wheels:
33
+ name: Build wheel on ${{ matrix.os }} for ${{ matrix.cibw_archs }}
34
+ needs: [build_sdist]
35
+ runs-on: ${{ matrix.os }}
36
+ strategy:
37
+ fail-fast: false
38
+ matrix:
39
+ include:
40
+ - os: ubuntu-latest
41
+ cibw_archs: "x86_64"
42
+ - os: ubuntu-24.04-arm
43
+ cibw_archs: "auto"
44
+ - os: windows-2022
45
+ cibw_archs: "auto64"
46
+ # macos-15-intel for Intel and maos-latest for Apple Silicon
47
+ - os: macos-15-intel
48
+ cibw_archs: "x86_64"
49
+ - os: macos-latest
50
+ cibw_archs: "arm64"
51
+
52
+ steps:
53
+ - uses: actions/checkout@v6
54
+ with:
55
+ fetch-depth: 0
56
+ ref: ${{ github.event.release.tag_name }}
57
+
58
+ - name: Build wheels
59
+ uses: pypa/cibuildwheel@v3.3
60
+ with:
61
+ config-file: cibuildwheel.toml
62
+ output-dir: wheelhouse
63
+ env:
64
+ CIBW_ENVIRONMENT_MACOS: CMAKE_OSX_ARCHITECTURES=${{ matrix.cibw_archs }}
65
+
66
+ - name: Upload artifacts to github
67
+ uses: actions/upload-artifact@v6
68
+ with:
69
+ name: wheels-${{ runner.os }}-${{ matrix.cibw_archs }}
70
+ path: ./wheelhouse/*.whl
71
+ if-no-files-found: error
72
+
73
+ publish_to_pypi:
74
+ name: Publish wheels to PyPi
75
+ needs: [build_sdist, build_wheels]
76
+ runs-on: ubuntu-latest
77
+ steps:
78
+ - name: Download packages
79
+ uses: actions/download-artifact@v7
80
+ with:
81
+ pattern: wheels-*
82
+ path: dist
83
+ merge-multiple: true
84
+
85
+ - name: Print out packages
86
+ run: ls -la dist/*
87
+
88
+ - name: Upload wheels to pypi
89
+ env:
90
+ TWINE_USERNAME: __token__
91
+ TWINE_PASSWORD: ${{ secrets.pypi_password }}
92
+ run: |
93
+ python -m pip install --upgrade pip setuptools wheel packaging twine
94
+ twine upload dist/*
@@ -0,0 +1,40 @@
1
+ name: testing-pinned
2
+
3
+ on:
4
+ pull_request:
5
+ branches:
6
+ - main
7
+ paths-ignore:
8
+ - CHANGELOG.md
9
+
10
+ jobs:
11
+ test:
12
+ strategy:
13
+ matrix:
14
+ # We only test on min. and max. supported Python versions here.
15
+ python-version: ["3.10", "3.13"]
16
+ os:
17
+ - ubuntu-latest
18
+ - macos-latest
19
+ - macos-14
20
+ - windows-latest
21
+
22
+ runs-on: ${{ matrix.os }}
23
+
24
+ steps:
25
+ - uses: actions/checkout@v6
26
+
27
+ - name: Setup Python
28
+ uses: actions/setup-python@v6
29
+ with:
30
+ python-version: ${{ matrix.python-version }}${{ matrix.dev }}
31
+
32
+ - name: Install requirements
33
+ run: |
34
+ python -m pip install --upgrade pip
35
+ pip install -r requirements.txt
36
+ pip install -e . --no-deps
37
+
38
+ - name: Run tests
39
+ run: |
40
+ pytest -n auto --cov=src/pyEQL --cov-report=xml --dist=loadscope
@@ -10,22 +10,21 @@ on:
10
10
 
11
11
  concurrency:
12
12
  group: ${{ github.workflow }}-${{ github.ref }}
13
- cancel-in-progress: true
13
+ cancel-in-progress: false
14
14
 
15
15
  jobs:
16
16
  lint:
17
17
  runs-on: ubuntu-latest
18
- strategy:
19
- max-parallel: 1
20
18
  steps:
21
- - uses: actions/checkout@v4
19
+ - uses: actions/checkout@v6
22
20
  with:
23
21
  fetch-depth: 0
22
+
24
23
  - name: Set up Python
25
- uses: actions/setup-python@v5
24
+ uses: actions/setup-python@v6
26
25
  with:
27
- python-version: "3.11"
28
- cache: pip
26
+ python-version: "3.12"
27
+
29
28
  - name: Run pre-commit
30
29
  run: |
31
30
  pip install pre-commit
@@ -34,52 +33,59 @@ jobs:
34
33
  test:
35
34
  needs: lint
36
35
  strategy:
37
- max-parallel: 6
38
36
  matrix:
39
- # for most PRs, test the min and max supported python on every platform, test all python on ubuntu
40
- python-version: ["3.10", "3.12","3.13"]
41
- os:
42
- - ubuntu-latest
43
- - macos-latest
44
- - macos-14
45
- - windows-latest
46
- include:
47
- - os: ubuntu-latest
48
- python-version: "3.11"
49
- - os: ubuntu-latest
50
- python-version: "3.12"
51
- runs-on: ${{ matrix.os }}
37
+ python-version: ["3.10", "3.11", "3.12","3.13"]
38
+ runs-on: ubuntu-latest
52
39
  steps:
53
- - uses: actions/checkout@v4
40
+ - uses: actions/checkout@v6
41
+
54
42
  - name: Setup Python
55
- uses: actions/setup-python@v5
43
+ uses: actions/setup-python@v6
56
44
  with:
57
45
  python-version: ${{ matrix.python-version }}${{ matrix.dev }}
46
+
58
47
  - name: Install test requirements
59
48
  run: |
60
49
  python -m pip install --upgrade pip
61
50
  pip install -e ".[testing]"
51
+
52
+ - name: List installed requirements
53
+ run: |
54
+ pip freeze
55
+
62
56
  - name: Run tests
63
57
  run: |
64
- pytest -n auto --cov=src/pyEQL --cov-report=xml --dist=loadscope
58
+ if [[ "${{ matrix.python-version }}" == "3.12" ]]; then
59
+ pytest -n auto --cov=src/pyEQL --cov-report=xml --dist=loadscope
60
+ else
61
+ pytest -n auto --dist=loadscope
62
+ fi
63
+
65
64
  - uses: codecov/codecov-action@v5
65
+ if: matrix.python-version == '3.12'
66
66
  with:
67
67
  token: ${{ secrets.CODECOV_TOKEN }}
68
68
  file: ./coverage.xml
69
69
 
70
70
  docs:
71
71
  runs-on: ubuntu-latest
72
+
72
73
  steps:
73
- - uses: actions/checkout@v4
74
+ - uses: actions/checkout@v6
75
+
74
76
  - name: Setup Python
75
- uses: actions/setup-python@v5
77
+ uses: actions/setup-python@v6
76
78
  with:
77
79
  python-version: "3.11"
80
+
78
81
  - name: Install tox
79
82
  run: |
80
83
  python -m pip install tox
84
+
81
85
  - uses: r-lib/actions/setup-pandoc@v2
86
+
82
87
  - name: Build docs
83
88
  run: tox -e docs
89
+
84
90
  - name: Check links
85
91
  run: tox -e links
@@ -51,3 +51,6 @@ MANIFEST
51
51
  # Per-project virtualenvs
52
52
  .venv*/
53
53
  .conda*/
54
+
55
+ # setuptools-scm managed version file
56
+ src/pyEQL/_version.py
@@ -1,4 +1,4 @@
1
- exclude: "^docs/conf.py"
1
+ exclude: ^(docs/conf\.py|src/pyEQL/phreeqc/ext|tests/phreeqc/.*\.dat)
2
2
 
3
3
  default_stages: [pre-commit]
4
4
 
@@ -21,17 +21,12 @@ repos:
21
21
  # Run the formatter. This WILL run on .ipynb files
22
22
  - id: ruff-format
23
23
 
24
- - repo: https://github.com/psf/black-pre-commit-mirror
25
- rev: 25.1.0
26
- hooks:
27
- - id: black
28
-
29
24
  - repo: https://github.com/codespell-project/codespell
30
25
  rev: v2.4.1
31
26
  hooks:
32
27
  - id: codespell
33
28
  stages: [pre-commit, commit-msg]
34
- exclude_types: [html, svg]
29
+ exclude_types: [html, svg, jupyter]
35
30
  additional_dependencies: [tomli] # needed to read pyproject.toml below py3.11
36
31
 
37
32
  - repo: https://github.com/pre-commit/pre-commit-hooks
@@ -5,6 +5,42 @@ 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.4.0rc9] - 2026-02-05
9
+
10
+ ### Added
11
+
12
+ - `EOS`: Brand new, custom-compiled wrapper that interfaces directly with IPHREEQC modules distributed by USGS. This
13
+ new PHREEQC interface is accessible via the new `phreeqc2026` electrolyte modeling engine, and will be used
14
+ by default in the `native` engine in `v1.5.0`. (#306, #318, #318, #319, @vineetbansal)
15
+
16
+ ### Changed
17
+
18
+ - `Solution.equilibrate`: Added support for solid-liquid and gas-liquid equilibrium via three new kwargs - `atmopshere`,
19
+ `solids`, and `gases`. See docstring for details and usage.(#292, #294, @vineetbansal, @YitongPan1, @SuixiongTay)
20
+ - `get_components_by_element`: A new keyword argument `nested` was added to methods `get_components_by_element`
21
+ and `get_el_amt_dict` of the `Solution` class. It defaults to `False` (no change from prior behavior), but
22
+ can be set to `True` to return a 2-level dictionary, with the element symbol as the key at the top level, and
23
+ the valence (float, or "unk" for unknown) as the key at the second level. This should make it easier for future
24
+ code to calculate the total amount of a given element regardless of its valence. (#284, @vineetbansal)
25
+
26
+ ### Fixed
27
+
28
+ - `NativeEOS` `equilibrate`: We check if the total amount for any element decreases (within a tolerance of 1e-16 moles)
29
+ after speciation. If so, we add all species containing that element back in (unless they have been added by Phreeqc
30
+ already). As a result, we replace neutral (aq) molecules, and ions with incorrect charge, with ions with charge
31
+ determined by phreeqc, without double-counting. Missing elements (e.g. Rh) are handled correctly as well, since species
32
+ with the missing element are re-introduced in the solution. (#282, @vineetbansal)
33
+ - `standardize_formula`: Fixed incorrect reduction of dimers. For example, `(CO2)2` was being standardized to `CO2`, which
34
+ could cause incorrect concentrations to be reported. Dimers are no longer reduced. (#309, @vineetbansal)
35
+
36
+ ## [1.3.2] - 2025-09-15
37
+
38
+ ### Fixed
39
+
40
+ - `Solution.get_viscosity_kinematic()`: A recent change to get_salt_dict (#258) created a problem with `get_viscosity_kinetmatic`
41
+ in which an empty solution would cause the method to return an error. This has been fixed, and unit tests added for both
42
+ `get_viscosity_kinematic` and `get_viscosity_dynamic`.
43
+
8
44
  ## [1.3.1] - 2025-08-18
9
45
 
10
46
  ### Fixed
@@ -0,0 +1,61 @@
1
+ cmake_minimum_required(VERSION 3.15...3.26)
2
+ project(
3
+ "${SKBUILD_PROJECT_NAME}"
4
+ LANGUAGES CXX
5
+ VERSION "${SKBUILD_PROJECT_VERSION}")
6
+
7
+ option(PYEQL_ENABLE_EXT "Build and install IPhreeqc support" ON)
8
+
9
+ if(PYEQL_ENABLE_EXT)
10
+ find_package(
11
+ Python
12
+ COMPONENTS Interpreter Development.Module
13
+ REQUIRED)
14
+ find_package(pybind11 CONFIG REQUIRED)
15
+
16
+ # -------------------------------------------------------
17
+ # Setup for IPhreeqc
18
+ # -------------------------------------------------------
19
+ set(IPHREEQC_BASE ${CMAKE_CURRENT_SOURCE_DIR}/src/pyEQL/phreeqc/ext/iphreeqc-3.8.6-17100)
20
+ set(IPHREEQC_DIR ${IPHREEQC_BASE})
21
+ set(IPHREEQC_INCLUDE_DIRS
22
+ ${IPHREEQC_BASE}/src
23
+ ${IPHREEQC_BASE}/src/phreeqcpp/common
24
+ )
25
+ include_directories(${IPHREEQC_INCLUDE_DIRS})
26
+ set(IPHREEQC_BUILD_DIR ${IPHREEQC_BASE}/build)
27
+ add_subdirectory(${IPHREEQC_DIR} ${IPHREEQC_BUILD_DIR})
28
+ set_target_properties(IPhreeqc PROPERTIES POSITION_INDEPENDENT_CODE ON)
29
+ # -------------------------------------------------------
30
+
31
+ # -------------------------------------------------------
32
+ # Setup for pyEQL._phreeqc
33
+ # -------------------------------------------------------
34
+ pybind11_add_module(_phreeqc ${CMAKE_CURRENT_SOURCE_DIR}/src/pyEQL/phreeqc/bindings.cpp)
35
+ target_compile_definitions(_phreeqc
36
+ PRIVATE VERSION_INFO=${PROJECT_VERSION})
37
+ target_link_libraries(_phreeqc PRIVATE IPhreeqc)
38
+ install(TARGETS _phreeqc LIBRARY DESTINATION pyEQL COMPONENT python)
39
+
40
+ # -------------------------------------------------------
41
+ # IPhreeqc databases
42
+ # -------------------------------------------------------
43
+ # Till we find a way to extract artifacts from IPhreeqc's install folder
44
+ # through scikit-build-core, we define a COMPONENT that allows us to
45
+ # copy the database files.
46
+ set(IPHREEQC_DATABASE_DIR ${IPHREEQC_BASE}/database)
47
+ install(DIRECTORY
48
+ "${IPHREEQC_DATABASE_DIR}"
49
+ DESTINATION pyEQL/phreeqc COMPONENT iphreeqc_database)
50
+ # Make it a python module so we can access it using importlib.resources
51
+ file(GENERATE
52
+ OUTPUT "__init__.py"
53
+ CONTENT ""
54
+ )
55
+ install(FILES
56
+ "${CMAKE_CURRENT_BINARY_DIR}/__init__.py"
57
+ DESTINATION pyEQL/phreeqc/database
58
+ COMPONENT iphreeqc_database
59
+ )
60
+ # -------------------------------------------------------
61
+ endif()
@@ -1,12 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyEQL
3
- Version: 1.3.1
3
+ Version: 1.4.0rc9
4
4
  Summary: A python interface for solution chemistry
5
- Author-email: Ryan Kingsbury <kingsbury@princeton.edu>
5
+ Author-Email: Ryan Kingsbury <kingsbury@princeton.edu>
6
6
  License-Expression: LGPL-3.0-or-later
7
- Project-URL: Docs, https://pyeql.readthedocs.io/
8
- Project-URL: Repo, https://github.com/KingsburyLab/pyEQL
9
- Project-URL: Package, https://pypi.org/project/pyEQL
7
+ License-File: AUTHORS.md
8
+ License-File: LICENSE.txt
10
9
  Classifier: Programming Language :: Python :: 3
11
10
  Classifier: Programming Language :: Python :: 3.10
12
11
  Classifier: Programming Language :: Python :: 3.11
@@ -15,10 +14,10 @@ Classifier: Development Status :: 4 - Beta
15
14
  Classifier: Intended Audience :: Science/Research
16
15
  Classifier: Operating System :: OS Independent
17
16
  Classifier: Topic :: Scientific/Engineering
17
+ Project-URL: Docs, https://pyeql.readthedocs.io/
18
+ Project-URL: Repo, https://github.com/KingsburyLab/pyEQL
19
+ Project-URL: Package, https://pypi.org/project/pyEQL
18
20
  Requires-Python: >=3.10
19
- Description-Content-Type: text/markdown
20
- License-File: LICENSE.txt
21
- License-File: AUTHORS.md
22
21
  Requires-Dist: pint>=0.24.4
23
22
  Requires-Dist: numpy>1.26
24
23
  Requires-Dist: scipy>=1.12
@@ -43,7 +42,7 @@ Requires-Dist: sphinx-rtd-theme; extra == "docs"
43
42
  Requires-Dist: myst-parser[linkify]; extra == "docs"
44
43
  Provides-Extra: full
45
44
  Requires-Dist: rich; extra == "full"
46
- Dynamic: license-file
45
+ Description-Content-Type: text/markdown
47
46
 
48
47
  [![Read the Docs](https://img.shields.io/readthedocs/pyeql)](https://pyeql.readthedocs.io/en/latest/)
49
48
  [![testing](https://github.com/KingsburyLab/pyeql/workflows/testing/badge.svg)](https://github.com/KingsburyLab/pyeql/actions?query=workflow%3Atesting)
@@ -0,0 +1,10 @@
1
+ [tool.cibuildwheel]
2
+ build = "cp3*"
3
+ skip = ["cp314*", "*-win32", "*-manylinux_i686", "*-musllinux_*"]
4
+ build-verbosity = 1
5
+ test-extras = ["testing"]
6
+ # 01/24/26 - The latest version of scipy, 1.17.0, cannot be built on
7
+ # manylinux without OpenBLAS. Skip it by pre-installing a binary version.
8
+ before-test = "pip install scipy --prefer-binary"
9
+ # For now, we only run the tests that are wrapper specific in cibuildwheel.
10
+ test-command = "python -m pytest {project}/tests/test_pyeql_phreeqc.py"
@@ -0,0 +1 @@
1
+ ../AUTHORS.md
@@ -0,0 +1 @@
1
+ ../CHANGELOG.md
@@ -315,7 +315,8 @@ linkcheck_allowed_redirects = {
315
315
  r"http://pint\.readthedocs\.io": r"https://pint\.readthedocs\.io/.*/stable",
316
316
  r"https://tox\.wiki": r"https://tox\.wiki/.*",
317
317
  }
318
- linkcheck_ignore = [r"https://localhost:\d+/"]
318
+ # https://idst.inl.gov/ is reachable, just not from the github runner.
319
+ linkcheck_ignore = [r"https://localhost:\d+/", r"^https://idst\.inl\.gov/$"]
319
320
  linkcheck_rate_limit_timeout = 500
320
321
 
321
322
  print(f"loading configurations for {project} {version} ...", file=sys.stderr)
@@ -62,7 +62,7 @@
62
62
  "# Import the pyEQL library and other necessary modules\n",
63
63
  "import pyEQL\n",
64
64
  "import numpy as np\n",
65
- "import matplotlib.pyplot as plt\n"
65
+ "import matplotlib.pyplot as plt"
66
66
  ]
67
67
  },
68
68
  {
@@ -143,9 +143,9 @@
143
143
  "outputs": [],
144
144
  "source": [
145
145
  "initial_conditions = {\n",
146
- " 'HCO3-': 1.0e-3,\n",
147
- " 'CO3--': 1.0e-4,\n",
148
- " 'H+': 1.0e-7 # Note: instead of including H+ here, you could use the pH keyword argument\n",
146
+ " \"HCO3-\": 1.0e-3,\n",
147
+ " \"CO3--\": 1.0e-4,\n",
148
+ " \"H+\": 1.0e-7, # Note: instead of including H+ here, you could use the pH keyword argument\n",
149
149
  "}"
150
150
  ]
151
151
  },
@@ -225,7 +225,7 @@
225
225
  ],
226
226
  "source": [
227
227
  "# Retrieve equilibrium concentrations using get_amount\n",
228
- "{species: solution.get_amount(species, 'mol/L').magnitude for species in solution.components}"
228
+ "{species: solution.get_amount(species, \"mol/L\").magnitude for species in solution.components}"
229
229
  ]
230
230
  },
231
231
  {
@@ -272,7 +272,7 @@
272
272
  "source": [
273
273
  "solution.equilibrate()\n",
274
274
  "# Retrieve equilibrium concentrations using get_amount\n",
275
- "{species: solution.get_amount(species, 'mol/L').magnitude for species in solution.components}"
275
+ "{species: solution.get_amount(species, \"mol/L\").magnitude for species in solution.components}"
276
276
  ]
277
277
  },
278
278
  {
@@ -322,7 +322,7 @@
322
322
  "import matplotlib.pyplot as plt\n",
323
323
  "\n",
324
324
  "# iterate through several pH values, re-equilibrating the solution each time the pH changes\n",
325
- "phs = np.arange(0,13.5, 0.5)\n",
325
+ "phs = np.arange(0, 13.5, 0.5)\n",
326
326
  "# store the species concentrations in these lists\n",
327
327
  "h2co3 = []\n",
328
328
  "hco3 = []\n",
@@ -333,25 +333,25 @@
333
333
  " # create a solution with 1 mM total carbonate, then equilibrate\n",
334
334
  " s = pyEQL.Solution({\"Na+\": \"1e-3 mol/L\", \"HCO3-\": \"1e-3 mol/L\"}, pH=ph)\n",
335
335
  " s.equilibrate()\n",
336
- " h2co3.append(s.get_amount('H2CO3', 'mM').magnitude)\n",
337
- " hco3.append(s.get_amount('HCO3-', 'mM').magnitude)\n",
338
- " co3.append(s.get_amount('CO3-2', 'mM').magnitude)\n",
339
- " co2.append(s.get_amount('CO2', 'mM').magnitude)\n",
336
+ " h2co3.append(s.get_amount(\"H2CO3\", \"mM\").magnitude)\n",
337
+ " hco3.append(s.get_amount(\"HCO3-\", \"mM\").magnitude)\n",
338
+ " co3.append(s.get_amount(\"CO3-2\", \"mM\").magnitude)\n",
339
+ " co2.append(s.get_amount(\"CO2\", \"mM\").magnitude)\n",
340
340
  "\n",
341
341
  "# Plotting the equilibrium concentrations\n",
342
- "plt.figure(figsize=(8,4))\n",
343
- "plt.plot(phs, h2co3, color='skyblue', label=r\"H$_2$CO$_3$\")\n",
344
- "plt.plot(phs, hco3, color='g', label=r\"HCO$_3^{-1}$\")\n",
345
- "plt.plot(phs, co3, color='r', label=r\"CO$_3^{-2}$\")\n",
346
- "plt.plot(phs, co2, color='b', label=r\"CO$_2$(aq)\")\n",
342
+ "plt.figure(figsize=(8, 4))\n",
343
+ "plt.plot(phs, h2co3, color=\"skyblue\", label=r\"H$_2$CO$_3$\")\n",
344
+ "plt.plot(phs, hco3, color=\"g\", label=r\"HCO$_3^{-1}$\")\n",
345
+ "plt.plot(phs, co3, color=\"r\", label=r\"CO$_3^{-2}$\")\n",
346
+ "plt.plot(phs, co2, color=\"b\", label=r\"CO$_2$(aq)\")\n",
347
347
  "\n",
348
348
  "# add a horizontal line for the total carbonate concentration\n",
349
349
  "plt.axhline(1, ls=\"--\", color=\"k\")\n",
350
350
  "# add labels and legend\n",
351
- "plt.xlabel('pH')\n",
352
- "plt.ylabel('Concentration (mmol/L)')\n",
351
+ "plt.xlabel(\"pH\")\n",
352
+ "plt.ylabel(\"Concentration (mmol/L)\")\n",
353
353
  "plt.legend()\n",
354
- "plt.title('Equilibrium Concentrations of Carbonate System Species')\n",
354
+ "plt.title(\"Equilibrium Concentrations of Carbonate System Species\")\n",
355
355
  "plt.show()"
356
356
  ]
357
357
  },
@@ -68,7 +68,7 @@ pyEQL also requires the following packages:
68
68
  - [pint](https://github.com/hgrecco/pint) - for automated unit conversion
69
69
  - [pymatgen](https://github.com/materialsproject/pymatgen/) - used to interpret chemical formulas
70
70
  - [iapws](https://github.com/jjgomera/iapws/) - used to calculate the properties of water
71
- - [monty](https://github.com/materialsvirtuallab/monty) - used for saving and loading `Solution` objects to files
71
+ - [monty](https://github.com/materialyzeai/monty) - used for saving and loading `Solution` objects to files
72
72
  - [maggma](https://materialsproject.github.io/maggma/) - used by the internal property database
73
73
  - [scipy](https://scipy.org/)
74
74
  - [numpy](https://numpy.org/)
@@ -56,9 +56,15 @@ docs = [
56
56
  full = ["rich"]
57
57
 
58
58
  [build-system]
59
- # AVOID CHANGING REQUIRES: IT WILL BE UPDATED BY PYSCAFFOLD!
60
- requires = ["setuptools>=46.1.0", "setuptools_scm[toml]>=5"]
61
- build-backend = "setuptools.build_meta"
59
+ requires = ["scikit-build-core", "pybind11", "setuptools_scm[toml]>=5"]
60
+ build-backend = "scikit_build_core.build"
61
+
62
+ [tool.scikit-build]
63
+ install.components = ["python", "iphreeqc_database"]
64
+ metadata.version.provider = "scikit_build_core.metadata.setuptools_scm"
65
+
66
+ [tool.scikit-build.cmake.define]
67
+ PYEQL_ENABLE_EXT = {env="PYEQL_ENABLE_EXT"}
62
68
 
63
69
  [tool.setuptools.packages.find]
64
70
  where = ["src"]
@@ -66,7 +72,7 @@ exclude = ["tests"]
66
72
 
67
73
  [tool.setuptools_scm]
68
74
  # See configuration details in https://github.com/pypa/setuptools_scm
69
- version_scheme = "no-guess-dev"
75
+ write_to = "src/pyEQL/_version.py"
70
76
 
71
77
  [tool.black]
72
78
  line-length = 120