res2df 1.3.6__tar.gz → 1.3.7__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 (250) hide show
  1. {res2df-1.3.6 → res2df-1.3.7}/.github/workflows/codecov.yml +10 -5
  2. {res2df-1.3.6 → res2df-1.3.7}/.github/workflows/publish.yml +1 -1
  3. {res2df-1.3.6 → res2df-1.3.7}/.github/workflows/res2df.yml +11 -6
  4. {res2df-1.3.6 → res2df-1.3.7}/.github/workflows/style.yml +11 -3
  5. {res2df-1.3.6 → res2df-1.3.7}/.github/workflows/typing.yml +11 -3
  6. {res2df-1.3.6 → res2df-1.3.7}/.pre-commit-config.yaml +2 -4
  7. {res2df-1.3.6/src/res2df.egg-info → res2df-1.3.7}/PKG-INFO +1 -1
  8. {res2df-1.3.6 → res2df-1.3.7}/pyproject.toml +0 -1
  9. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/grid.py +5 -7
  10. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/nnc.py +4 -3
  11. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/version.py +16 -3
  12. {res2df-1.3.6 → res2df-1.3.7/src/res2df.egg-info}/PKG-INFO +1 -1
  13. {res2df-1.3.6 → res2df-1.3.7}/tests/test_grid.py +22 -2
  14. {res2df-1.3.6 → res2df-1.3.7}/.gitignore +0 -0
  15. {res2df-1.3.6 → res2df-1.3.7}/CONTRIBUTING.md +0 -0
  16. {res2df-1.3.6 → res2df-1.3.7}/LICENSE +0 -0
  17. {res2df-1.3.6 → res2df-1.3.7}/README.md +0 -0
  18. {res2df-1.3.6 → res2df-1.3.7}/SECURITY.md +0 -0
  19. {res2df-1.3.6 → res2df-1.3.7}/ci/testkomodo.sh +0 -0
  20. {res2df-1.3.6 → res2df-1.3.7}/docs/_static/equinor-logo.png +0 -0
  21. {res2df-1.3.6 → res2df-1.3.7}/docs/_static/equinor-logo2.jpg +0 -0
  22. {res2df-1.3.6 → res2df-1.3.7}/docs/_static/equinor_logo.jpg +0 -0
  23. {res2df-1.3.6 → res2df-1.3.7}/docs/_static/equinor_logo_only.jpg +0 -0
  24. {res2df-1.3.6 → res2df-1.3.7}/docs/_templates/layout.html +0 -0
  25. {res2df-1.3.6 → res2df-1.3.7}/docs/conf.py +0 -0
  26. {res2df-1.3.6 → res2df-1.3.7}/docs/contribution.rst +0 -0
  27. {res2df-1.3.6 → res2df-1.3.7}/docs/csv2res.rst +0 -0
  28. {res2df-1.3.6 → res2df-1.3.7}/docs/glossary.rst +0 -0
  29. {res2df-1.3.6 → res2df-1.3.7}/docs/history.rst +0 -0
  30. {res2df-1.3.6 → res2df-1.3.7}/docs/index.rst +0 -0
  31. {res2df-1.3.6 → res2df-1.3.7}/docs/installation.rst +0 -0
  32. {res2df-1.3.6 → res2df-1.3.7}/docs/introduction.rst +0 -0
  33. {res2df-1.3.6 → res2df-1.3.7}/docs/res2csv.rst +0 -0
  34. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/compdat.csv +0 -0
  35. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/compdat.rst +0 -0
  36. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/equil-example.csv +0 -0
  37. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/equil.rst +0 -0
  38. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/fipnum.inc +0 -0
  39. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/fipreports-example.csv +0 -0
  40. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/fipreports-example.txt +0 -0
  41. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/fipreports.rst +0 -0
  42. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/grid.csv +0 -0
  43. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/grid.rst +0 -0
  44. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/gruptree.csv +0 -0
  45. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/gruptree.rst +0 -0
  46. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/gruptreenet.csv +0 -0
  47. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/images/injectoranalysis.png +0 -0
  48. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/images/multibranch-rftanalysis.png +0 -0
  49. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/nnc.csv +0 -0
  50. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/nnc.rst +0 -0
  51. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/outflow.csv +0 -0
  52. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/pillars-dyn1-stacked.csv +0 -0
  53. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/pillars-dyn1-unstacked.csv +0 -0
  54. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/pillars-example1.csv +0 -0
  55. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/pillars.rst +0 -0
  56. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/pvt.csv +0 -0
  57. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/pvt.rst +0 -0
  58. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/rft.rst +0 -0
  59. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/rft_columns.csv +0 -0
  60. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/satfunc.csv +0 -0
  61. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/satfunc.rst +0 -0
  62. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/summary.csv +0 -0
  63. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/summary.rst +0 -0
  64. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/trans-boundaries.csv +0 -0
  65. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/trans-group.csv +0 -0
  66. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/trans.rst +0 -0
  67. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/trans1.csv +0 -0
  68. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/wcon.csv +0 -0
  69. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/wcon.rst +0 -0
  70. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/well_connection_status.csv +0 -0
  71. {res2df-1.3.6 → res2df-1.3.7}/docs/usage/wellconnstatus.rst +0 -0
  72. {res2df-1.3.6 → res2df-1.3.7}/docs/usage.rst +0 -0
  73. {res2df-1.3.6 → res2df-1.3.7}/setup.cfg +0 -0
  74. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/__init__.py +0 -0
  75. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/__version__.py +0 -0
  76. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/common.py +0 -0
  77. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/compdat.py +0 -0
  78. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/constants.py +0 -0
  79. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/csv2res.py +0 -0
  80. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/equil.py +0 -0
  81. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/faults.py +0 -0
  82. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/fipreports.py +0 -0
  83. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/gruptree.py +0 -0
  84. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/hook_implementations/__init__.py +0 -0
  85. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/hook_implementations/forward_model_steps.py +0 -0
  86. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/inferdims.py +0 -0
  87. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/BRANPROP +0 -0
  88. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/COMPDAT +0 -0
  89. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/COMPLUMP +0 -0
  90. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/COMPSEGS +0 -0
  91. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/DENSITY +0 -0
  92. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/EQLDIMS +0 -0
  93. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/EQUIL +0 -0
  94. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/FAULTS +0 -0
  95. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/GRUPNET +0 -0
  96. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/GRUPTREE +0 -0
  97. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/NODEPROP +0 -0
  98. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/PBVD +0 -0
  99. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/PDVD +0 -0
  100. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/PVDG +0 -0
  101. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/PVDO +0 -0
  102. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/PVTG +0 -0
  103. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/PVTO +0 -0
  104. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/PVTW +0 -0
  105. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/ROCK +0 -0
  106. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/RSVD +0 -0
  107. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/RVVD +0 -0
  108. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/SGFN +0 -0
  109. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/SGOF +0 -0
  110. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/SGWFN +0 -0
  111. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/SLGOF +0 -0
  112. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/SOF2 +0 -0
  113. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/SOF3 +0 -0
  114. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/SWFN +0 -0
  115. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/SWOF +0 -0
  116. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/TABDIMS +0 -0
  117. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/VFPINJ +0 -0
  118. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/VFPPROD +0 -0
  119. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/WCONHIST +0 -0
  120. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/WCONINJE +0 -0
  121. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/WCONINJH +0 -0
  122. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/WCONPROD +0 -0
  123. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/WELOPEN +0 -0
  124. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/WELSEGS +0 -0
  125. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/WELSPECS +0 -0
  126. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/WLIST +0 -0
  127. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/WSEGAICD +0 -0
  128. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/WSEGSICD +0 -0
  129. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/WSEGVALV +0 -0
  130. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/readme +0 -0
  131. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/opmkeywords/runmetoupdate.sh +0 -0
  132. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/parameters.py +0 -0
  133. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/pillars.py +0 -0
  134. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/pvt.py +0 -0
  135. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/res2csv.py +0 -0
  136. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/res2csvlogger.py +0 -0
  137. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/resdatafiles.py +0 -0
  138. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/rft.py +0 -0
  139. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/satfunc.py +0 -0
  140. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/summary.py +0 -0
  141. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/svg_color_keyword_names.txt +0 -0
  142. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/trans.py +0 -0
  143. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/vfp/__init__.py +0 -0
  144. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/vfp/_vfp.py +0 -0
  145. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/vfp/_vfpcommon.py +0 -0
  146. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/vfp/_vfpdefs.py +0 -0
  147. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/vfp/_vfpinj.py +0 -0
  148. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/vfp/_vfpprod.py +0 -0
  149. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/wcon.py +0 -0
  150. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/wellcompletiondata.py +0 -0
  151. {res2df-1.3.6 → res2df-1.3.7}/src/res2df/wellconnstatus.py +0 -0
  152. {res2df-1.3.6 → res2df-1.3.7}/src/res2df.egg-info/SOURCES.txt +0 -0
  153. {res2df-1.3.6 → res2df-1.3.7}/src/res2df.egg-info/dependency_links.txt +0 -0
  154. {res2df-1.3.6 → res2df-1.3.7}/src/res2df.egg-info/entry_points.txt +0 -0
  155. {res2df-1.3.6 → res2df-1.3.7}/src/res2df.egg-info/not-zip-safe +0 -0
  156. {res2df-1.3.6 → res2df-1.3.7}/src/res2df.egg-info/requires.txt +0 -0
  157. {res2df-1.3.6 → res2df-1.3.7}/src/res2df.egg-info/top_level.txt +0 -0
  158. {res2df-1.3.6 → res2df-1.3.7}/tests/__init__.py +0 -0
  159. {res2df-1.3.6 → res2df-1.3.7}/tests/conftest.py +0 -0
  160. {res2df-1.3.6 → res2df-1.3.7}/tests/data/eightcells/EIGHTCELLS.DATA +0 -0
  161. {res2df-1.3.6 → res2df-1.3.7}/tests/data/eightcells/EIGHTCELLS.EGRID +0 -0
  162. {res2df-1.3.6 → res2df-1.3.7}/tests/data/eightcells/EIGHTCELLS.INIT +0 -0
  163. {res2df-1.3.6 → res2df-1.3.7}/tests/data/eightcells/EIGHTCELLS.INSPEC +0 -0
  164. {res2df-1.3.6 → res2df-1.3.7}/tests/data/eightcells/EIGHTCELLS.PRT +0 -0
  165. {res2df-1.3.6 → res2df-1.3.7}/tests/data/eightcells/EIGHTCELLS.RFT +0 -0
  166. {res2df-1.3.6 → res2df-1.3.7}/tests/data/eightcells/EIGHTCELLS.RSSPEC +0 -0
  167. {res2df-1.3.6 → res2df-1.3.7}/tests/data/eightcells/EIGHTCELLS.SMSPEC +0 -0
  168. {res2df-1.3.6 → res2df-1.3.7}/tests/data/eightcells/EIGHTCELLS.UNRST +0 -0
  169. {res2df-1.3.6 → res2df-1.3.7}/tests/data/eightcells/EIGHTCELLS.UNSMRY +0 -0
  170. {res2df-1.3.6 → res2df-1.3.7}/tests/data/eightcells/eightcells_duplicated_summary_vector/EIGHTCELLS_DUPES.DATA +0 -0
  171. {res2df-1.3.6 → res2df-1.3.7}/tests/data/eightcells/eightcells_duplicated_summary_vector/EIGHTCELLS_DUPES.SMSPEC +0 -0
  172. {res2df-1.3.6 → res2df-1.3.7}/tests/data/eightcells/eightcells_duplicated_summary_vector/EIGHTCELLS_DUPES.UNSMRY +0 -0
  173. {res2df-1.3.6 → res2df-1.3.7}/tests/data/eightcells/zones.lyr +0 -0
  174. {res2df-1.3.6 → res2df-1.3.7}/tests/data/fipreports/TEST1.PRT +0 -0
  175. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/include/grid/reek.faults +0 -0
  176. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/include/grid/reek.grid +0 -0
  177. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/include/grid/reek.multflt +0 -0
  178. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/include/grid/reek.multz +0 -0
  179. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/include/grid/reek.perm +0 -0
  180. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/include/grid/reek.poro +0 -0
  181. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/include/props/let-sgof.txt +0 -0
  182. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/include/props/let-swof.txt +0 -0
  183. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/include/props/reek.endpoints +0 -0
  184. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/include/props/reek.pvt +0 -0
  185. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/include/props/reek.swatinit +0 -0
  186. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/include/props/sgof.txt +0 -0
  187. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/include/props/swof.inc +0 -0
  188. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/include/props/swof.txt +0 -0
  189. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/include/regions/reek.eqlnum +0 -0
  190. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/include/regions/reek.fipnum +0 -0
  191. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/include/schedule/op6_aicd1_gp.sch +0 -0
  192. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/include/schedule/op6_icd1_gp.sch +0 -0
  193. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/include/schedule/op6_valve1_gp.sch +0 -0
  194. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/include/schedule/reek_history.sch +0 -0
  195. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/include/solution/reek.equil +0 -0
  196. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/include/summary/reek.smry +0 -0
  197. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/model/2_R001_REEK-0-OPMFLOW.PRT +0 -0
  198. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/model/2_R001_REEK-0.DATA +0 -0
  199. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/model/2_R001_REEK-0.ECLEND +0 -0
  200. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/model/2_R001_REEK-0.EGRID +0 -0
  201. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/model/2_R001_REEK-0.INIT +0 -0
  202. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/model/2_R001_REEK-0.LOG +0 -0
  203. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/model/2_R001_REEK-0.PRT +0 -0
  204. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/model/2_R001_REEK-0.RFT +0 -0
  205. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/model/2_R001_REEK-0.SMSPEC +0 -0
  206. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/model/2_R001_REEK-0.UNRST +0 -0
  207. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/model/2_R001_REEK-0.UNSMRY +0 -0
  208. {res2df-1.3.6 → res2df-1.3.7}/tests/data/reek/eclipse/model/zones.lyr +0 -0
  209. {res2df-1.3.6 → res2df-1.3.7}/tests/data/timesteps/SHORT_STEP.DATA +0 -0
  210. {res2df-1.3.6 → res2df-1.3.7}/tests/data/timesteps/SHORT_STEP.SMSPEC +0 -0
  211. {res2df-1.3.6 → res2df-1.3.7}/tests/data/timesteps/SHORT_STEP.UNSMRY +0 -0
  212. {res2df-1.3.6 → res2df-1.3.7}/tests/data/timesteps/SHORT_STEP_LONG.DATA +0 -0
  213. {res2df-1.3.6 → res2df-1.3.7}/tests/data/timesteps/SHORT_STEP_LONG.SMSPEC +0 -0
  214. {res2df-1.3.6 → res2df-1.3.7}/tests/data/timesteps/SHORT_STEP_LONG.UNSMRY +0 -0
  215. {res2df-1.3.6 → res2df-1.3.7}/tests/data/timesteps/SHORT_STEP_WITH_TIMESTEP.DATA +0 -0
  216. {res2df-1.3.6 → res2df-1.3.7}/tests/data/timesteps/SHORT_STEP_WITH_TIMESTEP.SMSPEC +0 -0
  217. {res2df-1.3.6 → res2df-1.3.7}/tests/data/timesteps/SHORT_STEP_WITH_TIMESTEP.UNSMRY +0 -0
  218. {res2df-1.3.6 → res2df-1.3.7}/tests/data/timesteps/SHORT_STEP_WITH_TIMESTEP_LONG.DATA +0 -0
  219. {res2df-1.3.6 → res2df-1.3.7}/tests/data/timesteps/SHORT_STEP_WITH_TIMESTEP_LONG.SMSPEC +0 -0
  220. {res2df-1.3.6 → res2df-1.3.7}/tests/data/timesteps/SHORT_STEP_WITH_TIMESTEP_LONG.UNSMRY +0 -0
  221. {res2df-1.3.6 → res2df-1.3.7}/tests/test_common.py +0 -0
  222. {res2df-1.3.6 → res2df-1.3.7}/tests/test_compdat.py +0 -0
  223. {res2df-1.3.6 → res2df-1.3.7}/tests/test_eclfiles.py +0 -0
  224. {res2df-1.3.6 → res2df-1.3.7}/tests/test_equil.py +0 -0
  225. {res2df-1.3.6 → res2df-1.3.7}/tests/test_ert_hooks.py +0 -0
  226. {res2df-1.3.6 → res2df-1.3.7}/tests/test_faults.py +0 -0
  227. {res2df-1.3.6 → res2df-1.3.7}/tests/test_fipreports.py +0 -0
  228. {res2df-1.3.6 → res2df-1.3.7}/tests/test_gruptree.py +0 -0
  229. {res2df-1.3.6 → res2df-1.3.7}/tests/test_hook_implementations.py +0 -0
  230. {res2df-1.3.6 → res2df-1.3.7}/tests/test_inferdims.py +0 -0
  231. {res2df-1.3.6 → res2df-1.3.7}/tests/test_init.py +0 -0
  232. {res2df-1.3.6 → res2df-1.3.7}/tests/test_integration.py +0 -0
  233. {res2df-1.3.6 → res2df-1.3.7}/tests/test_logging.py +0 -0
  234. {res2df-1.3.6 → res2df-1.3.7}/tests/test_nnc.py +0 -0
  235. {res2df-1.3.6 → res2df-1.3.7}/tests/test_parameters.py +0 -0
  236. {res2df-1.3.6 → res2df-1.3.7}/tests/test_pillars.py +0 -0
  237. {res2df-1.3.6 → res2df-1.3.7}/tests/test_pvt.py +0 -0
  238. {res2df-1.3.6 → res2df-1.3.7}/tests/test_rft.py +0 -0
  239. {res2df-1.3.6 → res2df-1.3.7}/tests/test_satfunc.py +0 -0
  240. {res2df-1.3.6 → res2df-1.3.7}/tests/test_summary.py +0 -0
  241. {res2df-1.3.6 → res2df-1.3.7}/tests/test_summary_restarts.py +0 -0
  242. {res2df-1.3.6 → res2df-1.3.7}/tests/test_trans.py +0 -0
  243. {res2df-1.3.6 → res2df-1.3.7}/tests/test_userapi.py +0 -0
  244. {res2df-1.3.6 → res2df-1.3.7}/tests/test_vfp.py +0 -0
  245. {res2df-1.3.6 → res2df-1.3.7}/tests/test_wcon.py +0 -0
  246. {res2df-1.3.6 → res2df-1.3.7}/tests/test_wellcompletiondata.py +0 -0
  247. {res2df-1.3.6 → res2df-1.3.7}/tests/test_wellconnstatus.py +0 -0
  248. {res2df-1.3.6 → res2df-1.3.7}/tests/test_welopen.py +0 -0
  249. {res2df-1.3.6 → res2df-1.3.7}/tests/test_wlist.py +0 -0
  250. {res2df-1.3.6 → res2df-1.3.7}/tests/test_zonemap.py +0 -0
@@ -14,6 +14,7 @@ jobs:
14
14
  env:
15
15
  OS: ${{ matrix.os }}
16
16
  PYTHON: '3.11'
17
+ UV_SYSTEM_PYTHON: 1
17
18
 
18
19
  steps:
19
20
 
@@ -22,24 +23,28 @@ jobs:
22
23
  sudo apt-get update
23
24
  sudo apt-get install libegl1
24
25
 
25
- - uses: actions/checkout@v4
26
+ - uses: actions/checkout@v5
26
27
 
27
28
  - name: Setup Python
28
29
  uses: actions/setup-python@v5
29
30
  with:
30
31
  python-version: 3.11
31
- cache: "pip"
32
+
33
+ - name: Install uv
34
+ uses: astral-sh/setup-uv@v6
35
+ with:
36
+ enable-cache: true
37
+ python-version: "3.11"
32
38
 
33
39
  - name: Install res2df
34
40
  run: |
35
- pip install pip -U
36
- pip install .[tests,ert]
41
+ uv pip install ".[tests, ert]"
37
42
 
38
43
  - name: Generate coverage report and upload
39
44
  run: |
40
45
  pytest tests --disable-warnings --cov=res2df --cov-report=xml
41
46
  # Uninstall packages that res2df supports not being installed:
42
- pip uninstall --yes ert networkx opm
47
+ uv pip uninstall ert networkx opm
43
48
  # Run tests again in cov-append-mode:
44
49
  pytest tests --disable-warnings --cov=res2df --cov-report=xml --cov-append
45
50
  bash <(curl -s https://codecov.io/bash)
@@ -16,7 +16,7 @@ jobs:
16
16
 
17
17
  steps:
18
18
  - name: Checkout
19
- uses: actions/checkout@v4
19
+ uses: actions/checkout@v5
20
20
  with:
21
21
  fetch-depth: 0
22
22
 
@@ -14,6 +14,7 @@ on:
14
14
 
15
15
  env:
16
16
  ERT_SHOW_BACKTRACE: 1
17
+ UV_SYSTEM_PYTHON: 1
17
18
 
18
19
  jobs:
19
20
  res2df:
@@ -36,7 +37,7 @@ jobs:
36
37
  sudo apt-get install libegl1
37
38
 
38
39
  - name: Checkout commit locally
39
- uses: actions/checkout@v4
40
+ uses: actions/checkout@v5
40
41
 
41
42
  - name: Checkout tags
42
43
  # This seems necessary for setuptools_scm to be able to infer
@@ -47,20 +48,24 @@ jobs:
47
48
  uses: actions/setup-python@v5
48
49
  with:
49
50
  python-version: ${{ matrix.python-version }}
50
- cache: "pip"
51
+
52
+ - name: Install uv
53
+ uses: astral-sh/setup-uv@v6
54
+ with:
55
+ enable-cache: true
56
+ python-version: ${{ matrix.python-version }}
51
57
 
52
58
  - name: Install res2df with dependencies
53
59
  run: |
54
- pip install --upgrade pip
55
- pip install ".[tests, docs]"
60
+ uv pip install ".[tests, docs]"
56
61
 
57
62
 
58
63
  - name: Install ert
59
64
  if: matrix.install-ert
60
- run: pip install ".[ert]"
65
+ run: uv pip install ".[ert]"
61
66
 
62
67
  - name: List all installed packages
63
- run: pip freeze
68
+ run: uv pip freeze
64
69
 
65
70
  - name: Run tests
66
71
  run: |
@@ -11,6 +11,9 @@ concurrency:
11
11
  group: ${{ github.workflow }}-${{ github.ref }}
12
12
  cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
13
13
 
14
+ env:
15
+ UV_SYSTEM_PYTHON: 1
16
+
14
17
  jobs:
15
18
  check-style:
16
19
  timeout-minutes: 15
@@ -20,7 +23,7 @@ jobs:
20
23
  python-version: ['3.12']
21
24
 
22
25
  steps:
23
- - uses: actions/checkout@v4
26
+ - uses: actions/checkout@v5
24
27
  with:
25
28
  fetch-depth: 0
26
29
 
@@ -28,11 +31,16 @@ jobs:
28
31
  uses: actions/setup-python@v5
29
32
  with:
30
33
  python-version: ${{ matrix.python-version }}
31
- cache: "pip"
34
+
35
+ - name: Install uv
36
+ uses: astral-sh/setup-uv@v6
37
+ with:
38
+ enable-cache: true
39
+ python-version: ${{ matrix.python-version }}
32
40
 
33
41
  - name: Install res2df with style dependencies
34
42
  run: |
35
- pip install ".[style]"
43
+ uv pip install ".[style]"
36
44
 
37
45
  - name: Run style check
38
46
  if: ${{ always() }}
@@ -11,6 +11,9 @@ concurrency:
11
11
  group: ${{ github.workflow }}-${{ github.ref }}
12
12
  cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
13
13
 
14
+ env:
15
+ UV_SYSTEM_PYTHON: 1
16
+
14
17
  jobs:
15
18
  check-style:
16
19
  timeout-minutes: 15
@@ -20,7 +23,7 @@ jobs:
20
23
  python-version: ['3.12']
21
24
 
22
25
  steps:
23
- - uses: actions/checkout@v4
26
+ - uses: actions/checkout@v5
24
27
  with:
25
28
  fetch-depth: 0
26
29
 
@@ -28,11 +31,16 @@ jobs:
28
31
  uses: actions/setup-python@v5
29
32
  with:
30
33
  python-version: ${{ matrix.python-version }}
31
- cache: "pip"
34
+
35
+ - name: Install uv
36
+ uses: astral-sh/setup-uv@v6
37
+ with:
38
+ enable-cache: true
39
+ python-version: ${{ matrix.python-version }}
32
40
 
33
41
  - name: Install res2df with types dependencies
34
42
  run: |
35
- pip install ".[types]"
43
+ uv pip install ".[types]"
36
44
 
37
45
  - name: Run mypy
38
46
  run: |
@@ -1,19 +1,17 @@
1
1
  repos:
2
2
  - repo: https://github.com/pre-commit/pre-commit-hooks
3
- rev: v5.0.0
3
+ rev: v6.0.0
4
4
  hooks:
5
5
  - id: no-commit-to-branch
6
6
  args: ['--branch', 'master']
7
7
  - id: check-yaml
8
8
  - id: debug-statements
9
9
  - id: end-of-file-fixer
10
- - id: fix-encoding-pragma
11
- args: [--remove]
12
10
  - id: mixed-line-ending
13
11
  - id: trailing-whitespace
14
12
 
15
13
  - repo: https://github.com/astral-sh/ruff-pre-commit
16
- rev: v0.9.2
14
+ rev: v0.12.12
17
15
  hooks:
18
16
  - id: ruff
19
17
  args: [ --fix ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: res2df
3
- Version: 1.3.6
3
+ Version: 1.3.7
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
@@ -2,7 +2,6 @@
2
2
  requires = [
3
3
  "setuptools>=28",
4
4
  "setuptools_scm",
5
- "wheel"
6
5
  ]
7
6
  build-backend = "setuptools.build_meta"
8
7
 
@@ -438,13 +438,12 @@ def init2df(
438
438
  usevectors = []
439
439
  include_porv = False
440
440
  for vec in init.headers:
441
- if vec[1] == egrid.getNumActive() and any(
441
+ if vec[0] == "PORV" and any(fnmatch.fnmatch("PORV", key) for key in vectors):
442
+ include_porv = True
443
+ elif vec[1] == egrid.getNumActive() and any(
442
444
  fnmatch.fnmatch(vec[0], key) for key in vectors
443
445
  ):
444
446
  usevectors.append(vec[0])
445
- if vec[0] == "PORV" and any(fnmatch.fnmatch("PORV", key) for key in vectors):
446
- include_porv = True
447
-
448
447
  if usevectors:
449
448
  init_df = pd.DataFrame(
450
449
  columns=usevectors,
@@ -465,8 +464,6 @@ def init2df(
465
464
  else:
466
465
  init_df = pd.DataFrame() # empty
467
466
 
468
- logger.info("Extracted %s from INIT file", str(init_df.columns.values))
469
-
470
467
  # PORV is indexed by active_index, not global, needs special treatment:
471
468
  if include_porv:
472
469
  porv_numpy = init.iget_named_kw("PORV", 0).numpyView()
@@ -474,7 +471,8 @@ def init2df(
474
471
  egrid.get_global_index(active_index=ix)
475
472
  for ix in range(egrid.getNumActive())
476
473
  ]
477
- init_df["PORV"] = porv_numpy[glob_idxs].reshape(-1, 1)
474
+ init_df["PORV"] = porv_numpy[glob_idxs]
475
+ logger.info("Extracted %s from INIT file", str(init_df.columns.values))
478
476
  return init_df
479
477
 
480
478
 
@@ -60,7 +60,7 @@ def df(
60
60
  # Grid indices for first cell in cell pairs, into a vertical
61
61
  # vector. The indices are "global" in resdata terms, and are
62
62
  # 1-based (FORTRAN). Convert to zero-based before sending to get_ijk()
63
- nnc1 = egrid_file["NNC1"][0].numpy_view().reshape(-1, 1)
63
+ nnc1 = egrid_file["NNC1"][0].numpy_view()
64
64
  logger.info(
65
65
  "NNC1: len: %d, min: %d, max: %d (global indices)",
66
66
  len(nnc1),
@@ -76,7 +76,8 @@ def df(
76
76
  nnc1_df[idx_cols1] += 1
77
77
 
78
78
  # Grid indices for second cell in cell pairs
79
- nnc2 = egrid_file["NNC2"][0].numpy_view().reshape(-1, 1)
79
+ nnc2 = egrid_file["NNC2"][0].numpy_view()
80
+
80
81
  logger.info(
81
82
  "NNC2: len: %d, min: %d, max: %d (global indices)",
82
83
  len(nnc2),
@@ -91,7 +92,7 @@ def df(
91
92
  nnc2_df[idx_cols2] += 1
92
93
 
93
94
  # Obtain transmissibility value, corresponding to the cell pairs above.
94
- tran = init_file["TRANNNC"][0].numpy_view().reshape(-1, 1)
95
+ tran = init_file["TRANNNC"][0].numpy_view()
95
96
  logger.info(
96
97
  "TRANNNC: len: %d, min: %f, max: %f, mean=%f",
97
98
  len(tran),
@@ -1,7 +1,14 @@
1
1
  # file generated by setuptools-scm
2
2
  # don't change, don't track in version control
3
3
 
4
- __all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
4
+ __all__ = [
5
+ "__version__",
6
+ "__version_tuple__",
7
+ "version",
8
+ "version_tuple",
9
+ "__commit_id__",
10
+ "commit_id",
11
+ ]
5
12
 
6
13
  TYPE_CHECKING = False
7
14
  if TYPE_CHECKING:
@@ -9,13 +16,19 @@ if TYPE_CHECKING:
9
16
  from typing import Union
10
17
 
11
18
  VERSION_TUPLE = Tuple[Union[int, str], ...]
19
+ COMMIT_ID = Union[str, None]
12
20
  else:
13
21
  VERSION_TUPLE = object
22
+ COMMIT_ID = object
14
23
 
15
24
  version: str
16
25
  __version__: str
17
26
  __version_tuple__: VERSION_TUPLE
18
27
  version_tuple: VERSION_TUPLE
28
+ commit_id: COMMIT_ID
29
+ __commit_id__: COMMIT_ID
19
30
 
20
- __version__ = version = '1.3.6'
21
- __version_tuple__ = version_tuple = (1, 3, 6)
31
+ __version__ = version = '1.3.7'
32
+ __version_tuple__ = version_tuple = (1, 3, 7)
33
+
34
+ __commit_id__ = commit_id = 'g1808c4592'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: res2df
3
- Version: 1.3.6
3
+ Version: 1.3.7
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
@@ -9,8 +9,7 @@ import pandas as pd
9
9
  import pyarrow
10
10
  import pytest
11
11
 
12
- from res2df import common, grid, res2csv
13
- from res2df.resdatafiles import ResdataFiles
12
+ from res2df import ResdataFiles, common, grid, res2csv
14
13
 
15
14
  TESTDIR = Path(__file__).absolute().parent
16
15
  REEK = str(TESTDIR / "data/reek/eclipse/model/2_R001_REEK-0.DATA")
@@ -163,6 +162,17 @@ def test_init2df():
163
162
  assert np.isnan(init_df["KRO"].unique()).all()
164
163
 
165
164
 
165
+ def test_that_init2df_works_with_only_PORV():
166
+ """Test that requesting only PORV works"""
167
+ resdatafiles = ResdataFiles(REEK)
168
+ init_df = grid.init2df(resdatafiles, vectors="PORV")
169
+
170
+ assert isinstance(init_df, pd.DataFrame)
171
+ # pylint: disable=unsupported-membership-test # false positive on Dataframe
172
+ assert not init_df.empty
173
+ assert "PORV" in init_df
174
+
175
+
166
176
  def test_grid_df():
167
177
  """Test that dataframe with INIT vectors and coordinates can be produced"""
168
178
  resdatafiles = ResdataFiles(EIGHTCELLS)
@@ -189,6 +199,16 @@ def test_grid_df():
189
199
  )
190
200
 
191
201
 
202
+ def test_that_grid_df_works_with_only_PORV():
203
+ """Test that dataframe with INIT vector PORV works"""
204
+ resdatafiles = ResdataFiles(EIGHTCELLS)
205
+ grid_df = grid.df(resdatafiles, vectors="PORV")
206
+
207
+ assert isinstance(grid_df, pd.DataFrame)
208
+ assert not grid_df.empty
209
+ assert "PORV" in grid_df
210
+
211
+
192
212
  def test_df2res(tmp_path):
193
213
  """Test if we are able to output include files for grid data"""
194
214
  resdatafiles = ResdataFiles(REEK)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes