subscript 1.0.0__tar.gz → 1.1.0__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 (319) hide show
  1. {subscript-1.0.0 → subscript-1.1.0}/.github/workflows/subscript.yml +2 -6
  2. {subscript-1.0.0 → subscript-1.1.0}/PKG-INFO +2 -2
  3. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/eclcompress.rst +1 -3
  4. {subscript-1.0.0 → subscript-1.1.0}/pyproject.toml +11 -1
  5. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/co2_containment/co2_calculation.py +15 -15
  6. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/eclcompress/eclcompress.py +12 -47
  7. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/restartthinner/restartthinner.py +13 -13
  8. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/sector2fluxnum/flux_obj.py +14 -14
  9. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/sector2fluxnum/flux_util.py +7 -7
  10. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/sector2fluxnum/sector2fluxnum.py +13 -13
  11. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/summaryplot/summaryplot.py +13 -13
  12. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/version.py +2 -2
  13. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/welltest_dpds/welltest_dpds.py +3 -3
  14. {subscript-1.0.0 → subscript-1.1.0}/src/subscript.egg-info/PKG-INFO +2 -2
  15. {subscript-1.0.0 → subscript-1.1.0}/src/subscript.egg-info/SOURCES.txt +0 -1
  16. {subscript-1.0.0 → subscript-1.1.0}/src/subscript.egg-info/requires.txt +1 -1
  17. {subscript-1.0.0 → subscript-1.1.0}/tests/test_eclcompress.py +0 -39
  18. {subscript-1.0.0 → subscript-1.1.0}/tests/test_presentvalue.py +4 -4
  19. {subscript-1.0.0 → subscript-1.1.0}/tests/test_summaryplot.py +2 -2
  20. {subscript-1.0.0 → subscript-1.1.0}/tests/test_welltest_dpds.py +6 -6
  21. subscript-1.0.0/setup.py +0 -15
  22. {subscript-1.0.0 → subscript-1.1.0}/.flake8 +0 -0
  23. {subscript-1.0.0 → subscript-1.1.0}/.github/workflows/codecov.yml +0 -0
  24. {subscript-1.0.0 → subscript-1.1.0}/.github/workflows/publish.yml +0 -0
  25. {subscript-1.0.0 → subscript-1.1.0}/.gitignore +0 -0
  26. {subscript-1.0.0 → subscript-1.1.0}/.pylintrc +0 -0
  27. {subscript-1.0.0 → subscript-1.1.0}/LICENSE +0 -0
  28. {subscript-1.0.0 → subscript-1.1.0}/README.md +0 -0
  29. {subscript-1.0.0 → subscript-1.1.0}/SECURITY.md +0 -0
  30. {subscript-1.0.0 → subscript-1.1.0}/ci/testkomodo.sh +0 -0
  31. {subscript-1.0.0 → subscript-1.1.0}/docs/Makefile +0 -0
  32. {subscript-1.0.0 → subscript-1.1.0}/docs/_static/equinor-logo.png +0 -0
  33. {subscript-1.0.0 → subscript-1.1.0}/docs/_static/equinor-logo2.jpg +0 -0
  34. {subscript-1.0.0 → subscript-1.1.0}/docs/_static/equinor-logo2.png +0 -0
  35. {subscript-1.0.0 → subscript-1.1.0}/docs/_static/equinor_logo.jpg +0 -0
  36. {subscript-1.0.0 → subscript-1.1.0}/docs/_static/equinor_logo_only.jpg +0 -0
  37. {subscript-1.0.0 → subscript-1.1.0}/docs/_templates/layout.html +0 -0
  38. {subscript-1.0.0 → subscript-1.1.0}/docs/conf.py +0 -0
  39. {subscript-1.0.0 → subscript-1.1.0}/docs/contributing.rst +0 -0
  40. {subscript-1.0.0 → subscript-1.1.0}/docs/history.rst +0 -0
  41. {subscript-1.0.0 → subscript-1.1.0}/docs/index.rst +0 -0
  42. {subscript-1.0.0 → subscript-1.1.0}/docs/make.bat +0 -0
  43. {subscript-1.0.0 → subscript-1.1.0}/docs/overview.rst +0 -0
  44. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/bjobsusers.rst +0 -0
  45. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/casegen_upcars.rst +0 -0
  46. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/check_swatinit.rst +0 -0
  47. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/co2_containment.rst +0 -0
  48. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/convert_grid_format.rst +0 -0
  49. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/csv2ofmvol.rst +0 -0
  50. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/csv_merge.rst +0 -0
  51. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/csv_stack.rst +0 -0
  52. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/ecldiff2roff.rst +0 -0
  53. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/fmu_copy_revision.rst +0 -0
  54. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/fmuobs.rst +0 -0
  55. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/images/Pack_sim_overview.png +0 -0
  56. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/images/Summaryplot-ensemble.png +0 -0
  57. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/images/Summaryplot-ert.png +0 -0
  58. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/images/Summaryplot-normalizeexample.png +0 -0
  59. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/images/Workflow_sector2fluxnum.png +0 -0
  60. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/images/casegen_upcars_geometry.png +0 -0
  61. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/images/check_swatinit_scatter.png +0 -0
  62. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/images/check_swatinit_volplot.png +0 -0
  63. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/images/co2_containment_A.png +0 -0
  64. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/images/ecl-swat-initialization.png +0 -0
  65. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/images/make_check_swatinit_images.sh +0 -0
  66. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/images/resinsight_wells_project_example.png +0 -0
  67. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/interp_relperm.rst +0 -0
  68. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/merge_rft_ertobs.rst +0 -0
  69. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/ofmvol2csv.rst +0 -0
  70. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/pack_sim.rst +0 -0
  71. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/params2csv.rst +0 -0
  72. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/presentvalue.rst +0 -0
  73. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/prtvol2csv.csv +0 -0
  74. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/prtvol2csv.rst +0 -0
  75. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/restartthinner.rst +0 -0
  76. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/ri_wellmod.rst +0 -0
  77. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/rmsecl_volumetrics.rst +0 -0
  78. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/runeclipse.rst +0 -0
  79. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/runrms.rst +0 -0
  80. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/sector2fluxnum.rst +0 -0
  81. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/summaryplot.rst +0 -0
  82. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/sunsch.rst +0 -0
  83. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/sw_model_utilities.rst +0 -0
  84. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/vfp2csv.rst +0 -0
  85. {subscript-1.0.0 → subscript-1.1.0}/docs/scripts/welltest_dpds.rst +0 -0
  86. {subscript-1.0.0 → subscript-1.1.0}/docs/usage.rst +0 -0
  87. {subscript-1.0.0 → subscript-1.1.0}/setup.cfg +0 -0
  88. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/__init__.py +0 -0
  89. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/bjobsusers/__init__.py +0 -0
  90. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/bjobsusers/bjobsusers.py +0 -0
  91. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/casegen_upcars/__init__.py +0 -0
  92. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/casegen_upcars/casegen_upcars.py +0 -0
  93. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/casegen_upcars/model.py +0 -0
  94. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/casegen_upcars/udf.py +0 -0
  95. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/casegen_upcars/udf_arg_parser.py +0 -0
  96. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/check_swatinit/__init__.py +0 -0
  97. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/check_swatinit/check_swatinit.py +0 -0
  98. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/check_swatinit/constants.py +0 -0
  99. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/check_swatinit/pillarmodel.py +0 -0
  100. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/check_swatinit/plotter.py +0 -0
  101. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/co2_containment/__init__.py +0 -0
  102. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/co2_containment/calculate.py +0 -0
  103. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/co2_containment/co2_containment.py +0 -0
  104. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/config_jobs/CHECK_SWATINIT +0 -0
  105. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/config_jobs/CSV2OFMVOL +0 -0
  106. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/config_jobs/CSV_STACK +0 -0
  107. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/config_jobs/ECLCOMPRESS +0 -0
  108. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/config_jobs/ECLDIFF2ROFF +0 -0
  109. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/config_jobs/ECLGRID2ROFF +0 -0
  110. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/config_jobs/ECLINIT2ROFF +0 -0
  111. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/config_jobs/ECLRST2ROFF +0 -0
  112. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/config_jobs/INTERP_RELPERM +0 -0
  113. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/config_jobs/MERGE_RFT_ERTOBS +0 -0
  114. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/config_jobs/OFMVOL2CSV +0 -0
  115. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/config_jobs/PARAMS2CSV +0 -0
  116. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/config_jobs/PRTVOL2CSV +0 -0
  117. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/config_jobs/RI_WELLMOD +0 -0
  118. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/config_jobs/SUNSCH +0 -0
  119. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/config_jobs/WELLTEST_DPDS +0 -0
  120. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/convert_grid_format/__init__.py +0 -0
  121. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/convert_grid_format/convert_grid_format.py +0 -0
  122. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/csv2ofmvol/__init__.py +0 -0
  123. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/csv2ofmvol/csv2ofmvol.py +0 -0
  124. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/csv_merge/__init__.py +0 -0
  125. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/csv_merge/csv_merge.py +0 -0
  126. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/csv_stack/__init__.py +0 -0
  127. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/csv_stack/csv_stack.py +0 -0
  128. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/eclcompress/__init__.py +0 -0
  129. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/eclcompress/allowlist.py +0 -0
  130. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/ecldiff2roff/__init__.py +0 -0
  131. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/ecldiff2roff/ecldiff2roff.py +0 -0
  132. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/eclgrid2roff/eclgrid2roff.py +0 -0
  133. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/eclinit2roff/eclinit2roff.py +0 -0
  134. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/eclrst2roff/eclrst2roff.py +0 -0
  135. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/fmu_copy_revision/__init__.py +0 -0
  136. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/fmu_copy_revision/fmu_copy_revision.py +0 -0
  137. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/fmuobs/__init__.py +0 -0
  138. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/fmuobs/fmuobs.py +0 -0
  139. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/fmuobs/parsers.py +0 -0
  140. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/fmuobs/util.py +0 -0
  141. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/fmuobs/writers.py +0 -0
  142. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/hook_implementations/__init__.py +0 -0
  143. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/hook_implementations/jobs.py +0 -0
  144. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/interp_relperm/__init__.py +0 -0
  145. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/interp_relperm/interp_relperm.py +0 -0
  146. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/legacy/duf +0 -0
  147. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/legacy/eclmanual +0 -0
  148. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/legacy/ertwatch +0 -0
  149. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/legacy/list_rms_usage +0 -0
  150. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/legacy/nosim +0 -0
  151. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/legacy/runeclipse +0 -0
  152. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/merge_rft_ertobs/__init__.py +0 -0
  153. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/merge_rft_ertobs/merge_rft_ertobs.py +0 -0
  154. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/ofmvol2csv/__init__.py +0 -0
  155. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/ofmvol2csv/ofmvol2csv.py +0 -0
  156. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/pack_sim/__init__.py +0 -0
  157. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/pack_sim/pack_sim.py +0 -0
  158. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/params2csv/__init__.py +0 -0
  159. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/params2csv/params2csv.py +0 -0
  160. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/presentvalue/__init__.py +0 -0
  161. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/presentvalue/presentvalue.py +0 -0
  162. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/prtvol2csv/__init__.py +0 -0
  163. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/prtvol2csv/prtvol2csv.py +0 -0
  164. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/restartthinner/__init__.py +0 -0
  165. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/ri_wellmod/__init__.py +0 -0
  166. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/ri_wellmod/ri_wellmod.py +0 -0
  167. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/rmsecl_volumetrics/__init__.py +0 -0
  168. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/rmsecl_volumetrics/rmsecl_volumetrics.py +0 -0
  169. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/runrms/__init__.py +0 -0
  170. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/runrms/runrms.py +0 -0
  171. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/sector2fluxnum/__init__.py +0 -0
  172. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/sector2fluxnum/completions.py +0 -0
  173. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/sector2fluxnum/datafile_obj.py +0 -0
  174. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/sector2fluxnum/fluxfile_obj.py +0 -0
  175. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/summaryplot/__init__.py +0 -0
  176. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/sunsch/__init__.py +0 -0
  177. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/sunsch/sunsch.py +0 -0
  178. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/sunsch/time_vector.py +0 -0
  179. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/sw_model_utilities/__init__.py +0 -0
  180. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/sw_model_utilities/sw_model_utilities.py +0 -0
  181. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/vfp2csv/__init__.py +0 -0
  182. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/vfp2csv/vfp2csv.py +0 -0
  183. {subscript-1.0.0 → subscript-1.1.0}/src/subscript/welltest_dpds/__init__.py +0 -0
  184. {subscript-1.0.0 → subscript-1.1.0}/src/subscript.egg-info/dependency_links.txt +0 -0
  185. {subscript-1.0.0 → subscript-1.1.0}/src/subscript.egg-info/entry_points.txt +0 -0
  186. {subscript-1.0.0 → subscript-1.1.0}/src/subscript.egg-info/top_level.txt +0 -0
  187. {subscript-1.0.0 → subscript-1.1.0}/tests/__init__.py +0 -0
  188. {subscript-1.0.0 → subscript-1.1.0}/tests/conftest.py +0 -0
  189. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/include/grid/reek.faults +0 -0
  190. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/include/grid/reek.grid +0 -0
  191. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/include/grid/reek.multflt +0 -0
  192. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/include/grid/reek.multz +0 -0
  193. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/include/grid/reek.perm +0 -0
  194. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/include/grid/reek.poro +0 -0
  195. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/include/props/let-sgof.txt +0 -0
  196. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/include/props/let-swof.txt +0 -0
  197. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/include/props/reek.endpoints +0 -0
  198. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/include/props/reek.pvt +0 -0
  199. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/include/props/reek.swatinit +0 -0
  200. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/include/props/sgof.txt +0 -0
  201. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/include/props/swof.inc +0 -0
  202. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/include/props/swof.txt +0 -0
  203. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/include/regions/reek.eqlnum +0 -0
  204. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/include/regions/reek.fipnum +0 -0
  205. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/include/schedule/reek_history.sch +0 -0
  206. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/include/solution/reek.equil +0 -0
  207. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/include/summary/reek.smry +0 -0
  208. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.DATA +0 -0
  209. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.ECLEND +0 -0
  210. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.EGRID +0 -0
  211. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.INIT +0 -0
  212. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.LOG +0 -0
  213. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.PRT +0 -0
  214. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.RFT +0 -0
  215. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.SMSPEC +0 -0
  216. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.UNRST +0 -0
  217. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.UNSMRY +0 -0
  218. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/eclipse/model/parameters.txt +0 -0
  219. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/parameters.txt +0 -0
  220. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/rms/README +0 -0
  221. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/rms/reek.rms10.1.3/.master +0 -0
  222. {subscript-1.0.0 → subscript-1.1.0}/tests/data/reek/rms/reek.rms11.1.0/.master +0 -0
  223. {subscript-1.0.0 → subscript-1.1.0}/tests/data/vfp/GasProd.VFP +0 -0
  224. {subscript-1.0.0 → subscript-1.1.0}/tests/data/vfp/pd2.VFP +0 -0
  225. {subscript-1.0.0 → subscript-1.1.0}/tests/data/welltest/eclipse/model/DROGON_DST_PLT-0.SMSPEC +0 -0
  226. {subscript-1.0.0 → subscript-1.1.0}/tests/data/welltest/eclipse/model/DROGON_DST_PLT-0.UNSMRY +0 -0
  227. {subscript-1.0.0 → subscript-1.1.0}/tests/test_bjobsusers.py +0 -0
  228. {subscript-1.0.0 → subscript-1.1.0}/tests/test_casegen_upcars.py +0 -0
  229. {subscript-1.0.0 → subscript-1.1.0}/tests/test_check_swatinit.py +0 -0
  230. {subscript-1.0.0 → subscript-1.1.0}/tests/test_check_swatinit_simulators.py +0 -0
  231. {subscript-1.0.0 → subscript-1.1.0}/tests/test_co2_calculate.py +0 -0
  232. {subscript-1.0.0 → subscript-1.1.0}/tests/test_co2_containment.py +0 -0
  233. {subscript-1.0.0 → subscript-1.1.0}/tests/test_convert_grid_format.py +0 -0
  234. {subscript-1.0.0 → subscript-1.1.0}/tests/test_csv2ofmvol.py +0 -0
  235. {subscript-1.0.0 → subscript-1.1.0}/tests/test_csv_merge.py +0 -0
  236. {subscript-1.0.0 → subscript-1.1.0}/tests/test_csv_stack.py +0 -0
  237. {subscript-1.0.0 → subscript-1.1.0}/tests/test_docs.py +0 -0
  238. {subscript-1.0.0 → subscript-1.1.0}/tests/test_ecldiff2roff.py +0 -0
  239. {subscript-1.0.0 → subscript-1.1.0}/tests/test_fmu_copy_revision.py +0 -0
  240. {subscript-1.0.0 → subscript-1.1.0}/tests/test_fmuobs.py +0 -0
  241. {subscript-1.0.0 → subscript-1.1.0}/tests/test_fmuobs_parsers.py +0 -0
  242. {subscript-1.0.0 → subscript-1.1.0}/tests/test_fmuobs_writers.py +0 -0
  243. {subscript-1.0.0 → subscript-1.1.0}/tests/test_hook_implementations.py +0 -0
  244. {subscript-1.0.0 → subscript-1.1.0}/tests/test_interp_relperm.py +0 -0
  245. {subscript-1.0.0 → subscript-1.1.0}/tests/test_merge_rft_ertobs.py +0 -0
  246. {subscript-1.0.0 → subscript-1.1.0}/tests/test_ofmvol2csv.py +0 -0
  247. {subscript-1.0.0 → subscript-1.1.0}/tests/test_pack_sim.py +0 -0
  248. {subscript-1.0.0 → subscript-1.1.0}/tests/test_params2csv.py +0 -0
  249. {subscript-1.0.0 → subscript-1.1.0}/tests/test_prtvol2csv.py +0 -0
  250. {subscript-1.0.0 → subscript-1.1.0}/tests/test_restartthinner.py +0 -0
  251. {subscript-1.0.0 → subscript-1.1.0}/tests/test_ri_wellmod.py +0 -0
  252. {subscript-1.0.0 → subscript-1.1.0}/tests/test_rmsecl_volumetrics.py +0 -0
  253. {subscript-1.0.0 → subscript-1.1.0}/tests/test_runrms.py +0 -0
  254. {subscript-1.0.0 → subscript-1.1.0}/tests/test_sector2fluxnum.py +0 -0
  255. {subscript-1.0.0 → subscript-1.1.0}/tests/test_subscriptlogger.py +0 -0
  256. {subscript-1.0.0 → subscript-1.1.0}/tests/test_sunsch.py +0 -0
  257. {subscript-1.0.0 → subscript-1.1.0}/tests/test_sw_model_utilities.py +0 -0
  258. {subscript-1.0.0 → subscript-1.1.0}/tests/test_vfp2csv.py +0 -0
  259. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_casegen_upcars/demo_large_scale.yaml +0 -0
  260. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_casegen_upcars/demo_small_scale.yaml +0 -0
  261. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_casegen_upcars/dump_value.tmpl +0 -0
  262. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_casegen_upcars/upcars_eclipse_ref_lg.tmpl +0 -0
  263. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_casegen_upcars/upcars_eclipse_ref_ss.tmpl +0 -0
  264. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_eclcompress/permxyz.grdecl +0 -0
  265. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_fmuobs/drogon_wbhp_rft_wct_gor_tracer_4d.obs +0 -0
  266. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_fmuobs/ert-doc.csv +0 -0
  267. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_fmuobs/ert-doc.obs +0 -0
  268. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_fmuobs/ert-doc.yml +0 -0
  269. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_fmuobs/fmu-ensemble-obs.yml +0 -0
  270. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_fmuobs/hist_obs_wells.txt +0 -0
  271. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_fmuobs/ri-obs.csv +0 -0
  272. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_interp_relperm/cfg.yml +0 -0
  273. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_interp_relperm/sgof_base.inc +0 -0
  274. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_interp_relperm/sgof_opt.inc +0 -0
  275. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_interp_relperm/sgof_pes.inc +0 -0
  276. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_interp_relperm/swof_base.inc +0 -0
  277. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_interp_relperm/swof_opt.inc +0 -0
  278. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_interp_relperm/swof_pes.inc +0 -0
  279. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_merge_rft_ertobs/drogon/gendata_rft.csv +0 -0
  280. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A2.obs +0 -0
  281. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A2.txt +0 -0
  282. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A3.obs +0 -0
  283. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A3.txt +0 -0
  284. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A4.txt +0 -0
  285. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A4_1.obs +0 -0
  286. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A5.obs +0 -0
  287. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A5.txt +0 -0
  288. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A6.obs +0 -0
  289. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A6.txt +0 -0
  290. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_merge_rft_ertobs/drogon/rft/well_date_rft.txt +0 -0
  291. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_ofmvol2csv/fileA.vol +0 -0
  292. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_ofmvol2csv/fileB.vol +0 -0
  293. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_ofmvol2csv/fileC.vol +0 -0
  294. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_ofmvol2csv/ofm_example.vol +0 -0
  295. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_ri_wellmod/drogon_include/grid/drogon.grid.grdecl +0 -0
  296. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_ri_wellmod/drogon_include/grid/drogon.ntg.grdecl +0 -0
  297. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_ri_wellmod/drogon_include/grid/drogon.perm.grdecl +0 -0
  298. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_ri_wellmod/drogon_trajectories/rft_wells.dat +0 -0
  299. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_ri_wellmod/drogon_trajectories/wells.dat +0 -0
  300. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_ri_wellmod/drogon_wells_noicd.rsp +0 -0
  301. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_ri_wellmod/reek_trajectories/reek_wells.dat +0 -0
  302. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_ri_wellmod/ri_reek_wells.rsp +0 -0
  303. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_runrms/runrms.yml +0 -0
  304. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_sector2fluxnum/DUMPFLUX_TEST.DATA +0 -0
  305. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_sector2fluxnum/DUMPFLUX_TEST.EGRID +0 -0
  306. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_sector2fluxnum/DUMPFLUX_TEST.FLUX +0 -0
  307. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_sector2fluxnum/OUT_COARSE.FLUX +0 -0
  308. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_sector2fluxnum/TEST.DATA +0 -0
  309. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_sector2fluxnum/TEST.EGRID +0 -0
  310. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_sector2fluxnum/TEST.INIT +0 -0
  311. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_sector2fluxnum/TEST.UNRST +0 -0
  312. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_sunsch/config_v2.yml +0 -0
  313. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_sunsch/emptyinit.sch +0 -0
  314. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_sunsch/foo1.sch +0 -0
  315. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_sunsch/footemplate.sch +0 -0
  316. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_sunsch/initwithdates.sch +0 -0
  317. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_sunsch/merge2.sch +0 -0
  318. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_sunsch/mergeme.sch +0 -0
  319. {subscript-1.0.0 → subscript-1.1.0}/tests/testdata_sunsch/options3.sch +0 -0
@@ -66,7 +66,7 @@ jobs:
66
66
 
67
67
  - name: Lint with black
68
68
  if: ${{ always() }}
69
- run: black --check *.py src tests
69
+ run: black --check src tests
70
70
 
71
71
  - name: Lint with flake8
72
72
  if: ${{ always() }}
@@ -78,11 +78,7 @@ jobs:
78
78
 
79
79
  - name: Run tests
80
80
  if: ${{ always() }}
81
- run: |
82
- pytest -n auto tests
83
- # Check that repository is untainted by test code:
84
- git status --porcelain
85
- test -z "$(git status --porcelain)"
81
+ run: pytest -n auto tests
86
82
 
87
83
  - name: Syntax check documentation
88
84
  if: ${{ always() }}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: subscript
3
- Version: 1.0.0
3
+ Version: 1.1.0
4
4
  Summary: Equinor's collection of subsurface reservoir modelling scripts
5
5
  Author-email: Equinor <rnyb@equinor.com>
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -698,7 +698,7 @@ Requires-Python: >=3.8
698
698
  Description-Content-Type: text/markdown
699
699
  License-File: LICENSE
700
700
  Requires-Dist: configsuite
701
- Requires-Dist: ecl
701
+ Requires-Dist: resdata
702
702
  Requires-Dist: ecl2df
703
703
  Requires-Dist: ert>=2.38.0b7
704
704
  Requires-Dist: fmu-tools
@@ -76,9 +76,7 @@ Notes
76
76
  compressed file into account.
77
77
  - Eclipse loading time of the compressed file is probably reduced by the
78
78
  same factor as the compression factor.
79
- - Only known compressable keywords are compressed by default. If you wish
80
- to specify particular keywords or a regex instead this can be provided
81
- directly through the command line.
79
+ - Only known compressable keywords are compressed.
82
80
 
83
81
 
84
82
  Possible improvements
@@ -36,7 +36,7 @@ classifiers = [
36
36
  dynamic = ["version"]
37
37
  dependencies = [
38
38
  "configsuite",
39
- "ecl",
39
+ "resdata",
40
40
  "ecl2df",
41
41
  "ert>=2.38.0b7",
42
42
  "fmu-tools",
@@ -125,6 +125,16 @@ CsvStack = "subscript.csv_stack.csv_stack"
125
125
  FmuObs = "subscript.fmuobs.fmuobs"
126
126
  Params2Csv = "subscript.params2csv.params2csv"
127
127
 
128
+ [tool.setuptools]
129
+ script-files = [
130
+ "src/subscript/legacy/duf",
131
+ "src/subscript/legacy/eclmanual",
132
+ "src/subscript/legacy/ertwatch",
133
+ "src/subscript/legacy/list_rms_usage",
134
+ "src/subscript/legacy/nosim",
135
+ "src/subscript/legacy/runeclipse",
136
+ ]
137
+
128
138
  [tool.black]
129
139
  line-length = 88
130
140
 
@@ -5,8 +5,8 @@ from typing import Dict, List, Literal, Optional, Tuple, Union
5
5
 
6
6
  import numpy as np
7
7
  import xtgeo
8
- from ecl.eclfile import EclFile
9
- from ecl.grid import EclGrid
8
+ from resdata.grid import Grid
9
+ from resdata.resfile import ResdataFile
10
10
 
11
11
  DEFAULT_CO2_MOLAR_MASS = 44.0
12
12
  DEFAULT_WATER_MOLAR_MASS = 18.0
@@ -235,12 +235,12 @@ class Co2Data:
235
235
  zone: Optional[np.ndarray] = None
236
236
 
237
237
 
238
- def _try_prop(unrst: EclFile, prop_name: str):
238
+ def _try_prop(unrst: ResdataFile, prop_name: str):
239
239
  """
240
- Function to determine if a property (prop_name) is part of an EclFile (unrst)
240
+ Function to determine if a property (prop_name) is part of an ResdataFile (unrst)
241
241
 
242
242
  Args:
243
- unrst (EclFile): EclFile to fetch property names from
243
+ unrst (ResdataFile): ResdataFile to fetch property names from
244
244
  prop_name (str): The property name to be searched in unrst
245
245
 
246
246
  Returns:
@@ -255,14 +255,14 @@ def _try_prop(unrst: EclFile, prop_name: str):
255
255
 
256
256
 
257
257
  def _read_props(
258
- unrst: EclFile,
258
+ unrst: ResdataFile,
259
259
  prop_names: List,
260
260
  ) -> dict:
261
261
  """
262
- Reads the properties in prop_names from an EclFile named unrst
262
+ Reads the properties in prop_names from an ResdataFile named unrst
263
263
 
264
264
  Args:
265
- unrst (EclFile): EclFile to read prop_names from
265
+ unrst (ResdataFile): ResdataFile to read prop_names from
266
266
  prop_names (List): List with property names to be read
267
267
 
268
268
  Returns:
@@ -275,14 +275,14 @@ def _read_props(
275
275
 
276
276
 
277
277
  def _fetch_properties(
278
- unrst: EclFile, properties_to_extract: List
278
+ unrst: ResdataFile, properties_to_extract: List
279
279
  ) -> Tuple[Dict[str, Dict[str, List[np.ndarray]]], List[str]]:
280
280
  """
281
- Fetches the properties in properties_to_extract from an EclFile
281
+ Fetches the properties in properties_to_extract from an ResdataFile
282
282
  named unrst
283
283
 
284
284
  Args:
285
- unrst (EclFile): EclFile to fetch properties_to_extract from
285
+ unrst (ResdataFile): ResdataFile to fetch properties_to_extract from
286
286
  properties_to_extract: List with property names to be fetched
287
287
 
288
288
  Returns:
@@ -362,7 +362,7 @@ def _extract_source_data(
362
362
  ) -> SourceData:
363
363
  # pylint: disable-msg=too-many-locals
364
364
  """
365
- Extracts the properties in properties_to_extract from EclGrid files
365
+ Extracts the properties in properties_to_extract from Grid files
366
366
 
367
367
  Args:
368
368
  grid_file (str): Path to EGRID-file
@@ -376,9 +376,9 @@ def _extract_source_data(
376
376
 
377
377
  """
378
378
  print("Start extracting source data")
379
- grid = EclGrid(grid_file)
380
- unrst = EclFile(unrst_file)
381
- init = EclFile(init_file)
379
+ grid = Grid(grid_file)
380
+ unrst = ResdataFile(unrst_file)
381
+ init = ResdataFile(init_file)
382
382
  properties, dates = _fetch_properties(unrst, properties_to_extract)
383
383
  print("Done fetching properties")
384
384
 
@@ -6,12 +6,10 @@ import glob
6
6
  import itertools
7
7
  import logging
8
8
  import os
9
- import re
10
9
  import shutil
11
10
  import textwrap
12
- import warnings
13
11
  from pathlib import Path
14
- from typing import List, Optional, Pattern, Tuple, Union
12
+ from typing import List, Tuple, Union
15
13
 
16
14
  import subscript
17
15
 
@@ -79,7 +77,6 @@ def eclcompress(
79
77
  files: Union[str, List[str]],
80
78
  keeporiginal: bool = False,
81
79
  dryrun: bool = False,
82
- eclkw_regexp: Optional[str] = None,
83
80
  ) -> int:
84
81
  """Run-length encode a set of grdecl files.
85
82
 
@@ -89,8 +86,7 @@ def eclcompress(
89
86
  files: Filenames to be compressed
90
87
  keeporiginal: Whether to copy the original to a backup file
91
88
  dryrun: If true, only print compression efficiency
92
- eclkw_regexp: Regular expression for locating Eclipse keywords.
93
- Default is [A-Z]{2-8}$
89
+
94
90
  Returns:
95
91
  Number of bytes saved by compression.
96
92
  """
@@ -98,12 +94,6 @@ def eclcompress(
98
94
  if not isinstance(files, list):
99
95
  files = [files] # List with one element
100
96
 
101
- if eclkw_regexp:
102
- warnings.warn(
103
- "Providing a keyword regex will be removed in Komodo 2023.11.",
104
- DeprecationWarning,
105
- )
106
-
107
97
  totalsavings = 0
108
98
 
109
99
  for filename in files:
@@ -137,7 +127,7 @@ def eclcompress(
137
127
  # Index the list of strings (the file contents) by the line numbers
138
128
  # where Eclipse keywords start, and where the first data record of the keyword
139
129
  # ends (compression is not attempted in record 2 and onwards for any keyword)
140
- keywordsets = find_keyword_sets(filelines, eclkw_regexp=eclkw_regexp)
130
+ keywordsets = find_keyword_sets(filelines)
141
131
 
142
132
  if not keywordsets:
143
133
  logger.info(
@@ -299,9 +289,7 @@ def compress_multiple_keywordsets(
299
289
  return compressedlines
300
290
 
301
291
 
302
- def find_keyword_sets(
303
- filelines: List[str], eclkw_regexp: Optional[Union[str, Pattern[str]]] = None
304
- ) -> List[Tuple[int, int]]:
292
+ def find_keyword_sets(filelines: List[str]) -> List[Tuple[int, int]]:
305
293
  """Parse list of strings, looking for Eclipse data sets that we want.
306
294
 
307
295
  Example:
@@ -335,9 +323,6 @@ def find_keyword_sets(
335
323
 
336
324
  Args:
337
325
  filelines: Eclipse deck lines (not necessarily complete decks)
338
- eclkw_regexp: Regular expression for locating Eclipse keywords.
339
- Default is None, in which it uses a predefined allowlist of
340
- keywords
341
326
 
342
327
  Return:
343
328
  2-tuples, with start and end line indices for datasets to
@@ -346,26 +331,19 @@ def find_keyword_sets(
346
331
  """
347
332
  keywordsets = []
348
333
  kwstart = None
349
- if eclkw_regexp:
350
- eclkw_regexp = re.compile(eclkw_regexp)
351
334
 
352
335
  for lineidx, line in enumerate(filelines):
353
336
  line = line.strip()
354
337
  if not line:
355
338
  continue
356
- if eclkw_regexp:
357
- if re.match(eclkw_regexp, line) and line not in DENYLIST_KEYWORDS:
358
- kwstart = lineidx
359
- continue
360
- else:
361
- # Remove embracing quotes if in a multi-keyword
362
- keyword = line.split(" ")[0].strip("'")
363
- if keyword in ALLOWLIST_KEYWORDS:
364
- kwstart = lineidx
365
- if "/" in line:
366
- keywordsets.append((kwstart, lineidx))
367
- kwstart = None
368
- continue
339
+ # Remove embracing quotes if in a multi-keyword
340
+ keyword = line.split(" ")[0].strip("'")
341
+ if keyword in ALLOWLIST_KEYWORDS:
342
+ kwstart = lineidx
343
+ if "/" in line:
344
+ keywordsets.append((kwstart, lineidx))
345
+ kwstart = None
346
+ continue
369
347
  if kwstart is not None and line[0:2] == "--":
370
348
  # This means we found a comment section within a data set
371
349
  # In that case it is vital to preserve the current line
@@ -453,14 +431,6 @@ def get_parser() -> argparse.ArgumentParser:
453
431
  "no files are specified on the command line."
454
432
  ),
455
433
  )
456
- parser.add_argument(
457
- "--eclkw_regexp",
458
- help=(
459
- "Regular expression to determine which Eclipse keyword "
460
- "to recognize. Default is None, using instead a list of known "
461
- "compressable keywords."
462
- ),
463
- )
464
434
  parser.add_argument(
465
435
  "--version",
466
436
  action="version",
@@ -506,7 +476,6 @@ def main():
506
476
  args.files,
507
477
  keeporiginal=args.keeporiginal,
508
478
  dryrun=args.dryrun,
509
- eclkw_regexp=args.eclkw_regexp,
510
479
  )
511
480
 
512
481
 
@@ -515,7 +484,6 @@ def main_eclcompress(
515
484
  wildcardfile: str,
516
485
  keeporiginal: bool = False,
517
486
  dryrun: bool = False,
518
- eclkw_regexp: Optional[str] = None,
519
487
  ) -> None:
520
488
  """Implements the command line functionality
521
489
 
@@ -525,8 +493,6 @@ def main_eclcompress(
525
493
  keeporiginal: Whether a backup file should be left behind
526
494
  dryrun: Nothing written to disk, only statistics for
527
495
  compression printed to terminal.
528
- eclkw_regexp: Regular expression for locating Eclipse keywords.
529
- Default is None
530
496
  """
531
497
  # A list of wildcards on the command line should always be compressed:
532
498
  if grdeclfiles:
@@ -558,7 +524,6 @@ def main_eclcompress(
558
524
  globbedfiles,
559
525
  keeporiginal=keeporiginal,
560
526
  dryrun=dryrun,
561
- eclkw_regexp=eclkw_regexp,
562
527
  )
563
528
  savings_mb = savings / 1024.0 / 1024.0
564
529
  print(f"eclcompress finished. Saved {savings_mb:.1f} Mb from compression")
@@ -10,7 +10,7 @@ from pathlib import Path
10
10
 
11
11
  import numpy
12
12
  import pandas
13
- from ecl.eclfile import EclFile
13
+ from resdata.resfile import ResdataFile
14
14
 
15
15
  from subscript import __version__
16
16
 
@@ -26,8 +26,8 @@ written to the same filename (keeping the original is optional)
26
26
  """
27
27
 
28
28
 
29
- def find_libecl_app(toolname: str) -> str:
30
- """Locate path of apps in libecl.
29
+ def find_resdata_app(toolname: str) -> str:
30
+ """Locate path of apps in resdata.
31
31
 
32
32
  These have varying suffixes due through the history of libecl Makefiles.
33
33
 
@@ -61,10 +61,10 @@ def date_slicer(slicedates: list, restartdates: list, restartindices: list) -> d
61
61
  return slicedatemap
62
62
 
63
63
 
64
- def ecl_repacker(rstfilename: str, slicerstindices: list, quiet: bool) -> None:
64
+ def rd_repacker(rstfilename: str, slicerstindices: list, quiet: bool) -> None:
65
65
  """
66
66
  Wrapper for ecl_unpack.x and ecl_pack.x utilities. These
67
- utilities are from libecl.
67
+ utilities are from resdata.
68
68
 
69
69
  First unpacking a UNRST file, then deleting dates the dont't want, then
70
70
  pack the remainding files into a new UNRST file
@@ -79,11 +79,11 @@ def ecl_repacker(rstfilename: str, slicerstindices: list, quiet: bool) -> None:
79
79
  out = ""
80
80
  # Error early if libecl tools are not available
81
81
  try:
82
- find_libecl_app("ecl_unpack")
83
- find_libecl_app("ecl_pack")
82
+ find_resdata_app("rd_unpack")
83
+ find_resdata_app("rd_pack")
84
84
  except IOError:
85
85
  sys.exit(
86
- "ERROR: ecl_unpack.x and/or ecl_pack.x not found.\n"
86
+ "ERROR: rd_unpack.x and/or rd_pack.x not found.\n"
87
87
  "These tools are required and must be installed separately"
88
88
  )
89
89
 
@@ -99,13 +99,13 @@ def ecl_repacker(rstfilename: str, slicerstindices: list, quiet: bool) -> None:
99
99
  )
100
100
  os.chdir(tempdir)
101
101
  os.system(
102
- find_libecl_app("ecl_unpack") + " " + os.path.basename(rstfilename) + out
102
+ find_resdata_app("rd_unpack") + " " + os.path.basename(rstfilename) + out
103
103
  )
104
104
  unpackedfiles = glob.glob("*.X*")
105
105
  for file in unpackedfiles:
106
106
  if int(file.split(".X")[1]) not in slicerstindices:
107
107
  os.remove(file)
108
- os.system(find_libecl_app("ecl_pack") + " *.X*" + out)
108
+ os.system(find_resdata_app("rd_pack") + " *.X*" + out)
109
109
  # We are inside the tmp directory, move file one step up:
110
110
  os.rename(
111
111
  os.path.join(os.getcwd(), os.path.basename(rstfilename)),
@@ -120,7 +120,7 @@ def get_restart_indices(rstfilename: str) -> list:
120
120
  """Extract a list of RST indices for a filename"""
121
121
  if Path(rstfilename).exists():
122
122
  # This function segfaults if file does not exist
123
- return EclFile.file_report_list(str(rstfilename))
123
+ return ResdataFile.file_report_list(str(rstfilename))
124
124
  raise FileNotFoundError(f"{rstfilename} not found")
125
125
 
126
126
 
@@ -134,7 +134,7 @@ def restartthinner(
134
134
  """
135
135
  Thin an existing UNRST file to selected number of restarts.
136
136
  """
137
- rst = EclFile(filename)
137
+ rst = ResdataFile(filename)
138
138
  restart_indices = get_restart_indices(filename)
139
139
  restart_dates = [
140
140
  rst.iget_restart_sim_time(index) for index in range(0, len(restart_indices))
@@ -177,7 +177,7 @@ def restartthinner(
177
177
  if not quiet:
178
178
  print(f"Info: Backing up {filename} to {backupname}")
179
179
  shutil.copyfile(filename, backupname)
180
- ecl_repacker(filename, slicerstindices, quiet)
180
+ rd_repacker(filename, slicerstindices, quiet)
181
181
  print(f"Written to {filename}")
182
182
 
183
183
 
@@ -1,9 +1,9 @@
1
1
  import os
2
2
  import sys
3
3
 
4
- from ecl import EclDataType
5
- from ecl.eclfile import EclKW
6
- from ecl.grid import EclRegion
4
+ from resdata import ResDataType
5
+ from resdata.grid import ResdataRegion
6
+ from resdata.resfile import ResdataKW
7
7
 
8
8
  from subscript.sector2fluxnum import flux_util
9
9
 
@@ -20,9 +20,9 @@ class Fluxnum:
20
20
 
21
21
  Creates a non-initialized FLUXNUM keyword
22
22
  """
23
- int_type = EclDataType.ECL_INT
23
+ int_type = ResDataType.RD_INT
24
24
  self.grid = grid
25
- self.fluxnum_kw = EclKW("FLUXNUM", grid.getGlobalSize(), int_type)
25
+ self.fluxnum_kw = ResdataKW("FLUXNUM", grid.getGlobalSize(), int_type)
26
26
  self.included_wells = []
27
27
  self.dummy_lgr_cell = []
28
28
  self.dummy_lgr_well = []
@@ -44,7 +44,7 @@ class Fluxnum:
44
44
 
45
45
  Initializes inner region used to define the FLUXNUM
46
46
  """
47
- self.inner_region = EclRegion(self.grid, False)
47
+ self.inner_region = ResdataRegion(self.grid, False)
48
48
  self.inner_region.select_all()
49
49
 
50
50
  def set_lgr_box_region(self, i, j, k):
@@ -54,7 +54,7 @@ class Fluxnum:
54
54
  Only works for Box regions
55
55
 
56
56
  """
57
- self.lgr_region = EclRegion(self.grid, False)
57
+ self.lgr_region = ResdataRegion(self.grid, False)
58
58
  ijk_list = flux_util.unpack_ijk(i, j, k)
59
59
 
60
60
  # Drags lgr boundaries one cell from box region
@@ -91,11 +91,11 @@ class Fluxnum:
91
91
  print("ERROR: FLUXNUM input file not found!")
92
92
  sys.exit(1)
93
93
 
94
- int_type = EclDataType.ECL_INT
94
+ int_type = ResDataType.RD_INT
95
95
 
96
96
  with open(fluxnum_file, "r", encoding="utf8") as file_handle:
97
- self.fluxnum_kw = EclKW.read_grdecl(
98
- file_handle, "FLUXNUM", ecl_type=int_type
97
+ self.fluxnum_kw = ResdataKW.read_grdecl(
98
+ file_handle, "FLUXNUM", rd_type=int_type
99
99
  )
100
100
 
101
101
  def get_fluxnum_kw(self):
@@ -203,11 +203,11 @@ class FluxnumBox(Fluxnum):
203
203
  self.set_outer_region(i_start, i_end, j_start, j_end, k_start, k_end)
204
204
 
205
205
  def set_inner_region(self, i_start, i_end, j_start, j_end, k_start, k_end):
206
- self.inner_region = EclRegion(self.grid, False)
206
+ self.inner_region = ResdataRegion(self.grid, False)
207
207
  self.inner_region.select_box((i_start, j_start, k_start), (i_end, j_end, k_end))
208
208
 
209
209
  def set_outer_region(self, i_start, i_end, j_start, j_end, k_start, k_end):
210
- self.outer_region = EclRegion(self.grid, False)
210
+ self.outer_region = ResdataRegion(self.grid, False)
211
211
  self.outer_region.select_box((i_start, j_start, k_start), (i_end, j_end, k_end))
212
212
  self.outer_region.invert()
213
213
 
@@ -247,8 +247,8 @@ class FluxnumFipnum(Fluxnum):
247
247
  raise Exception("ERROR: FIPNUM input file not found!")
248
248
 
249
249
  with open(fipnum_file, "r", encoding="utf8") as file_handle:
250
- fipnum = EclKW.read_grdecl(
251
- file_handle, "FIPNUM", ecl_type=EclDataType.ECL_INT
250
+ fipnum = ResdataKW.read_grdecl(
251
+ file_handle, "FIPNUM", rd_type=ResDataType.RD_INT
252
252
  )
253
253
 
254
254
  else:
@@ -1,16 +1,16 @@
1
- from ecl.grid import EclRegion
1
+ from resdata.grid import ResdataRegion
2
2
 
3
3
 
4
4
  def filter_region(
5
5
  grid, idx_i, idx_j, idx_k, fipnum, fipnum_kw, combine_operator="intersect"
6
6
  ):
7
7
  # Filter out the selected grid cells
8
- region = EclRegion(grid, False)
9
- region1 = EclRegion(grid, False)
10
- region_i = EclRegion(grid, False)
11
- region_j = EclRegion(grid, False)
12
- region_k = EclRegion(grid, False)
13
- region_fip = EclRegion(grid, False)
8
+ region = ResdataRegion(grid, False)
9
+ region1 = ResdataRegion(grid, False)
10
+ region_i = ResdataRegion(grid, False)
11
+ region_j = ResdataRegion(grid, False)
12
+ region_k = ResdataRegion(grid, False)
13
+ region_fip = ResdataRegion(grid, False)
14
14
 
15
15
  # Create selected regions for each filter type
16
16
  if idx_i:
@@ -3,8 +3,8 @@ import datetime
3
3
  import os
4
4
 
5
5
  import cwrap
6
- from ecl.eclfile import EclFile, FortIO
7
- from ecl.grid import EclGrid
6
+ from resdata.grid import Grid
7
+ from resdata.resfile import FortIO, ResdataFile
8
8
 
9
9
  from subscript.sector2fluxnum import completions, datafile_obj, flux_obj, fluxfile_obj
10
10
 
@@ -105,11 +105,11 @@ def sector_to_fluxnum(args):
105
105
  print("Reading grid ...")
106
106
  if args.egrid:
107
107
  args.egrid = os.path.abspath(args.egrid).split(".")[0:1]
108
- grid = EclGrid(f"{args.egrid[0]}.EGRID")
108
+ grid = Grid(f"{args.egrid[0]}.EGRID")
109
109
  else:
110
- grid = EclGrid(f"{args.ECLIPSE_CASE[0]}.EGRID")
110
+ grid = Grid(f"{args.ECLIPSE_CASE[0]}.EGRID")
111
111
 
112
- init = EclFile(f"{args.ECLIPSE_CASE[0]}.INIT")
112
+ init = ResdataFile(f"{args.ECLIPSE_CASE[0]}.INIT")
113
113
 
114
114
  # Finding well completions
115
115
  completion_list, well_list = completions.get_completion_list(
@@ -170,9 +170,9 @@ def sector_to_fluxnum(args):
170
170
  # Needs the coordinates from the
171
171
  print("Generating new FLUX file...")
172
172
 
173
- grid_coarse = EclGrid(f"{args.test[0]}.EGRID")
174
- grid_fine = EclGrid(f"{args.test[0]}.EGRID")
175
- flux_fine = EclFile(f"{args.test[0]}.FLUX")
173
+ grid_coarse = Grid(f"{args.test[0]}.EGRID")
174
+ grid_fine = Grid(f"{args.test[0]}.EGRID")
175
+ flux_fine = ResdataFile(f"{args.test[0]}.FLUX")
176
176
 
177
177
  else:
178
178
  print("Executing DUMPFLUX NOSIM run ...")
@@ -187,15 +187,15 @@ def sector_to_fluxnum(args):
187
187
  # Needs the coordinates from the
188
188
  print("Generating new FLUX file...")
189
189
 
190
- grid_coarse = EclGrid(f"DUMPFLUX_{eclipse_case_root}.EGRID")
191
- grid_fine = EclGrid(f"DUMPFLUX_{eclipse_case_root}.EGRID")
192
- flux_fine = EclFile(f"DUMPFLUX_{eclipse_case_root}.FLUX")
190
+ grid_coarse = Grid(f"DUMPFLUX_{eclipse_case_root}.EGRID")
191
+ grid_fine = Grid(f"DUMPFLUX_{eclipse_case_root}.EGRID")
192
+ flux_fine = ResdataFile(f"DUMPFLUX_{eclipse_case_root}.FLUX")
193
193
 
194
194
  # Reads restart file
195
195
  if args.restart:
196
- rst_coarse = EclFile(f"{args.restart[0]}.UNRST")
196
+ rst_coarse = ResdataFile(f"{args.restart[0]}.UNRST")
197
197
  else:
198
- rst_coarse = EclFile(f"{args.ECLIPSE_CASE[0]}.UNRST")
198
+ rst_coarse = ResdataFile(f"{args.ECLIPSE_CASE[0]}.UNRST")
199
199
 
200
200
  flux_object_fine = fluxfile_obj.Fluxfile(grid_fine, flux_fine)
201
201
 
@@ -32,12 +32,12 @@ from typing import Optional
32
32
 
33
33
  import matplotlib.pyplot
34
34
  import numpy as np
35
- from ecl.eclfile import EclFile # type: ignore
36
- from ecl.grid import EclGrid # type: ignore
37
- from ecl.summary import EclSum # type: ignore
38
35
 
39
36
  # Get rid of FutureWarning from pandas/plotting.py
40
37
  from pandas.plotting import register_matplotlib_converters
38
+ from resdata.grid import Grid # type: ignore
39
+ from resdata.resfile import ResdataFile # type: ignore
40
+ from resdata.summary import Summary # type: ignore
41
41
 
42
42
  import subscript
43
43
 
@@ -146,7 +146,7 @@ def summaryplotter(
146
146
  Will plot Eclipse summary vectors to screen or dump to file based on kwargs.
147
147
 
148
148
  Args:
149
- eclsums: List of EclSum objects
149
+ summaryfiles: List of Summary objects
150
150
  datafiles: List of Eclipse DATA files
151
151
  vectors: List of strings, with Eclipse summary vectors
152
152
  parameterfiles:
@@ -161,7 +161,7 @@ def summaryplotter(
161
161
  logcolourby:
162
162
  """
163
163
  rstfiles = [] # EclRst objects
164
- gridfiles = [] # EclGrid objects
164
+ gridfiles = [] # Grid objects
165
165
  parametervalues = [] # Vector of values pr. realization for colouring
166
166
 
167
167
  if parameterfiles is None:
@@ -169,7 +169,7 @@ def summaryplotter(
169
169
 
170
170
  if datafiles and not summaryfiles:
171
171
  logger.info("Reloading summary files from disk")
172
- summaryfiles = [EclSum(datafile) for datafile in datafiles]
172
+ summaryfiles = [Summary(datafile) for datafile in datafiles]
173
173
 
174
174
  if maxlabels == 0:
175
175
  nolegend = True
@@ -308,8 +308,8 @@ def summaryplotter(
308
308
  logger.info("Loading grid and restart file %s", rstfile)
309
309
  # TODO: Allow some of the rstfiles to be missing
310
310
  # TODO: Handle missing rstfiles gracefully
311
- rst = EclFile(rstfile)
312
- grid = EclGrid(gridfile)
311
+ rst = ResdataFile(rstfile)
312
+ grid = Grid(gridfile)
313
313
  rstfiles.append(rst)
314
314
  gridfiles.append(grid)
315
315
  logger.info("RST loading done")
@@ -574,24 +574,24 @@ def summaryplotter(
574
574
  def split_vectorsdatafiles(vectorsdatafiles):
575
575
  """
576
576
  Takes a list of strings and determines which of the arguments are Eclipse runs
577
- (by attempting to construct an EclSum object), and which are summary
578
- vector names/wildcards (that is, those that are not openable as EclSum)
577
+ (by attempting to construct an Summary object), and which are summary
578
+ vector names/wildcards (that is, those that are not openable as Summary)
579
579
 
580
580
  Args:
581
581
  vectorsdatafiles (list): List of strings
582
582
 
583
583
  Returns:
584
- tuple: 4-tuple of lists, with EclSum-filenames, datafilename-strings,
584
+ tuple: 4-tuple of lists, with Summary-filenames, datafilename-strings,
585
585
  vector-strings, parameterfilename-strings
586
586
  """
587
- summaryfiles = [] # Eclsum instances corresponding to datafiles
587
+ summaryfiles = [] # Summary instances corresponding to datafiles
588
588
  datafiles = [] # strings
589
589
  vectors = [] # strings
590
590
  parameterfiles = [] # strings
591
591
 
592
592
  for vecdata in vectorsdatafiles:
593
593
  try:
594
- sumfn = EclSum(vecdata)
594
+ sumfn = Summary(vecdata)
595
595
  datafiles.append(vecdata)
596
596
 
597
597
  summaryfiles.append(sumfn)
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '1.0.0'
16
- __version_tuple__ = version_tuple = (1, 0, 0)
15
+ __version__ = version = '1.1.0'
16
+ __version_tuple__ = version_tuple = (1, 1, 0)