res2df 1.3.7__tar.gz → 1.3.9__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 (251) hide show
  1. {res2df-1.3.7 → res2df-1.3.9}/.github/workflows/codecov.yml +3 -3
  2. {res2df-1.3.7 → res2df-1.3.9}/.github/workflows/publish.yml +1 -1
  3. {res2df-1.3.7 → res2df-1.3.9}/.github/workflows/res2df.yml +3 -3
  4. {res2df-1.3.7 → res2df-1.3.9}/.github/workflows/style.yml +8 -8
  5. {res2df-1.3.7 → res2df-1.3.9}/.github/workflows/typing.yml +12 -8
  6. {res2df-1.3.7 → res2df-1.3.9}/.pre-commit-config.yaml +2 -2
  7. {res2df-1.3.7/src/res2df.egg-info → res2df-1.3.9}/PKG-INFO +6 -3
  8. {res2df-1.3.7 → res2df-1.3.9}/README.md +1 -1
  9. {res2df-1.3.7 → res2df-1.3.9}/docs/conf.py +1 -1
  10. {res2df-1.3.7 → res2df-1.3.9}/pyproject.toml +19 -6
  11. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/__init__.py +2 -3
  12. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/common.py +79 -75
  13. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/compdat.py +27 -32
  14. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/csv2res.py +5 -9
  15. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/equil.py +24 -29
  16. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/faults.py +2 -7
  17. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/fipreports.py +10 -14
  18. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/grid.py +61 -66
  19. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/gruptree.py +33 -35
  20. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/inferdims.py +6 -9
  21. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/nnc.py +5 -10
  22. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/parameters.py +12 -12
  23. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/pillars.py +24 -31
  24. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/pvt.py +29 -34
  25. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/res2csv.py +10 -15
  26. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/res2csvlogger.py +1 -3
  27. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/resdatafiles.py +8 -8
  28. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/rft.py +37 -44
  29. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/satfunc.py +22 -28
  30. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/summary.py +57 -60
  31. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/trans.py +16 -38
  32. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/version.py +3 -3
  33. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/vfp/__init__.py +1 -1
  34. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/vfp/_vfp.py +28 -33
  35. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/vfp/_vfpcommon.py +18 -19
  36. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/vfp/_vfpdefs.py +2 -3
  37. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/vfp/_vfpinj.py +23 -58
  38. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/vfp/_vfpprod.py +28 -64
  39. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/wcon.py +4 -11
  40. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/wellcompletiondata.py +26 -26
  41. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/wellconnstatus.py +4 -5
  42. {res2df-1.3.7 → res2df-1.3.9/src/res2df.egg-info}/PKG-INFO +6 -3
  43. {res2df-1.3.7 → res2df-1.3.9}/src/res2df.egg-info/SOURCES.txt +1 -0
  44. {res2df-1.3.7 → res2df-1.3.9}/src/res2df.egg-info/requires.txt +3 -1
  45. res2df-1.3.9/tests/__init__.py +0 -0
  46. {res2df-1.3.7 → res2df-1.3.9}/tests/test_common.py +6 -7
  47. {res2df-1.3.7 → res2df-1.3.9}/tests/test_compdat.py +6 -8
  48. {res2df-1.3.7 → res2df-1.3.9}/tests/test_eclfiles.py +1 -3
  49. {res2df-1.3.7 → res2df-1.3.9}/tests/test_equil.py +26 -27
  50. {res2df-1.3.7 → res2df-1.3.9}/tests/test_ert_hooks.py +2 -6
  51. {res2df-1.3.7 → res2df-1.3.9}/tests/test_faults.py +1 -2
  52. {res2df-1.3.7 → res2df-1.3.9}/tests/test_fipreports.py +5 -5
  53. {res2df-1.3.7 → res2df-1.3.9}/tests/test_grid.py +24 -8
  54. {res2df-1.3.7 → res2df-1.3.9}/tests/test_gruptree.py +3 -4
  55. {res2df-1.3.7 → res2df-1.3.9}/tests/test_hook_implementations.py +1 -3
  56. {res2df-1.3.7 → res2df-1.3.9}/tests/test_inferdims.py +3 -4
  57. {res2df-1.3.7 → res2df-1.3.9}/tests/test_integration.py +1 -2
  58. {res2df-1.3.7 → res2df-1.3.9}/tests/test_logging.py +13 -3
  59. {res2df-1.3.7 → res2df-1.3.9}/tests/test_nnc.py +3 -6
  60. {res2df-1.3.7 → res2df-1.3.9}/tests/test_parameters.py +3 -2
  61. {res2df-1.3.7 → res2df-1.3.9}/tests/test_pvt.py +5 -7
  62. {res2df-1.3.7 → res2df-1.3.9}/tests/test_rft.py +20 -22
  63. {res2df-1.3.7 → res2df-1.3.9}/tests/test_satfunc.py +1 -2
  64. {res2df-1.3.7 → res2df-1.3.9}/tests/test_summary.py +17 -18
  65. {res2df-1.3.7 → res2df-1.3.9}/tests/test_summary_restarts.py +4 -6
  66. {res2df-1.3.7 → res2df-1.3.9}/tests/test_trans.py +1 -10
  67. {res2df-1.3.7 → res2df-1.3.9}/tests/test_userapi.py +1 -2
  68. {res2df-1.3.7 → res2df-1.3.9}/tests/test_vfp.py +64 -73
  69. {res2df-1.3.7 → res2df-1.3.9}/tests/test_wcon.py +1 -2
  70. {res2df-1.3.7 → res2df-1.3.9}/tests/test_wellcompletiondata.py +2 -2
  71. {res2df-1.3.7 → res2df-1.3.9}/tests/test_wellconnstatus.py +2 -4
  72. {res2df-1.3.7 → res2df-1.3.9}/tests/test_welopen.py +1 -2
  73. {res2df-1.3.7 → res2df-1.3.9}/tests/test_wlist.py +1 -2
  74. {res2df-1.3.7 → res2df-1.3.9}/.gitignore +0 -0
  75. {res2df-1.3.7 → res2df-1.3.9}/CONTRIBUTING.md +0 -0
  76. {res2df-1.3.7 → res2df-1.3.9}/LICENSE +0 -0
  77. {res2df-1.3.7 → res2df-1.3.9}/SECURITY.md +0 -0
  78. {res2df-1.3.7 → res2df-1.3.9}/ci/testkomodo.sh +0 -0
  79. {res2df-1.3.7 → res2df-1.3.9}/docs/_static/equinor-logo.png +0 -0
  80. {res2df-1.3.7 → res2df-1.3.9}/docs/_static/equinor-logo2.jpg +0 -0
  81. {res2df-1.3.7 → res2df-1.3.9}/docs/_static/equinor_logo.jpg +0 -0
  82. {res2df-1.3.7 → res2df-1.3.9}/docs/_static/equinor_logo_only.jpg +0 -0
  83. {res2df-1.3.7 → res2df-1.3.9}/docs/_templates/layout.html +0 -0
  84. {res2df-1.3.7 → res2df-1.3.9}/docs/contribution.rst +0 -0
  85. {res2df-1.3.7 → res2df-1.3.9}/docs/csv2res.rst +0 -0
  86. {res2df-1.3.7 → res2df-1.3.9}/docs/glossary.rst +0 -0
  87. {res2df-1.3.7 → res2df-1.3.9}/docs/history.rst +0 -0
  88. {res2df-1.3.7 → res2df-1.3.9}/docs/index.rst +0 -0
  89. {res2df-1.3.7 → res2df-1.3.9}/docs/installation.rst +0 -0
  90. {res2df-1.3.7 → res2df-1.3.9}/docs/introduction.rst +0 -0
  91. {res2df-1.3.7 → res2df-1.3.9}/docs/res2csv.rst +0 -0
  92. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/compdat.csv +0 -0
  93. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/compdat.rst +0 -0
  94. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/equil-example.csv +0 -0
  95. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/equil.rst +0 -0
  96. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/fipnum.inc +0 -0
  97. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/fipreports-example.csv +0 -0
  98. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/fipreports-example.txt +0 -0
  99. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/fipreports.rst +0 -0
  100. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/grid.csv +0 -0
  101. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/grid.rst +0 -0
  102. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/gruptree.csv +0 -0
  103. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/gruptree.rst +0 -0
  104. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/gruptreenet.csv +0 -0
  105. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/images/injectoranalysis.png +0 -0
  106. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/images/multibranch-rftanalysis.png +0 -0
  107. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/nnc.csv +0 -0
  108. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/nnc.rst +0 -0
  109. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/outflow.csv +0 -0
  110. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/pillars-dyn1-stacked.csv +0 -0
  111. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/pillars-dyn1-unstacked.csv +0 -0
  112. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/pillars-example1.csv +0 -0
  113. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/pillars.rst +0 -0
  114. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/pvt.csv +0 -0
  115. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/pvt.rst +0 -0
  116. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/rft.rst +0 -0
  117. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/rft_columns.csv +0 -0
  118. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/satfunc.csv +0 -0
  119. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/satfunc.rst +0 -0
  120. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/summary.csv +0 -0
  121. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/summary.rst +0 -0
  122. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/trans-boundaries.csv +0 -0
  123. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/trans-group.csv +0 -0
  124. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/trans.rst +0 -0
  125. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/trans1.csv +0 -0
  126. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/wcon.csv +0 -0
  127. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/wcon.rst +0 -0
  128. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/well_connection_status.csv +0 -0
  129. {res2df-1.3.7 → res2df-1.3.9}/docs/usage/wellconnstatus.rst +0 -0
  130. {res2df-1.3.7 → res2df-1.3.9}/docs/usage.rst +0 -0
  131. {res2df-1.3.7 → res2df-1.3.9}/setup.cfg +0 -0
  132. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/__version__.py +0 -0
  133. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/constants.py +0 -0
  134. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/hook_implementations/__init__.py +0 -0
  135. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/hook_implementations/forward_model_steps.py +0 -0
  136. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/BRANPROP +0 -0
  137. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/COMPDAT +0 -0
  138. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/COMPLUMP +0 -0
  139. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/COMPSEGS +0 -0
  140. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/DENSITY +0 -0
  141. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/EQLDIMS +0 -0
  142. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/EQUIL +0 -0
  143. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/FAULTS +0 -0
  144. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/GRUPNET +0 -0
  145. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/GRUPTREE +0 -0
  146. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/NODEPROP +0 -0
  147. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/PBVD +0 -0
  148. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/PDVD +0 -0
  149. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/PVDG +0 -0
  150. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/PVDO +0 -0
  151. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/PVTG +0 -0
  152. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/PVTO +0 -0
  153. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/PVTW +0 -0
  154. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/ROCK +0 -0
  155. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/RSVD +0 -0
  156. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/RVVD +0 -0
  157. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/SGFN +0 -0
  158. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/SGOF +0 -0
  159. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/SGWFN +0 -0
  160. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/SLGOF +0 -0
  161. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/SOF2 +0 -0
  162. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/SOF3 +0 -0
  163. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/SWFN +0 -0
  164. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/SWOF +0 -0
  165. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/TABDIMS +0 -0
  166. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/VFPINJ +0 -0
  167. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/VFPPROD +0 -0
  168. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/WCONHIST +0 -0
  169. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/WCONINJE +0 -0
  170. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/WCONINJH +0 -0
  171. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/WCONPROD +0 -0
  172. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/WELOPEN +0 -0
  173. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/WELSEGS +0 -0
  174. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/WELSPECS +0 -0
  175. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/WLIST +0 -0
  176. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/WSEGAICD +0 -0
  177. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/WSEGSICD +0 -0
  178. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/WSEGVALV +0 -0
  179. {res2df-1.3.7/tests → res2df-1.3.9/src/res2df/opmkeywords}/__init__.py +0 -0
  180. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/readme +0 -0
  181. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/opmkeywords/runmetoupdate.sh +0 -0
  182. {res2df-1.3.7 → res2df-1.3.9}/src/res2df/svg_color_keyword_names.txt +0 -0
  183. {res2df-1.3.7 → res2df-1.3.9}/src/res2df.egg-info/dependency_links.txt +0 -0
  184. {res2df-1.3.7 → res2df-1.3.9}/src/res2df.egg-info/entry_points.txt +0 -0
  185. {res2df-1.3.7 → res2df-1.3.9}/src/res2df.egg-info/not-zip-safe +0 -0
  186. {res2df-1.3.7 → res2df-1.3.9}/src/res2df.egg-info/top_level.txt +0 -0
  187. {res2df-1.3.7 → res2df-1.3.9}/tests/conftest.py +0 -0
  188. {res2df-1.3.7 → res2df-1.3.9}/tests/data/eightcells/EIGHTCELLS.DATA +0 -0
  189. {res2df-1.3.7 → res2df-1.3.9}/tests/data/eightcells/EIGHTCELLS.EGRID +0 -0
  190. {res2df-1.3.7 → res2df-1.3.9}/tests/data/eightcells/EIGHTCELLS.INIT +0 -0
  191. {res2df-1.3.7 → res2df-1.3.9}/tests/data/eightcells/EIGHTCELLS.INSPEC +0 -0
  192. {res2df-1.3.7 → res2df-1.3.9}/tests/data/eightcells/EIGHTCELLS.PRT +0 -0
  193. {res2df-1.3.7 → res2df-1.3.9}/tests/data/eightcells/EIGHTCELLS.RFT +0 -0
  194. {res2df-1.3.7 → res2df-1.3.9}/tests/data/eightcells/EIGHTCELLS.RSSPEC +0 -0
  195. {res2df-1.3.7 → res2df-1.3.9}/tests/data/eightcells/EIGHTCELLS.SMSPEC +0 -0
  196. {res2df-1.3.7 → res2df-1.3.9}/tests/data/eightcells/EIGHTCELLS.UNRST +0 -0
  197. {res2df-1.3.7 → res2df-1.3.9}/tests/data/eightcells/EIGHTCELLS.UNSMRY +0 -0
  198. {res2df-1.3.7 → res2df-1.3.9}/tests/data/eightcells/eightcells_duplicated_summary_vector/EIGHTCELLS_DUPES.DATA +0 -0
  199. {res2df-1.3.7 → res2df-1.3.9}/tests/data/eightcells/eightcells_duplicated_summary_vector/EIGHTCELLS_DUPES.SMSPEC +0 -0
  200. {res2df-1.3.7 → res2df-1.3.9}/tests/data/eightcells/eightcells_duplicated_summary_vector/EIGHTCELLS_DUPES.UNSMRY +0 -0
  201. {res2df-1.3.7 → res2df-1.3.9}/tests/data/eightcells/zones.lyr +0 -0
  202. {res2df-1.3.7 → res2df-1.3.9}/tests/data/fipreports/TEST1.PRT +0 -0
  203. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/include/grid/reek.faults +0 -0
  204. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/include/grid/reek.grid +0 -0
  205. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/include/grid/reek.multflt +0 -0
  206. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/include/grid/reek.multz +0 -0
  207. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/include/grid/reek.perm +0 -0
  208. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/include/grid/reek.poro +0 -0
  209. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/include/props/let-sgof.txt +0 -0
  210. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/include/props/let-swof.txt +0 -0
  211. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/include/props/reek.endpoints +0 -0
  212. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/include/props/reek.pvt +0 -0
  213. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/include/props/reek.swatinit +0 -0
  214. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/include/props/sgof.txt +0 -0
  215. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/include/props/swof.inc +0 -0
  216. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/include/props/swof.txt +0 -0
  217. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/include/regions/reek.eqlnum +0 -0
  218. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/include/regions/reek.fipnum +0 -0
  219. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/include/schedule/op6_aicd1_gp.sch +0 -0
  220. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/include/schedule/op6_icd1_gp.sch +0 -0
  221. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/include/schedule/op6_valve1_gp.sch +0 -0
  222. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/include/schedule/reek_history.sch +0 -0
  223. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/include/solution/reek.equil +0 -0
  224. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/include/summary/reek.smry +0 -0
  225. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/model/2_R001_REEK-0-OPMFLOW.PRT +0 -0
  226. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/model/2_R001_REEK-0.DATA +0 -0
  227. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/model/2_R001_REEK-0.ECLEND +0 -0
  228. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/model/2_R001_REEK-0.EGRID +0 -0
  229. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/model/2_R001_REEK-0.INIT +0 -0
  230. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/model/2_R001_REEK-0.LOG +0 -0
  231. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/model/2_R001_REEK-0.PRT +0 -0
  232. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/model/2_R001_REEK-0.RFT +0 -0
  233. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/model/2_R001_REEK-0.SMSPEC +0 -0
  234. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/model/2_R001_REEK-0.UNRST +0 -0
  235. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/model/2_R001_REEK-0.UNSMRY +0 -0
  236. {res2df-1.3.7 → res2df-1.3.9}/tests/data/reek/eclipse/model/zones.lyr +0 -0
  237. {res2df-1.3.7 → res2df-1.3.9}/tests/data/timesteps/SHORT_STEP.DATA +0 -0
  238. {res2df-1.3.7 → res2df-1.3.9}/tests/data/timesteps/SHORT_STEP.SMSPEC +0 -0
  239. {res2df-1.3.7 → res2df-1.3.9}/tests/data/timesteps/SHORT_STEP.UNSMRY +0 -0
  240. {res2df-1.3.7 → res2df-1.3.9}/tests/data/timesteps/SHORT_STEP_LONG.DATA +0 -0
  241. {res2df-1.3.7 → res2df-1.3.9}/tests/data/timesteps/SHORT_STEP_LONG.SMSPEC +0 -0
  242. {res2df-1.3.7 → res2df-1.3.9}/tests/data/timesteps/SHORT_STEP_LONG.UNSMRY +0 -0
  243. {res2df-1.3.7 → res2df-1.3.9}/tests/data/timesteps/SHORT_STEP_WITH_TIMESTEP.DATA +0 -0
  244. {res2df-1.3.7 → res2df-1.3.9}/tests/data/timesteps/SHORT_STEP_WITH_TIMESTEP.SMSPEC +0 -0
  245. {res2df-1.3.7 → res2df-1.3.9}/tests/data/timesteps/SHORT_STEP_WITH_TIMESTEP.UNSMRY +0 -0
  246. {res2df-1.3.7 → res2df-1.3.9}/tests/data/timesteps/SHORT_STEP_WITH_TIMESTEP_LONG.DATA +0 -0
  247. {res2df-1.3.7 → res2df-1.3.9}/tests/data/timesteps/SHORT_STEP_WITH_TIMESTEP_LONG.SMSPEC +0 -0
  248. {res2df-1.3.7 → res2df-1.3.9}/tests/data/timesteps/SHORT_STEP_WITH_TIMESTEP_LONG.UNSMRY +0 -0
  249. {res2df-1.3.7 → res2df-1.3.9}/tests/test_init.py +0 -0
  250. {res2df-1.3.7 → res2df-1.3.9}/tests/test_pillars.py +0 -0
  251. {res2df-1.3.7 → res2df-1.3.9}/tests/test_zonemap.py +0 -0
@@ -26,12 +26,12 @@ jobs:
26
26
  - uses: actions/checkout@v5
27
27
 
28
28
  - name: Setup Python
29
- uses: actions/setup-python@v5
29
+ uses: actions/setup-python@v6
30
30
  with:
31
31
  python-version: 3.11
32
32
 
33
33
  - name: Install uv
34
- uses: astral-sh/setup-uv@v6
34
+ uses: astral-sh/setup-uv@v7
35
35
  with:
36
36
  enable-cache: true
37
37
  python-version: "3.11"
@@ -44,7 +44,7 @@ jobs:
44
44
  run: |
45
45
  pytest tests --disable-warnings --cov=res2df --cov-report=xml
46
46
  # Uninstall packages that res2df supports not being installed:
47
- uv pip uninstall ert networkx opm
47
+ uv pip uninstall ert opm
48
48
  # Run tests again in cov-append-mode:
49
49
  pytest tests --disable-warnings --cov=res2df --cov-report=xml --cov-append
50
50
  bash <(curl -s https://codecov.io/bash)
@@ -21,7 +21,7 @@ jobs:
21
21
  fetch-depth: 0
22
22
 
23
23
  - name: Set up Python 3.11
24
- uses: actions/setup-python@v5
24
+ uses: actions/setup-python@v6
25
25
  with:
26
26
  python-version: '3.11'
27
27
 
@@ -21,7 +21,7 @@ jobs:
21
21
  runs-on: ubuntu-latest
22
22
  strategy:
23
23
  matrix:
24
- python-version: ['3.11', '3.12']
24
+ python-version: ['3.11', '3.12', '3.13']
25
25
  include:
26
26
  # For one of the Python versions we
27
27
  # install the extra dependency ert
@@ -45,12 +45,12 @@ jobs:
45
45
  run: git fetch --unshallow --tags
46
46
 
47
47
  - name: Set up Python ${{ matrix.python-version }}
48
- uses: actions/setup-python@v5
48
+ uses: actions/setup-python@v6
49
49
  with:
50
50
  python-version: ${{ matrix.python-version }}
51
51
 
52
52
  - name: Install uv
53
- uses: astral-sh/setup-uv@v6
53
+ uses: astral-sh/setup-uv@v7
54
54
  with:
55
55
  enable-cache: true
56
56
  python-version: ${{ matrix.python-version }}
@@ -1,11 +1,11 @@
1
1
  name: Style
2
2
 
3
3
  on:
4
- push:
5
- branches:
6
- - master
7
- - 'version-**'
8
- pull_request:
4
+ push:
5
+ branches:
6
+ - master
7
+ - 'version-**'
8
+ pull_request:
9
9
 
10
10
  concurrency:
11
11
  group: ${{ github.workflow }}-${{ github.ref }}
@@ -20,7 +20,7 @@ jobs:
20
20
  runs-on: ubuntu-latest
21
21
  strategy:
22
22
  matrix:
23
- python-version: ['3.12']
23
+ python-version: ['3.13']
24
24
 
25
25
  steps:
26
26
  - uses: actions/checkout@v5
@@ -28,12 +28,12 @@ jobs:
28
28
  fetch-depth: 0
29
29
 
30
30
  - name: Set up Python ${{ matrix.python-version }}
31
- uses: actions/setup-python@v5
31
+ uses: actions/setup-python@v6
32
32
  with:
33
33
  python-version: ${{ matrix.python-version }}
34
34
 
35
35
  - name: Install uv
36
- uses: astral-sh/setup-uv@v6
36
+ uses: astral-sh/setup-uv@v7
37
37
  with:
38
38
  enable-cache: true
39
39
  python-version: ${{ matrix.python-version }}
@@ -1,11 +1,15 @@
1
1
  name: Typing
2
2
 
3
3
  on:
4
- push:
5
- branches:
6
- - master
7
- - 'version-**'
8
- pull_request:
4
+ push:
5
+ branches:
6
+ - master
7
+ - 'version-**'
8
+ pull_request:
9
+
10
+ schedule:
11
+ # Run CI every night and check that tests are working with latest dependencies
12
+ - cron: '0 0 * * *'
9
13
 
10
14
  concurrency:
11
15
  group: ${{ github.workflow }}-${{ github.ref }}
@@ -20,7 +24,7 @@ jobs:
20
24
  runs-on: ubuntu-latest
21
25
  strategy:
22
26
  matrix:
23
- python-version: ['3.12']
27
+ python-version: ['3.13']
24
28
 
25
29
  steps:
26
30
  - uses: actions/checkout@v5
@@ -28,12 +32,12 @@ jobs:
28
32
  fetch-depth: 0
29
33
 
30
34
  - name: Set up Python ${{ matrix.python-version }}
31
- uses: actions/setup-python@v5
35
+ uses: actions/setup-python@v6
32
36
  with:
33
37
  python-version: ${{ matrix.python-version }}
34
38
 
35
39
  - name: Install uv
36
- uses: astral-sh/setup-uv@v6
40
+ uses: astral-sh/setup-uv@v7
37
41
  with:
38
42
  enable-cache: true
39
43
  python-version: ${{ matrix.python-version }}
@@ -11,8 +11,8 @@ repos:
11
11
  - id: trailing-whitespace
12
12
 
13
13
  - repo: https://github.com/astral-sh/ruff-pre-commit
14
- rev: v0.12.12
14
+ rev: v0.14.3
15
15
  hooks:
16
- - id: ruff
16
+ - id: ruff-check
17
17
  args: [ --fix ]
18
18
  - id: ruff-format
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: res2df
3
- Version: 1.3.7
3
+ Version: 1.3.9
4
4
  Summary: Convert reservoir simulator input and output to DataFrames
5
5
  Author-email: Håvard Berland <havb@equinor.com>
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -689,6 +689,7 @@ Classifier: Topic :: Software Development :: Libraries
689
689
  Classifier: Topic :: Utilities
690
690
  Classifier: Programming Language :: Python :: 3.11
691
691
  Classifier: Programming Language :: Python :: 3.12
692
+ Classifier: Programming Language :: Python :: 3.13
692
693
  Classifier: Natural Language :: English
693
694
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
694
695
  Requires-Python: >=3.11
@@ -696,6 +697,7 @@ Description-Content-Type: text/markdown
696
697
  License-File: LICENSE
697
698
  Requires-Dist: resdata>=5.0.0-b0
698
699
  Requires-Dist: resfo
700
+ Requires-Dist: networkx
699
701
  Requires-Dist: numpy
700
702
  Requires-Dist: opm>=2020.10.2
701
703
  Requires-Dist: pandas
@@ -703,7 +705,6 @@ Requires-Dist: pyarrow
703
705
  Requires-Dist: pyyaml>=5.1
704
706
  Requires-Dist: treelib
705
707
  Provides-Extra: tests
706
- Requires-Dist: networkx; extra == "tests"
707
708
  Requires-Dist: pytest; extra == "tests"
708
709
  Requires-Dist: pytest-cov; extra == "tests"
709
710
  Requires-Dist: pytest-mock; extra == "tests"
@@ -715,6 +716,8 @@ Requires-Dist: mypy; extra == "types"
715
716
  Requires-Dist: types-PyYAML; extra == "types"
716
717
  Requires-Dist: types-python-dateutil; extra == "types"
717
718
  Requires-Dist: types-setuptools; extra == "types"
719
+ Requires-Dist: types-networkx; extra == "types"
720
+ Requires-Dist: pandas-stubs; extra == "types"
718
721
  Provides-Extra: docs
719
722
  Requires-Dist: autoapi; extra == "docs"
720
723
  Requires-Dist: ipython; extra == "docs"
@@ -731,7 +734,7 @@ Dynamic: license-file
731
734
  [![Publish to PyPI](https://github.com/equinor/res2df/actions/workflows/publish.yml/badge.svg)](https://github.com/equinor/res2df/actions/workflows/publish.yml)
732
735
  [![PyPI version](https://img.shields.io/pypi/v/res2df.svg)](https://pypi.org/project/res2df/)
733
736
  [![codecov](https://codecov.io/gh/equinor/res2df/graph/badge.svg?token=3sZBGGu5VG)](https://codecov.io/gh/equinor/res2df)
734
- [![Python 3.11-3.12](https://img.shields.io/badge/python-3.11%20|%203.12-blue.svg)](https://www.python.org)
737
+ [![Python 3.11-3.13](https://img.shields.io/badge/python-3.11%20|%203.12%20|%203.13-blue.svg)](https://www.python.org)
735
738
  [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
736
739
  [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
737
740
 
@@ -1,7 +1,7 @@
1
1
  [![Publish to PyPI](https://github.com/equinor/res2df/actions/workflows/publish.yml/badge.svg)](https://github.com/equinor/res2df/actions/workflows/publish.yml)
2
2
  [![PyPI version](https://img.shields.io/pypi/v/res2df.svg)](https://pypi.org/project/res2df/)
3
3
  [![codecov](https://codecov.io/gh/equinor/res2df/graph/badge.svg?token=3sZBGGu5VG)](https://codecov.io/gh/equinor/res2df)
4
- [![Python 3.11-3.12](https://img.shields.io/badge/python-3.11%20|%203.12-blue.svg)](https://www.python.org)
4
+ [![Python 3.11-3.13](https://img.shields.io/badge/python-3.11%20|%203.12%20|%203.13-blue.svg)](https://www.python.org)
5
5
  [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
6
6
  [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
7
7
 
@@ -24,7 +24,7 @@ author = "Håvard Berland"
24
24
  copyright = f"Equinor 2019-{datetime.datetime.now().year}"
25
25
 
26
26
  # The short X.Y version
27
- import res2df # noqa
27
+ import res2df # noqa: F401, E402
28
28
 
29
29
  release = metadata.version("res2df")
30
30
  version = release
@@ -26,6 +26,7 @@ classifiers = [
26
26
  "Topic :: Utilities",
27
27
  "Programming Language :: Python :: 3.11",
28
28
  "Programming Language :: Python :: 3.12",
29
+ "Programming Language :: Python :: 3.13",
29
30
  "Natural Language :: English",
30
31
  "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
31
32
  ]
@@ -35,6 +36,7 @@ dynamic = ["version"]
35
36
  dependencies= [
36
37
  "resdata>=5.0.0-b0",
37
38
  "resfo",
39
+ "networkx",
38
40
  "numpy",
39
41
  "opm>=2020.10.2",
40
42
  "pandas",
@@ -45,7 +47,6 @@ dependencies= [
45
47
 
46
48
  [project.optional-dependencies]
47
49
  tests = [
48
- "networkx",
49
50
  "pytest",
50
51
  "pytest-cov",
51
52
  "pytest-mock",
@@ -56,7 +57,9 @@ types = [
56
57
  "mypy",
57
58
  "types-PyYAML",
58
59
  "types-python-dateutil",
59
- "types-setuptools"
60
+ "types-setuptools",
61
+ "types-networkx",
62
+ "pandas-stubs",
60
63
  ]
61
64
  docs = [
62
65
  "autoapi",
@@ -97,12 +100,17 @@ res2df = "src/res2df"
97
100
  res2df = ["opmkeywords/*", "py.typed", "svg_color_keyword_names.txt"]
98
101
 
99
102
  [tool.mypy]
103
+ strict_equality = true
104
+ extra_checks = true
105
+
106
+ [[tool.mypy.overrides]]
107
+ module = [
108
+ "opm.*",
109
+ "pyarrow", # should be removed for pyarrow > 21.0.0
110
+ "resdata.*",
111
+ ]
100
112
  ignore_missing_imports = true
101
113
 
102
- [tool.pylint]
103
- # Module docstrings are not required
104
- disable = "missing-module-docstring"
105
-
106
114
  [tool.pytest.ini_options]
107
115
  markers = [
108
116
  "integration: marks a test as an integration test",
@@ -127,6 +135,9 @@ select = [
127
135
  "PL", # pylint
128
136
  "NPY", # numpy specific rules
129
137
  "C4", # flake8-comprehensions
138
+ "PD", # pandas-vet
139
+ "RUF", # ruff specific rules
140
+ "UP", # pyupgrade
130
141
  ]
131
142
  preview = true
132
143
  ignore = [
@@ -143,10 +154,12 @@ ignore = [
143
154
  "PLR0904", # too-many-public-methods
144
155
  "PLR1702", # too-many-nested-blocks
145
156
  "PLW3201", # bad-dunder-method-name
157
+ "PD013", # pandas-use-of-dot-stack
146
158
  ]
147
159
 
148
160
  [tool.ruff.lint.extend-per-file-ignores]
149
161
  "src/res2df/__init__.py" = ["PLC0414"]
162
+ "tests/*" = ["RUF005"]
150
163
 
151
164
  [tool.ruff.lint.pylint]
152
165
  max-args = 20
@@ -1,11 +1,10 @@
1
1
  import importlib
2
- from typing import List
3
2
 
4
3
  from .__version__ import __version__ as __version__
5
4
  from .res2csvlogger import getLogger_res2csv as getLogger_res2csv
6
5
  from .resdatafiles import ResdataFiles as ResdataFiles
7
6
 
8
- SUBMODULES: List[str] = [
7
+ SUBMODULES: list[str] = [
9
8
  "compdat",
10
9
  "equil",
11
10
  "faults",
@@ -26,5 +25,5 @@ SUBMODULES: List[str] = [
26
25
  ]
27
26
 
28
27
 
29
- for submodule in SUBMODULES + ["res2csv", "csv2res"]:
28
+ for submodule in [*SUBMODULES, "res2csv", "csv2res"]:
30
29
  importlib.import_module("res2df." + submodule)