subscript 1.14.2__tar.gz → 1.14.3__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 (410) hide show
  1. {subscript-1.14.2 → subscript-1.14.3}/.github/workflows/codecov.yml +6 -4
  2. subscript-1.14.3/.github/workflows/linting.yml +58 -0
  3. {subscript-1.14.2 → subscript-1.14.3}/.github/workflows/subscript.yml +7 -17
  4. {subscript-1.14.2 → subscript-1.14.3}/PKG-INFO +6 -6
  5. {subscript-1.14.2 → subscript-1.14.3}/README.md +1 -1
  6. {subscript-1.14.2 → subscript-1.14.3}/ci/testkomodo.sh +1 -1
  7. {subscript-1.14.2 → subscript-1.14.3}/docs/overview.rst +0 -1
  8. {subscript-1.14.2 → subscript-1.14.3}/pyproject.toml +27 -7
  9. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/__init__.py +1 -2
  10. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/bjobsusers/bjobsusers.py +1 -1
  11. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/casegen_upcars/casegen_upcars.py +2 -2
  12. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/casegen_upcars/model.py +4 -9
  13. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/casegen_upcars/udf.py +1 -2
  14. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/check_swatinit/check_swatinit.py +31 -27
  15. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/check_swatinit/pillarmodel.py +18 -25
  16. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/check_swatinit/plotter.py +39 -39
  17. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/convert_grid_format/convert_grid_format.py +2 -5
  18. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/csv2ofmvol/csv2ofmvol.py +7 -5
  19. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/csv_merge/csv_merge.py +2 -9
  20. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/csv_stack/csv_stack.py +3 -6
  21. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/eclcompress/eclcompress.py +11 -15
  22. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/ecldiff2roff/ecldiff2roff.py +4 -8
  23. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/field_statistics/field_statistics.py +70 -21
  24. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/fmu_copy_revision/fmu_copy_revision.py +1 -1
  25. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/fmuobs/fmuobs.py +16 -25
  26. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/fmuobs/parsers.py +8 -10
  27. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/fmuobs/writers.py +7 -7
  28. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/grav_subs_maps/grav_subs_maps.py +10 -11
  29. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/grav_subs_points/grav_subs_points.py +13 -15
  30. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/hook_implementations/forward_model_steps.py +19 -92
  31. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/interp_relperm/interp_relperm.py +20 -21
  32. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/merge_rft_ertobs/merge_rft_ertobs.py +2 -7
  33. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/ofmvol2csv/ofmvol2csv.py +13 -22
  34. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/pack_sim/pack_sim.py +14 -14
  35. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/params2csv/params2csv.py +0 -4
  36. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/presentvalue/presentvalue.py +12 -16
  37. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/prtvol2csv/prtvol2csv.py +10 -15
  38. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/restartthinner/restartthinner.py +7 -4
  39. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/rmsecl_volumetrics/rmsecl_volumetrics.py +8 -6
  40. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/sector2fluxnum/datafile_obj.py +4 -20
  41. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/sector2fluxnum/flux_obj.py +4 -4
  42. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/sector2fluxnum/fluxfile_obj.py +6 -4
  43. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/summaryplot/summaryplot.py +6 -8
  44. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/sunsch/sunsch.py +32 -33
  45. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/sunsch/time_vector.py +9 -31
  46. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/sw_model_utilities/sw_model_utilities.py +14 -19
  47. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/version.py +3 -3
  48. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/vfp2csv/vfp2csv.py +2 -1
  49. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/welltest_dpds/welltest_dpds.py +0 -2
  50. {subscript-1.14.2 → subscript-1.14.3}/src/subscript.egg-info/PKG-INFO +6 -6
  51. {subscript-1.14.2 → subscript-1.14.3}/src/subscript.egg-info/SOURCES.txt +1 -13
  52. {subscript-1.14.2 → subscript-1.14.3}/src/subscript.egg-info/entry_points.txt +0 -1
  53. {subscript-1.14.2 → subscript-1.14.3}/src/subscript.egg-info/requires.txt +4 -4
  54. {subscript-1.14.2 → subscript-1.14.3}/tests/test_csv_merge.py +7 -3
  55. {subscript-1.14.2 → subscript-1.14.3}/tests/test_csv_stack.py +2 -4
  56. {subscript-1.14.2 → subscript-1.14.3}/tests/test_eclcompress.py +2 -2
  57. {subscript-1.14.2 → subscript-1.14.3}/tests/test_field_statistics.py +175 -9
  58. {subscript-1.14.2 → subscript-1.14.3}/tests/test_hook_implementations.py +0 -1
  59. {subscript-1.14.2 → subscript-1.14.3}/tests/test_pack_sim.py +1 -3
  60. {subscript-1.14.2 → subscript-1.14.3}/tests/test_params2csv.py +8 -16
  61. {subscript-1.14.2 → subscript-1.14.3}/tests/test_prtvol2csv.py +2 -4
  62. {subscript-1.14.2 → subscript-1.14.3}/tests/test_rmsecl_volumetrics.py +4 -5
  63. {subscript-1.14.2 → subscript-1.14.3}/tests/test_summaryplot.py +2 -2
  64. {subscript-1.14.2 → subscript-1.14.3}/tests/test_sunsch.py +1 -1
  65. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/config_example.yml +15 -1
  66. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/fmuconfig/output/global_variables.yml +3 -2
  67. {subscript-1.14.2 → subscript-1.14.3}/tests/utils.py +5 -7
  68. subscript-1.14.2/.pylintrc +0 -11
  69. subscript-1.14.2/docs/scripts/ri_wellmod.rst +0 -85
  70. subscript-1.14.2/src/subscript/ri_wellmod/ri_wellmod.py +0 -786
  71. subscript-1.14.2/tests/__init__.py +0 -0
  72. subscript-1.14.2/tests/test_ri_wellmod.py +0 -312
  73. subscript-1.14.2/tests/testdata_ri_wellmod/drogon_include/grid/drogon.grid.grdecl +0 -108146
  74. subscript-1.14.2/tests/testdata_ri_wellmod/drogon_include/grid/drogon.ntg.grdecl +0 -14871
  75. subscript-1.14.2/tests/testdata_ri_wellmod/drogon_include/grid/drogon.perm.grdecl +0 -44938
  76. subscript-1.14.2/tests/testdata_ri_wellmod/drogon_trajectories/rft_wells.dat +0 -35084
  77. subscript-1.14.2/tests/testdata_ri_wellmod/drogon_trajectories/wells.dat +0 -53941
  78. subscript-1.14.2/tests/testdata_ri_wellmod/drogon_wells_noicd.rsp +0 -2787
  79. subscript-1.14.2/tests/testdata_ri_wellmod/reek_trajectories/reek_wells.dat +0 -1377
  80. subscript-1.14.2/tests/testdata_ri_wellmod/ri_reek_wells.rsp +0 -1704
  81. {subscript-1.14.2 → subscript-1.14.3}/.github/workflows/publish.yml +0 -0
  82. {subscript-1.14.2 → subscript-1.14.3}/.gitignore +0 -0
  83. {subscript-1.14.2 → subscript-1.14.3}/LICENSE +0 -0
  84. {subscript-1.14.2 → subscript-1.14.3}/SECURITY.md +0 -0
  85. {subscript-1.14.2 → subscript-1.14.3}/docs/Makefile +0 -0
  86. {subscript-1.14.2 → subscript-1.14.3}/docs/_static/equinor-logo.png +0 -0
  87. {subscript-1.14.2 → subscript-1.14.3}/docs/_static/equinor-logo2.jpg +0 -0
  88. {subscript-1.14.2 → subscript-1.14.3}/docs/_static/equinor-logo2.png +0 -0
  89. {subscript-1.14.2 → subscript-1.14.3}/docs/_static/equinor_logo.jpg +0 -0
  90. {subscript-1.14.2 → subscript-1.14.3}/docs/_static/equinor_logo_only.jpg +0 -0
  91. {subscript-1.14.2 → subscript-1.14.3}/docs/_templates/layout.html +0 -0
  92. {subscript-1.14.2 → subscript-1.14.3}/docs/conf.py +0 -0
  93. {subscript-1.14.2 → subscript-1.14.3}/docs/contributing.rst +0 -0
  94. {subscript-1.14.2 → subscript-1.14.3}/docs/history.rst +0 -0
  95. {subscript-1.14.2 → subscript-1.14.3}/docs/index.rst +0 -0
  96. {subscript-1.14.2 → subscript-1.14.3}/docs/make.bat +0 -0
  97. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/bjobsusers.rst +0 -0
  98. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/casegen_upcars.rst +0 -0
  99. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/check_swatinit.rst +0 -0
  100. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/convert_grid_format.rst +0 -0
  101. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/csv2ofmvol.rst +0 -0
  102. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/csv_merge.rst +0 -0
  103. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/csv_stack.rst +0 -0
  104. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/eclcompress.rst +0 -0
  105. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/ecldiff2roff.rst +0 -0
  106. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/field_statistics.rst +0 -0
  107. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/fmu_copy_revision.rst +0 -0
  108. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/fmuobs.rst +0 -0
  109. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/grav_subs_maps.rst +0 -0
  110. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/grav_subs_points.rst +0 -0
  111. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/images/Pack_sim_overview.png +0 -0
  112. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/images/Summaryplot-ensemble.png +0 -0
  113. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/images/Summaryplot-ert.png +0 -0
  114. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/images/Summaryplot-normalizeexample.png +0 -0
  115. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/images/Workflow_sector2fluxnum.png +0 -0
  116. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/images/casegen_upcars_geometry.png +0 -0
  117. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/images/check_swatinit_scatter.png +0 -0
  118. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/images/check_swatinit_volplot.png +0 -0
  119. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/images/ecl-swat-initialization.png +0 -0
  120. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/images/make_check_swatinit_images.sh +0 -0
  121. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/images/resinsight_wells_project_example.png +0 -0
  122. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/interp_relperm.rst +0 -0
  123. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/merge_rft_ertobs.rst +0 -0
  124. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/merge_unrst_files.rst +0 -0
  125. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/ofmvol2csv.rst +0 -0
  126. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/pack_sim.rst +0 -0
  127. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/params2csv.rst +0 -0
  128. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/presentvalue.rst +0 -0
  129. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/prtvol2csv.csv +0 -0
  130. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/prtvol2csv.rst +0 -0
  131. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/restartthinner.rst +0 -0
  132. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/rmsecl_volumetrics.rst +0 -0
  133. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/sector2fluxnum.rst +0 -0
  134. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/summaryplot.rst +0 -0
  135. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/sunsch.rst +0 -0
  136. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/sw_model_utilities.rst +0 -0
  137. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/vfp2csv.rst +0 -0
  138. {subscript-1.14.2 → subscript-1.14.3}/docs/scripts/welltest_dpds.rst +0 -0
  139. {subscript-1.14.2 → subscript-1.14.3}/docs/usage.rst +0 -0
  140. {subscript-1.14.2 → subscript-1.14.3}/setup.cfg +0 -0
  141. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/bjobsusers/__init__.py +0 -0
  142. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/casegen_upcars/__init__.py +0 -0
  143. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/casegen_upcars/udf_arg_parser.py +0 -0
  144. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/check_swatinit/__init__.py +0 -0
  145. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/check_swatinit/constants.py +0 -0
  146. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/convert_grid_format/__init__.py +0 -0
  147. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/csv2ofmvol/__init__.py +0 -0
  148. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/csv_merge/__init__.py +0 -0
  149. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/csv_stack/__init__.py +0 -0
  150. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/eclcompress/__init__.py +0 -0
  151. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/eclcompress/allowlist.py +0 -0
  152. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/ecldiff2roff/__init__.py +0 -0
  153. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/field_statistics/__init__.py +0 -0
  154. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/fmu_copy_revision/__init__.py +0 -0
  155. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/fmuobs/__init__.py +0 -0
  156. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/fmuobs/util.py +0 -0
  157. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/grav_subs_maps/__init__.py +0 -0
  158. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/grav_subs_points/__init__.py +0 -0
  159. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/hook_implementations/__init__.py +0 -0
  160. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/interp_relperm/__init__.py +0 -0
  161. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/legacy/duf +0 -0
  162. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/legacy/eclmanual +0 -0
  163. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/legacy/ertwatch +0 -0
  164. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/legacy/list_rms_usage +0 -0
  165. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/legacy/nosim +0 -0
  166. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/legacy/runeclipse +0 -0
  167. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/merge_rft_ertobs/__init__.py +0 -0
  168. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/merge_unrst_files/__init__.py +0 -0
  169. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/merge_unrst_files/merge_unrst_files.py +0 -0
  170. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/ofmvol2csv/__init__.py +0 -0
  171. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/pack_sim/__init__.py +0 -0
  172. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/params2csv/__init__.py +0 -0
  173. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/presentvalue/__init__.py +0 -0
  174. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/prtvol2csv/__init__.py +0 -0
  175. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/restartthinner/__init__.py +0 -0
  176. {subscript-1.14.2/src/subscript/ri_wellmod → subscript-1.14.3/src/subscript/rmsecl_volumetrics}/__init__.py +0 -0
  177. {subscript-1.14.2/src/subscript/rmsecl_volumetrics → subscript-1.14.3/src/subscript/sector2fluxnum}/__init__.py +0 -0
  178. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/sector2fluxnum/completions.py +0 -0
  179. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/sector2fluxnum/flux_util.py +0 -0
  180. {subscript-1.14.2 → subscript-1.14.3}/src/subscript/sector2fluxnum/sector2fluxnum.py +0 -0
  181. {subscript-1.14.2/src/subscript/sector2fluxnum → subscript-1.14.3/src/subscript/summaryplot}/__init__.py +0 -0
  182. {subscript-1.14.2/src/subscript/summaryplot → subscript-1.14.3/src/subscript/sunsch}/__init__.py +0 -0
  183. {subscript-1.14.2/src/subscript/sunsch → subscript-1.14.3/src/subscript/sw_model_utilities}/__init__.py +0 -0
  184. {subscript-1.14.2/src/subscript/sw_model_utilities → subscript-1.14.3/src/subscript/vfp2csv}/__init__.py +0 -0
  185. {subscript-1.14.2/src/subscript/vfp2csv → subscript-1.14.3/src/subscript/welltest_dpds}/__init__.py +0 -0
  186. {subscript-1.14.2 → subscript-1.14.3}/src/subscript.egg-info/dependency_links.txt +0 -0
  187. {subscript-1.14.2 → subscript-1.14.3}/src/subscript.egg-info/top_level.txt +0 -0
  188. {subscript-1.14.2/src/subscript/welltest_dpds → subscript-1.14.3/tests}/__init__.py +0 -0
  189. {subscript-1.14.2 → subscript-1.14.3}/tests/baseline/test_summaryplotter_mpl_test_cmd_args0.png +0 -0
  190. {subscript-1.14.2 → subscript-1.14.3}/tests/baseline/test_summaryplotter_mpl_test_cmd_args1.png +0 -0
  191. {subscript-1.14.2 → subscript-1.14.3}/tests/baseline/test_summaryplotter_mpl_test_cmd_args10.png +0 -0
  192. {subscript-1.14.2 → subscript-1.14.3}/tests/baseline/test_summaryplotter_mpl_test_cmd_args11.png +0 -0
  193. {subscript-1.14.2 → subscript-1.14.3}/tests/baseline/test_summaryplotter_mpl_test_cmd_args2.png +0 -0
  194. {subscript-1.14.2 → subscript-1.14.3}/tests/baseline/test_summaryplotter_mpl_test_cmd_args3.png +0 -0
  195. {subscript-1.14.2 → subscript-1.14.3}/tests/baseline/test_summaryplotter_mpl_test_cmd_args4.png +0 -0
  196. {subscript-1.14.2 → subscript-1.14.3}/tests/baseline/test_summaryplotter_mpl_test_cmd_args5.png +0 -0
  197. {subscript-1.14.2 → subscript-1.14.3}/tests/baseline/test_summaryplotter_mpl_test_cmd_args6.png +0 -0
  198. {subscript-1.14.2 → subscript-1.14.3}/tests/baseline/test_summaryplotter_mpl_test_cmd_args7.png +0 -0
  199. {subscript-1.14.2 → subscript-1.14.3}/tests/baseline/test_summaryplotter_mpl_test_cmd_args8.png +0 -0
  200. {subscript-1.14.2 → subscript-1.14.3}/tests/baseline/test_summaryplotter_mpl_test_cmd_args9.png +0 -0
  201. {subscript-1.14.2 → subscript-1.14.3}/tests/conftest.py +0 -0
  202. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/edit/drogon.trans +0 -0
  203. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/grid/drogon.faults +0 -0
  204. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/grid/drogon.grid +0 -0
  205. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/grid/drogon.multnum +0 -0
  206. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/grid/drogon.multregt +0 -0
  207. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/grid/drogon.perm +0 -0
  208. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/grid/drogon.poro +0 -0
  209. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/props/drogon.pvt +0 -0
  210. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/props/drogon.sattab +0 -0
  211. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/props/drogon.swatinit +0 -0
  212. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/regions/drogon.eqlnum +0 -0
  213. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/regions/drogon.fipnum +0 -0
  214. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/regions/drogon.fipzon +0 -0
  215. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/regions/drogon.pvtnum +0 -0
  216. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/regions/drogon.satnum +0 -0
  217. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/runspec/drogon.dimens +0 -0
  218. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/runspec/drogon.eqldims +0 -0
  219. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/runspec/drogon.gridopts +0 -0
  220. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/runspec/drogon.regdims +0 -0
  221. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/runspec/drogon.tabdims +0 -0
  222. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/schedule/55_33-1.sch +0 -0
  223. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/schedule/55_33-1.wells +0 -0
  224. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/schedule/drogon_hist.sch +0 -0
  225. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/schedule/vfp/A-1.inc +0 -0
  226. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/schedule/vfp/A-2.inc +0 -0
  227. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/schedule/vfp/A-3.inc +0 -0
  228. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/schedule/vfp/A-4.inc +0 -0
  229. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/solution/drogon.equil +0 -0
  230. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/solution/drogon.rxvd +0 -0
  231. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/solution/drogon.thpres +0 -0
  232. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/include/summary/drogon.summary +0 -0
  233. {subscript-1.14.2 → subscript-1.14.3}/tests/data/drogon/eclipse/model/DROGON-0.DATA +0 -0
  234. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/include/grid/reek.faults +0 -0
  235. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/include/grid/reek.grid +0 -0
  236. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/include/grid/reek.multflt +0 -0
  237. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/include/grid/reek.multz +0 -0
  238. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/include/grid/reek.perm +0 -0
  239. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/include/grid/reek.poro +0 -0
  240. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/include/props/let-sgof.txt +0 -0
  241. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/include/props/let-swof.txt +0 -0
  242. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/include/props/reek.endpoints +0 -0
  243. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/include/props/reek.pvt +0 -0
  244. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/include/props/reek.swatinit +0 -0
  245. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/include/props/sgof.txt +0 -0
  246. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/include/props/swof.inc +0 -0
  247. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/include/props/swof.txt +0 -0
  248. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/include/regions/reek.eqlnum +0 -0
  249. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/include/regions/reek.fipnum +0 -0
  250. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/include/schedule/reek_history.sch +0 -0
  251. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/include/solution/reek.equil +0 -0
  252. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/include/summary/reek.smry +0 -0
  253. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/model/2_R001_REEK-0.DATA +0 -0
  254. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/model/2_R001_REEK-0.ECLEND +0 -0
  255. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/model/2_R001_REEK-0.EGRID +0 -0
  256. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/model/2_R001_REEK-0.INIT +0 -0
  257. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/model/2_R001_REEK-0.LOG +0 -0
  258. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/model/2_R001_REEK-0.PRT +0 -0
  259. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/model/2_R001_REEK-0.RFT +0 -0
  260. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/model/2_R001_REEK-0.SMSPEC +0 -0
  261. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/model/2_R001_REEK-0.UNRST +0 -0
  262. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/model/2_R001_REEK-0.UNSMRY +0 -0
  263. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/eclipse/model/parameters.txt +0 -0
  264. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/parameters.txt +0 -0
  265. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/rms/README +0 -0
  266. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/rms/reek.rms10.1.3/.master +0 -0
  267. {subscript-1.14.2 → subscript-1.14.3}/tests/data/reek/rms/reek.rms11.1.0/.master +0 -0
  268. {subscript-1.14.2 → subscript-1.14.3}/tests/data/vfp/GasProd.VFP +0 -0
  269. {subscript-1.14.2 → subscript-1.14.3}/tests/data/vfp/pd2.VFP +0 -0
  270. {subscript-1.14.2 → subscript-1.14.3}/tests/data/welltest/eclipse/model/DROGON_DST_PLT-0.SMSPEC +0 -0
  271. {subscript-1.14.2 → subscript-1.14.3}/tests/data/welltest/eclipse/model/DROGON_DST_PLT-0.UNSMRY +0 -0
  272. {subscript-1.14.2 → subscript-1.14.3}/tests/test_bjobsusers.py +0 -0
  273. {subscript-1.14.2 → subscript-1.14.3}/tests/test_casegen_upcars.py +0 -0
  274. {subscript-1.14.2 → subscript-1.14.3}/tests/test_check_swatinit.py +0 -0
  275. {subscript-1.14.2 → subscript-1.14.3}/tests/test_check_swatinit_simulators.py +0 -0
  276. {subscript-1.14.2 → subscript-1.14.3}/tests/test_convert_grid_format.py +0 -0
  277. {subscript-1.14.2 → subscript-1.14.3}/tests/test_csv2ofmvol.py +0 -0
  278. {subscript-1.14.2 → subscript-1.14.3}/tests/test_docs.py +0 -0
  279. {subscript-1.14.2 → subscript-1.14.3}/tests/test_ecldiff2roff.py +0 -0
  280. {subscript-1.14.2 → subscript-1.14.3}/tests/test_eclinit2roff.py +0 -0
  281. {subscript-1.14.2 → subscript-1.14.3}/tests/test_fmu_copy_revision.py +0 -0
  282. {subscript-1.14.2 → subscript-1.14.3}/tests/test_fmuobs.py +0 -0
  283. {subscript-1.14.2 → subscript-1.14.3}/tests/test_fmuobs_parsers.py +0 -0
  284. {subscript-1.14.2 → subscript-1.14.3}/tests/test_fmuobs_writers.py +0 -0
  285. {subscript-1.14.2 → subscript-1.14.3}/tests/test_grav_subs_maps.py +0 -0
  286. {subscript-1.14.2 → subscript-1.14.3}/tests/test_grav_subs_points.py +0 -0
  287. {subscript-1.14.2 → subscript-1.14.3}/tests/test_interp_relperm.py +0 -0
  288. {subscript-1.14.2 → subscript-1.14.3}/tests/test_merge_rft_ertobs.py +0 -0
  289. {subscript-1.14.2 → subscript-1.14.3}/tests/test_merge_unrst_files.py +0 -0
  290. {subscript-1.14.2 → subscript-1.14.3}/tests/test_ofmvol2csv.py +0 -0
  291. {subscript-1.14.2 → subscript-1.14.3}/tests/test_presentvalue.py +0 -0
  292. {subscript-1.14.2 → subscript-1.14.3}/tests/test_restartthinner.py +0 -0
  293. {subscript-1.14.2 → subscript-1.14.3}/tests/test_sector2fluxnum.py +0 -0
  294. {subscript-1.14.2 → subscript-1.14.3}/tests/test_subscriptlogger.py +0 -0
  295. {subscript-1.14.2 → subscript-1.14.3}/tests/test_sw_model_utilities.py +0 -0
  296. {subscript-1.14.2 → subscript-1.14.3}/tests/test_vfp2csv.py +0 -0
  297. {subscript-1.14.2 → subscript-1.14.3}/tests/test_welltest_dpds.py +0 -0
  298. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_casegen_upcars/demo_large_scale.yaml +0 -0
  299. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_casegen_upcars/demo_small_scale.yaml +0 -0
  300. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_casegen_upcars/dump_value.tmpl +0 -0
  301. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_casegen_upcars/upcars_eclipse_ref_lg.tmpl +0 -0
  302. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_casegen_upcars/upcars_eclipse_ref_ss.tmpl +0 -0
  303. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_eclcompress/permxyz.grdecl +0 -0
  304. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/ERTBOX.roff +0 -0
  305. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/Geogrid.roff +0 -0
  306. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/files.txt +0 -0
  307. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/mean_A_P1_0.roff +0 -0
  308. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/mean_A_P1_3.roff +0 -0
  309. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/mean_A_P2_0.roff +0 -0
  310. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/mean_A_P2_3.roff +0 -0
  311. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/mean_B_P1_0.roff +0 -0
  312. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/mean_B_P1_3.roff +0 -0
  313. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/mean_C_P2_0.roff +0 -0
  314. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/mean_C_P2_3.roff +0 -0
  315. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/nactive_A_0.roff +0 -0
  316. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/nactive_A_3.roff +0 -0
  317. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/nactive_B_0.roff +0 -0
  318. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/nactive_B_3.roff +0 -0
  319. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/nactive_C_0.roff +0 -0
  320. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/nactive_C_3.roff +0 -0
  321. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_A_F1_0.roff +0 -0
  322. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_A_F1_3.roff +0 -0
  323. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_A_F2_0.roff +0 -0
  324. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_A_F2_3.roff +0 -0
  325. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_A_F3_0.roff +0 -0
  326. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_A_F3_3.roff +0 -0
  327. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_B_F1_0.roff +0 -0
  328. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_B_F1_3.roff +0 -0
  329. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_B_F2_0.roff +0 -0
  330. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_B_F2_3.roff +0 -0
  331. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_B_F3_0.roff +0 -0
  332. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_B_F3_3.roff +0 -0
  333. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_C_F1_0.roff +0 -0
  334. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_C_F1_3.roff +0 -0
  335. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_C_F2_0.roff +0 -0
  336. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_C_F2_3.roff +0 -0
  337. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_C_F3_0.roff +0 -0
  338. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_C_F3_3.roff +0 -0
  339. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/stdev_A_P1_0.roff +0 -0
  340. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/stdev_A_P1_3.roff +0 -0
  341. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/stdev_A_P2_0.roff +0 -0
  342. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/stdev_A_P2_3.roff +0 -0
  343. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/stdev_B_P1_0.roff +0 -0
  344. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/stdev_B_P1_3.roff +0 -0
  345. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/stdev_C_P2_0.roff +0 -0
  346. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/stdev_C_P2_3.roff +0 -0
  347. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/ert/model/0readme +0 -0
  348. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_field_statistics/rms/output/aps/ERTBOX.EGRID +0 -0
  349. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_fmuobs/drogon_wbhp_rft_wct_gor_tracer_4d.obs +0 -0
  350. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_fmuobs/ert-doc.csv +0 -0
  351. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_fmuobs/ert-doc.obs +0 -0
  352. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_fmuobs/ert-doc.yml +0 -0
  353. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_fmuobs/fmu-ensemble-obs.yml +0 -0
  354. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_fmuobs/hist_obs_wells.txt +0 -0
  355. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_fmuobs/ri-obs.csv +0 -0
  356. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_gravity/HIST.EGRID +0 -0
  357. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_gravity/HIST.INIT +0 -0
  358. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_gravity/HIST.UNRST +0 -0
  359. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_gravity/global_variables.yml +0 -0
  360. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_gravity/grav_subs_maps.yml +0 -0
  361. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_gravity/grav_subs_points.yml +0 -0
  362. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_gravity/seabed.gri +0 -0
  363. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_gravity/station_coordinates.csv +0 -0
  364. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_interp_relperm/cfg.yml +0 -0
  365. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_interp_relperm/sgof_base.inc +0 -0
  366. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_interp_relperm/sgof_opt.inc +0 -0
  367. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_interp_relperm/sgof_pes.inc +0 -0
  368. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_interp_relperm/swof_base.inc +0 -0
  369. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_interp_relperm/swof_opt.inc +0 -0
  370. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_interp_relperm/swof_pes.inc +0 -0
  371. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_merge_rft_ertobs/drogon/gendata_rft.csv +0 -0
  372. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A2.obs +0 -0
  373. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A2.txt +0 -0
  374. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A3.obs +0 -0
  375. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A3.txt +0 -0
  376. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A4.txt +0 -0
  377. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A4_1.obs +0 -0
  378. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A5.obs +0 -0
  379. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A5.txt +0 -0
  380. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A6.obs +0 -0
  381. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A6.txt +0 -0
  382. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_merge_rft_ertobs/drogon/rft/well_date_rft.txt +0 -0
  383. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_merge_unrst_files/HIST.UNRST +0 -0
  384. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_merge_unrst_files/PRED.UNRST +0 -0
  385. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_ofmvol2csv/fileA.vol +0 -0
  386. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_ofmvol2csv/fileB.vol +0 -0
  387. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_ofmvol2csv/fileC.vol +0 -0
  388. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_ofmvol2csv/ofm_example.vol +0 -0
  389. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_prtvol2csv/0readme.txt +0 -0
  390. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_prtvol2csv/DROGON_FIPNUM.PRT +0 -0
  391. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_prtvol2csv/DROGON_FIPZON.PRT +0 -0
  392. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_prtvol2csv/DROGON_INACTIVE_FIPNUM.PRT +0 -0
  393. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_prtvol2csv/DROGON_NO_INITIAL_BALANCE.PRT +0 -0
  394. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_prtvol2csv/DROGON_NO_INITIAL_BALANCE_FLOW.PRT +0 -0
  395. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_sector2fluxnum/DUMPFLUX_TEST.DATA +0 -0
  396. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_sector2fluxnum/DUMPFLUX_TEST.EGRID +0 -0
  397. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_sector2fluxnum/DUMPFLUX_TEST.FLUX +0 -0
  398. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_sector2fluxnum/OUT_COARSE.FLUX +0 -0
  399. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_sector2fluxnum/TEST.DATA +0 -0
  400. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_sector2fluxnum/TEST.EGRID +0 -0
  401. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_sector2fluxnum/TEST.INIT +0 -0
  402. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_sector2fluxnum/TEST.UNRST +0 -0
  403. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_sunsch/config.yml +0 -0
  404. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_sunsch/emptyinit.sch +0 -0
  405. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_sunsch/foo1.sch +0 -0
  406. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_sunsch/footemplate.sch +0 -0
  407. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_sunsch/initwithdates.sch +0 -0
  408. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_sunsch/merge2.sch +0 -0
  409. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_sunsch/mergeme.sch +0 -0
  410. {subscript-1.14.2 → subscript-1.14.3}/tests/testdata_sunsch/options3.sch +0 -0
@@ -5,6 +5,10 @@ on:
5
5
  push:
6
6
  branches: [main]
7
7
 
8
+ concurrency:
9
+ group: ${{ github.workflow }}-${{ github.ref }}
10
+ cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
11
+
8
12
  jobs:
9
13
  coverage:
10
14
  runs-on: ${{ matrix.os }}
@@ -36,23 +40,21 @@ jobs:
36
40
  enable-cache: true
37
41
  python-version: "3.12"
38
42
 
39
- - name: Install OPM-flow and ResInsight (for testing)
43
+ - name: Install OPM-flow (for testing)
40
44
  run: |
41
45
  sudo apt-get install software-properties-common
42
46
  sudo apt-add-repository ppa:opm/ppa
43
47
  sudo apt-get update
44
48
  sudo apt-get install mpi-default-bin
45
49
  sudo apt-get install libopm-simulators-bin
46
- sudo apt-get install resinsight
47
50
 
48
51
  - name: Install subscript and test dependencies
49
52
  run: |
50
53
  uv pip install ".[tests]"
51
54
 
52
- - name: Log OPM-Flow and ResInsight version
55
+ - name: Log OPM-Flow version
53
56
  run: |
54
57
  flow --version
55
- ResInsight --console --version
56
58
 
57
59
  - name: Generate coverage report
58
60
  run: |
@@ -0,0 +1,58 @@
1
+ name: lint
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+ branches:
9
+ - main
10
+ release:
11
+ types:
12
+ - published
13
+ schedule:
14
+ # Run nightly to check that tests are working with latest dependencies
15
+ - cron: "0 0 * * *"
16
+
17
+ env:
18
+ UV_SYSTEM_PYTHON: 1
19
+
20
+ concurrency:
21
+ group: ${{ github.workflow }}-${{ github.ref }}
22
+ cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
23
+
24
+ jobs:
25
+ lint:
26
+ runs-on: ubuntu-latest
27
+ strategy:
28
+ matrix:
29
+ python-version: ["3.12"]
30
+
31
+ steps:
32
+ - name: Checkout commit locally
33
+ uses: actions/checkout@v5
34
+ with:
35
+ fetch-depth: 0
36
+
37
+ - name: Set up Python ${{ matrix.python-version }}
38
+ uses: actions/setup-python@v5
39
+ with:
40
+ python-version: ${{ matrix.python-version }}
41
+
42
+ - name: Install uv
43
+ uses: astral-sh/setup-uv@v6
44
+ with:
45
+ enable-cache: true
46
+ python-version: ${{ matrix.python-version }}
47
+
48
+ - name: Install subscript with dependencies
49
+ run: |
50
+ uv pip install ".[tests, docs]"
51
+
52
+ - name: Format and lint with ruff
53
+ run: |
54
+ ruff format . --check
55
+ ruff check .
56
+
57
+ - name: Check typing with mypy
58
+ run: mypy src/subscript
@@ -18,6 +18,10 @@ env:
18
18
  MPLBACKEND: Agg
19
19
  UV_SYSTEM_PYTHON: 1
20
20
 
21
+ concurrency:
22
+ group: ${{ github.workflow }}-${{ github.ref }}
23
+ cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
24
+
21
25
  jobs:
22
26
  subscript:
23
27
  runs-on: ubuntu-latest
@@ -48,43 +52,29 @@ jobs:
48
52
  enable-cache: true
49
53
  python-version: ${{ matrix.python-version }}
50
54
 
51
- - name: Install OPM-flow and ResInsight (for testing)
55
+ - name: Install OPM-flow (for testing)
52
56
  run: |
53
57
  sudo apt-get install software-properties-common
54
58
  sudo apt-add-repository ppa:opm/ppa
55
59
  sudo apt-get update
56
60
  sudo apt-get install mpi-default-bin
57
61
  sudo apt-get install libopm-simulators-bin
58
- sudo apt-get install resinsight
59
62
 
60
63
  - name: Install subscript with dependencies
61
64
  if: ${{ always() }}
62
65
  run: |
63
66
  uv pip install ".[tests, docs]"
64
67
 
65
- - name: Log OPM-Flow and ResInsight version
68
+ - name: Log OPM-Flow version
66
69
  run: |
67
70
  flow --version
68
- ResInsight --console --version
69
71
 
70
72
  - name: List all installed packages
71
73
  run: uv pip freeze
72
74
 
73
- - name: Format with ruff
74
- if: ${{ always() }}
75
- run: ruff format . --check
76
-
77
- - name: Lint with ruff
78
- if: ${{ always() }}
79
- run: ruff check .
80
-
81
- - name: Check typing with mypy
82
- if: ${{ always() }}
83
- run: mypy src/subscript
84
-
85
75
  - name: Run tests
86
76
  if: ${{ always() }}
87
- run: pytest -n auto tests --mpl
77
+ run: pytest -n logical tests --mpl
88
78
 
89
79
  - name: Syntax check documentation
90
80
  if: ${{ always() }}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: subscript
3
- Version: 1.14.2
3
+ Version: 1.14.3
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
@@ -705,14 +705,11 @@ Requires-Dist: matplotlib
705
705
  Requires-Dist: numpy
706
706
  Requires-Dist: opm>=2023.04
707
707
  Requires-Dist: pandas
708
+ Requires-Dist: pydantic
708
709
  Requires-Dist: pyscal
709
710
  Requires-Dist: pyyaml
710
- Requires-Dist: rips
711
711
  Requires-Dist: scipy
712
712
  Requires-Dist: seaborn
713
- Requires-Dist: segyio
714
- Requires-Dist: shapely
715
- Requires-Dist: xlrd
716
713
  Requires-Dist: xtgeo
717
714
  Provides-Extra: tests
718
715
  Requires-Dist: mypy; extra == "tests"
@@ -727,6 +724,9 @@ Requires-Dist: ruff; extra == "tests"
727
724
  Requires-Dist: types-Jinja2; extra == "tests"
728
725
  Requires-Dist: types-PyYAML; extra == "tests"
729
726
  Requires-Dist: types-python-dateutil; extra == "tests"
727
+ Requires-Dist: pandas-stubs; extra == "tests"
728
+ Requires-Dist: types-seaborn; extra == "tests"
729
+ Requires-Dist: scipy-stubs; extra == "tests"
730
730
  Provides-Extra: docs
731
731
  Requires-Dist: autoapi; extra == "docs"
732
732
  Requires-Dist: sphinx; extra == "docs"
@@ -740,7 +740,7 @@ Dynamic: license-file
740
740
  # subscript
741
741
 
742
742
  [![subscript](https://github.com/equinor/subscript/actions/workflows/subscript.yml/badge.svg)](https://github.com/equinor/subscript/actions/workflows/subscript.yml)
743
- [![codecov](https://codecov.io/gh/equinor/subscript/branch/master/graph/badge.svg)](https://codecov.io/gh/equinor/subscript)
743
+ [![codecov](https://codecov.io/gh/equinor/subscript/branch/main/graph/badge.svg)](https://codecov.io/gh/equinor/subscript)
744
744
  ![Python Version](https://img.shields.io/badge/python-3.11%20%7C%203.12-blue.svg)
745
745
  [![License: GPL v3](https://img.shields.io/github/license/equinor/subscript)](https://www.gnu.org/licenses/gpl-3.0)
746
746
  [![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)
@@ -1,7 +1,7 @@
1
1
  # subscript
2
2
 
3
3
  [![subscript](https://github.com/equinor/subscript/actions/workflows/subscript.yml/badge.svg)](https://github.com/equinor/subscript/actions/workflows/subscript.yml)
4
- [![codecov](https://codecov.io/gh/equinor/subscript/branch/master/graph/badge.svg)](https://codecov.io/gh/equinor/subscript)
4
+ [![codecov](https://codecov.io/gh/equinor/subscript/branch/main/graph/badge.svg)](https://codecov.io/gh/equinor/subscript)
5
5
  ![Python Version](https://img.shields.io/badge/python-3.11%20%7C%203.12-blue.svg)
6
6
  [![License: GPL v3](https://img.shields.io/github/license/equinor/subscript)](https://www.gnu.org/licenses/gpl-3.0)
7
7
  [![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)
@@ -36,6 +36,6 @@ start_tests () {
36
36
  # (this script becomes flaky if set -e is active)
37
37
  source /prog/res/ecl/script/eclrun.bash
38
38
  eval "$SHELLOPTS_BEFORE"
39
-
39
+ export PATH=$PATH:/global/bin # For bjobsusers tests
40
40
  pytest -n auto --flow-simulator="/project/res/$os_arch/bin/flowdaily" --eclipse-simulator="eclrun"
41
41
  }
@@ -29,7 +29,6 @@ params2csv ✅ ✅ ✅
29
29
  presentvalue ✅ ⛔️ ⛔️
30
30
  prtvol2csv ✅ ✅ ⛔️
31
31
  restartthinner ✅ ⛔️ ⛔️
32
- ri_wellmod ✅ ✅ ⛔️
33
32
  rmsecl_volumetrics ✅ ⛔️ ⛔️
34
33
  sector2fluxnum ✅ ⛔️ ⛔️
35
34
  summaryplot ✅ ⛔️ ⛔️
@@ -42,14 +42,11 @@ dependencies = [
42
42
  "numpy",
43
43
  "opm>=2023.04",
44
44
  "pandas",
45
+ "pydantic",
45
46
  "pyscal",
46
47
  "pyyaml",
47
- "rips",
48
48
  "scipy",
49
49
  "seaborn",
50
- "segyio",
51
- "shapely",
52
- "xlrd",
53
50
  "xtgeo",
54
51
  ]
55
52
 
@@ -67,6 +64,9 @@ tests = [
67
64
  "types-Jinja2",
68
65
  "types-PyYAML",
69
66
  "types-python-dateutil",
67
+ "pandas-stubs",
68
+ "types-seaborn",
69
+ "scipy-stubs",
70
70
  ]
71
71
  docs = [
72
72
  "autoapi",
@@ -106,7 +106,6 @@ params2csv = "subscript.params2csv.params2csv:main"
106
106
  presentvalue = "subscript.presentvalue.presentvalue:main"
107
107
  prtvol2csv = "subscript.prtvol2csv.prtvol2csv:main"
108
108
  restartthinner = "subscript.restartthinner.restartthinner:main"
109
- ri_wellmod = "subscript.ri_wellmod.ri_wellmod:main"
110
109
  rmsecl_volumetrics = "subscript.rmsecl_volumetrics.rmsecl_volumetrics:main"
111
110
  sector2fluxnum = "subscript.sector2fluxnum.sector2fluxnum:main"
112
111
  summaryplot = "subscript.summaryplot.summaryplot:main"
@@ -136,6 +135,26 @@ script-files = [
136
135
  ]
137
136
 
138
137
  [tool.mypy]
138
+
139
+ plugins = ["pydantic.mypy"]
140
+
141
+ strict_equality = true
142
+ extra_checks = true
143
+
144
+ [[tool.mypy.overrides]]
145
+ module = [
146
+ "xtgeo.*",
147
+ "opm.*",
148
+ "resdata.*",
149
+ "res2df.*",
150
+ "ert",
151
+ "resfo",
152
+ "grid3d_maps.*",
153
+ "fmu.tools.*",
154
+ "pyscal",
155
+ "cwrap",
156
+ "grpc"
157
+ ]
139
158
  ignore_missing_imports = true
140
159
 
141
160
  [tool.pylint]
@@ -152,11 +171,10 @@ norecursedirs = [
152
171
  "build",
153
172
  "opm-common",
154
173
  ]
155
- addopts = "-ra --strict-markers --ignore=docs/conf.py --ignore=setup.py --ignore=.eggs"
174
+ addopts = "-ra --strict-markers --ignore=docs/conf.py --ignore=.eggs"
156
175
  markers = [
157
176
  "integration: Marks a test as an integration test",
158
177
  "plot: Marks a test as interactive, plots will flash to the screen",
159
- "ri_dev: A test using a dev version of ResInsight, skipped by default"
160
178
  ]
161
179
 
162
180
  [tool.rstcheck]
@@ -179,6 +197,8 @@ select = [
179
197
  "SIM",
180
198
  "W",
181
199
  "PD",
200
+ "UP",
201
+ "RUF",
182
202
  ]
183
203
  ignore = [
184
204
  "C901",
@@ -15,7 +15,7 @@ def detect_os(release_file: Path = Path("/etc/redhat-release")) -> str:
15
15
  default_os_version = "x86_64_RH_7"
16
16
 
17
17
  if release_file.is_file():
18
- with open(release_file, "r", encoding="utf-8") as buffer:
18
+ with open(release_file, encoding="utf-8") as buffer:
19
19
  tokens = buffer.read().split()
20
20
  for t in tokens:
21
21
  if "." in t:
@@ -26,7 +26,6 @@ def detect_os(release_file: Path = Path("/etc/redhat-release")) -> str:
26
26
 
27
27
 
28
28
  def getLogger(module_name="subscript"):
29
- # pylint: disable=invalid-name
30
29
  """Provides a unified logger for subscript scripts.
31
30
 
32
31
  Scripts in subscript are encouraged to use logging.info() instead of
@@ -2,7 +2,7 @@ import argparse
2
2
  import os
3
3
  import re
4
4
  import subprocess
5
- from typing import Callable
5
+ from collections.abc import Callable
6
6
 
7
7
  import pandas as pd
8
8
 
@@ -59,7 +59,7 @@ def main():
59
59
  parser = arg_parse.parse_args()
60
60
 
61
61
  # YAML format
62
- with open(parser.config_file, "r", encoding="utf8") as file_handle:
62
+ with open(parser.config_file, encoding="utf8") as file_handle:
63
63
  config = load(file_handle.read(), Loader=Loader)
64
64
 
65
65
  general = config["General"]
@@ -518,7 +518,7 @@ def main():
518
518
  [vug1_swatinit, vug2_swatinit],
519
519
  )
520
520
 
521
- with open(template_file, "r", encoding="utf8") as file_handle:
521
+ with open(template_file, encoding="utf8") as file_handle:
522
522
  buffer_ = mask_token(file_handle.read(), unmask=False)
523
523
  case_template = env.from_string(buffer_)
524
524
  ast = env.parse(buffer_)
@@ -601,7 +601,6 @@ Initializing model
601
601
  def _create_property(
602
602
  self, keyword, matrix_property, streak_property, fracture_property, vug_property
603
603
  ):
604
- # pylint: disable=too-many-arguments
605
604
  streak_property = listify(streak_property, len(self._streak_k))
606
605
  assert len(streak_property) == len(self._streak_k), (
607
606
  f"Number of input {keyword} is not equal to number of streak"
@@ -630,7 +629,6 @@ Initializing model
630
629
  fracture_y_property,
631
630
  vug_property,
632
631
  ):
633
- # pylint: disable=too-many-arguments
634
632
  """Distribute property in the cell with anisotropy in fracture property"""
635
633
  streak_property = listify(streak_property, len(self._streak_k))
636
634
  assert len(streak_property) == len(self._streak_k), (
@@ -704,7 +702,6 @@ Initializing model
704
702
  def export_props(
705
703
  self, filename, keyword, matrix_prop, streak_prop, frac_props, vug_prop
706
704
  ):
707
- # pylint: disable=too-many-arguments
708
705
  """Print out grid property to Eclipse format file"""
709
706
  buffer_ = io.StringIO()
710
707
  print(
@@ -805,8 +802,7 @@ Initializing model
805
802
  for _i in range(self._xv.shape[0]):
806
803
  for _j in range(self._xv.shape[1]):
807
804
  print(
808
- # pylint: disable=consider-using-f-string
809
- "{{x:{0}}} {{y:{0}}} {{z:{0}}} "
805
+ "{{x:{0}}} {{y:{0}}} {{z:{0}}} " # noqa: UP032
810
806
  "{{x:{0}}} {{y:{0}}} {{z:{0}}}".format(
811
807
  self._eclipse_output_float
812
808
  ).format(x=self._xv[_i, _j], y=self._yv[_i, _j], z=0.0),
@@ -873,7 +869,6 @@ Initializing model
873
869
  self._vug_idx.fill(0)
874
870
 
875
871
  def bounded_box(self, i_1, i_2, j_1, j_2, k_1, k_2):
876
- # pylint: disable=too-many-arguments
877
872
  """Make sure the box is within model domain"""
878
873
  return [
879
874
  max(i_1, 0),
@@ -1183,13 +1178,13 @@ Initializing model
1183
1178
  > 1 : N/S- or E/W- blocks are larger than center blocks
1184
1179
  < 1 : center blocks are larger than N/S- or E/W- blocks
1185
1180
  """
1186
- result = [0] * 2
1181
+ result = [0.0] * 2
1187
1182
  for idx, val in enumerate([self._matrix_x_arr, self._matrix_y_arr]):
1188
1183
  if len(val) < 3:
1189
1184
  result[idx] = 0.0
1190
1185
  else:
1191
- idx_start = int(round(len(val) / 3.0))
1192
- idx_end = int(round(len(val) * 2.0 / 3.0))
1186
+ idx_start = round(len(val) / 3.0)
1187
+ idx_end = round(len(val) * 2.0 / 3.0)
1193
1188
  center_block = sum(val[idx_start:idx_end])
1194
1189
  result[idx] = 0.5 * (sum(val) - center_block - 1)
1195
1190
  return result[0], result[1]
@@ -22,8 +22,7 @@ def iter_flatten(iterable):
22
22
  it_obj = iter(iterable)
23
23
  for enum_obj in it_obj:
24
24
  if isinstance(enum_obj, (list, tuple)):
25
- for flatten_obj in iter_flatten(enum_obj):
26
- yield flatten_obj
25
+ yield from iter_flatten(enum_obj)
27
26
  else:
28
27
  yield enum_obj
29
28
 
@@ -2,12 +2,13 @@
2
2
 
3
3
  import argparse
4
4
  import sys
5
- from typing import Any, Dict, List, Union
5
+ from typing import Any
6
6
 
7
+ import matplotlib.pyplot as plt
7
8
  import numpy as np
9
+ import numpy.typing as npt
8
10
  import pandas as pd
9
11
  import res2df
10
- from matplotlib import pyplot
11
12
 
12
13
  import subscript
13
14
  from subscript.check_swatinit import plotter
@@ -76,9 +77,9 @@ def main() -> None:
76
77
  plotter.wvol_waterfall(qc_vols)
77
78
  if args.volplotfile:
78
79
  print(f"Dumping volume plot to {args.volplotfile}")
79
- pyplot.savefig(args.volplotfile)
80
+ plt.savefig(args.volplotfile)
80
81
  if args.volplot:
81
- pyplot.show()
82
+ plt.show()
82
83
 
83
84
  if (args.plotfile or args.plot) and args.eqlnum not in qc_frame[
84
85
  "EQLNUM"
@@ -88,9 +89,9 @@ def main() -> None:
88
89
  plotter.plot_qc_panels(qc_frame[qc_frame["EQLNUM"] == args.eqlnum])
89
90
  if args.plotfile:
90
91
  print(f"Dumping plot to {args.plotfile}")
91
- pyplot.savefig(args.plotfile)
92
+ plt.savefig(args.plotfile)
92
93
  if args.plot:
93
- pyplot.show()
94
+ plt.show()
94
95
 
95
96
 
96
97
  def check_applicability(eclfiles: res2df.ResdataFiles) -> None:
@@ -137,7 +138,7 @@ def reorder_dframe_for_nonnans(dframe: pd.DataFrame) -> pd.DataFrame:
137
138
  )
138
139
 
139
140
 
140
- def human_report_qc_vols(qc_vols: Dict[str, float]) -> str:
141
+ def human_report_qc_vols(qc_vols: dict[str, float]) -> str:
141
142
  """Produce a string with a human report for volumes
142
143
 
143
144
  Arguments:
@@ -299,7 +300,7 @@ def make_qc_gridframe(eclfiles: res2df.ResdataFiles) -> pd.DataFrame:
299
300
  return grid_df
300
301
 
301
302
 
302
- def qc_flag(qc_frame: pd.DataFrame) -> pd.DataFrame:
303
+ def qc_flag(qc_frame: pd.DataFrame) -> pd.Series:
303
304
  """Compute a series categorizing the QC type of the cell, determining
304
305
  how SWATINIT behaved in that cell
305
306
 
@@ -414,7 +415,7 @@ def qc_flag(qc_frame: pd.DataFrame) -> pd.DataFrame:
414
415
  return qc_col.fillna(__UNKNOWN__)
415
416
 
416
417
 
417
- def qc_volumes(qc_frame: pd.DataFrame) -> Dict[str, float]:
418
+ def qc_volumes(qc_frame: pd.DataFrame) -> dict[str, float]:
418
419
  """Compute numbers relevant for QC of saturation initialization of a
419
420
  reservoir model.
420
421
 
@@ -428,17 +429,17 @@ def qc_volumes(qc_frame: pd.DataFrame) -> Dict[str, float]:
428
429
  dict: Summed water and hydrocarbon reservoir volumes for different cell
429
430
  groupings.
430
431
  """
431
- watergains: Dict[str, float]
432
+ watergains: dict[str, float]
432
433
  watergains = {}
433
434
 
434
435
  if "QC_FLAG" in qc_frame:
435
436
  # Ensure all categories are represented:
436
- for qc_cat in QC_FLAGS:
437
- watergains[qc_cat] = 0.0
437
+ for qc_categ in QC_FLAGS:
438
+ watergains[qc_categ] = 0.0
438
439
 
439
440
  # Overwrite dict values with correct figures:
440
441
  for qc_cat, qc_subframe in qc_frame.groupby("QC_FLAG"):
441
- watergains[qc_cat] = (
442
+ watergains[str(qc_cat)] = (
442
443
  (qc_subframe["SWAT"] - qc_subframe["SWATINIT"]) * qc_subframe["PORV"]
443
444
  ).sum()
444
445
 
@@ -458,14 +459,14 @@ def qc_volumes(qc_frame: pd.DataFrame) -> Dict[str, float]:
458
459
 
459
460
 
460
461
  def _evaluate_pc(
461
- swats: List[float],
462
- scale_vert: List[float],
463
- swls: List[float],
464
- swus: Union[None, List[float]],
462
+ swats: npt.NDArray[np.float64],
463
+ scale_vert: npt.NDArray[np.float64],
464
+ swls: npt.NDArray[np.float64] | None,
465
+ swus: npt.NDArray[np.float64] | None,
465
466
  satfunc: pd.DataFrame,
466
467
  sat_name: str = "SW",
467
468
  pc_name: str = "PCOW",
468
- ) -> List[Any]:
469
+ ) -> list[Any]:
469
470
  """Evaluate pc as a function of saturation on a scaled Pc-curve
470
471
 
471
472
  Args:
@@ -488,9 +489,9 @@ def _evaluate_pc(
488
489
  sw_min = satfunc[sat_name].min()
489
490
  sw_max = satfunc[sat_name].max()
490
491
  if swls is None:
491
- swls = [sw_min] * len(swats)
492
+ swls = np.full(len(swats), sw_min)
492
493
  if swus is None:
493
- swus = [sw_max] * len(swats)
494
+ swus = np.full(len(swats), sw_max)
494
495
  for swat, pc_scaling, swl, swu in zip(swats, scale_vert, swls, swus):
495
496
  p_cap.append(
496
497
  np.interp(
@@ -533,18 +534,21 @@ def compute_pc(qc_frame: pd.DataFrame, satfunc_df: pd.DataFrame) -> pd.Series:
533
534
 
534
535
  if "SATNUM" not in qc_frame or "PC_SCALING" not in qc_frame:
535
536
  return p_cap
536
-
537
537
  for satnum, satnum_frame in qc_frame.groupby("SATNUM"):
538
538
  if "SWLPC" in satnum_frame:
539
- swls = satnum_frame["SWLPC"].to_numpy()
539
+ swls = satnum_frame["SWLPC"].to_numpy(dtype=np.float64)
540
540
  elif "SWL" in satnum_frame:
541
- swls = satnum_frame["SWL"].to_numpy()
541
+ swls = satnum_frame["SWL"].to_numpy(dtype=np.float64)
542
542
  else:
543
543
  swls = None
544
- swus = satnum_frame["SWU"].to_numpy() if "SWU" in satnum_frame else None
544
+ swus = (
545
+ satnum_frame["SWU"].to_numpy(dtype=np.float64)
546
+ if "SWU" in satnum_frame
547
+ else None
548
+ )
545
549
  p_cap[satnum_frame.index] = _evaluate_pc(
546
- satnum_frame["SWAT"].to_numpy(),
547
- satnum_frame["PC_SCALING"].to_numpy(),
550
+ satnum_frame["SWAT"].to_numpy(dtype=np.float64),
551
+ satnum_frame["PC_SCALING"].to_numpy(dtype=np.float64),
548
552
  swls,
549
553
  swus,
550
554
  satfunc_df[satfunc_df["SATNUM"] == satnum],
@@ -607,7 +611,7 @@ def merge_equil(grid_df: pd.DataFrame, equil_df: pd.DataFrame) -> pd.DataFrame:
607
611
  )
608
612
  if "KEYWORD" in equil_df:
609
613
  equil_df = equil_df[equil_df["KEYWORD"] == "EQUIL"]
610
- equil_df = equil_df[["Z_DATUM", "PRESSURE_DATUM", "EQLNUM", "OIP_INIT"] + contacts]
614
+ equil_df = equil_df[["Z_DATUM", "PRESSURE_DATUM", "EQLNUM", "OIP_INIT", *contacts]]
611
615
  equil_df["EQLNUM"] = equil_df["EQLNUM"].astype(int)
612
616
  assert not pd.isna(equil_df).any().any(), (
613
617
  f"BUG: NaNs in equil dataframe:\n{equil_df}"
@@ -1,5 +1,4 @@
1
1
  import textwrap
2
- from typing import List, Optional, Union
3
2
 
4
3
  import numpy as np
5
4
 
@@ -11,31 +10,26 @@ class PillarModel:
11
10
  The reservoir model is parametrizable in terms of options related
12
11
  to SWATINIT analysis"""
13
12
 
14
- # pylint: disable=too-many-arguments,too-many-instance-attributes,too-many-locals
15
13
  def __init__(
16
14
  self,
17
15
  cells: int = 1,
18
16
  apex: int = 1000,
19
- phases: Optional[List[str]] = None,
20
- perm: Optional[List[float]] = None,
21
- poro: Optional[List[float]] = None,
22
- swatinit: Optional[List[float]] = None,
23
- satnum: Optional[List[int]] = None, # one value pr. cell
24
- swl: Optional[List[float]] = None, # first saturation in swof, one pr. satnum
25
- swlpc: Optional[
26
- List[float]
27
- ] = None, # swl scaler for pc only, leaving kr unmodified
28
- swu: Optional[List[float]] = None, # maximum saturation in swof, one pr. satnum
29
- maxpc: Optional[List[float]] = None, # max pc in SWOF
30
- minpc: Optional[List[float]] = None, # pc at sw=1 in SWOF
31
- ppcwmax: Optional[List[float]] = None, # PPCWMAX keyword.
32
- eqlnum: Optional[List[int]] = None, # One value pr cell
33
- owc: Optional[
34
- List[float]
35
- ] = None, # One value pr. eqlnum region, also used for gwc.
36
- goc: Optional[
37
- Union[List[float], List[str]]
38
- ] = None, # One value pr. eqlnum region
17
+ phases: list[str] | None = None,
18
+ perm: list[float] | None = None,
19
+ poro: list[float] | None = None,
20
+ swatinit: list[float] | None = None,
21
+ satnum: list[int] | None = None, # one value pr. cell
22
+ swl: list[float] | None = None, # first saturation in swof, one pr. satnum
23
+ swlpc: list[float]
24
+ | None = None, # swl scaler for pc only, leaving kr unmodified
25
+ swu: list[float] | None = None, # maximum saturation in swof, one pr. satnum
26
+ maxpc: list[float] | None = None, # max pc in SWOF
27
+ minpc: list[float] | None = None, # pc at sw=1 in SWOF
28
+ ppcwmax: list[float] | None = None, # PPCWMAX keyword.
29
+ eqlnum: list[int] | None = None, # One value pr cell
30
+ owc: list[float]
31
+ | None = None, # One value pr. eqlnum region, also used for gwc.
32
+ goc: list[float] | list[str] | None = None, # One value pr. eqlnum region
39
33
  oip_init: int = 0, # EQUIL item 9. Eclipse default is -5
40
34
  filleps: str = "FILLEPS",
41
35
  rptrst: str = "ALLPROPS",
@@ -117,7 +111,7 @@ class PillarModel:
117
111
  else:
118
112
  self.owc = owc
119
113
 
120
- self.goc: Union[List[str], List[float]]
114
+ self.goc: list[str] | list[float]
121
115
  if goc is None:
122
116
  self.goc = ["1*"] * max(self.eqlnum)
123
117
  else:
@@ -149,7 +143,7 @@ class PillarModel:
149
143
  # we should not output SWATINIT keyword.
150
144
  else:
151
145
  # Mock a SWATINIT (constant above contact)
152
- self.swatinit = [0] * self.cells
146
+ self.swatinit = [0.0] * self.cells
153
147
  for cell_idx, _ in enumerate(self.midpoints):
154
148
  if self.midpoints[cell_idx] <= self.owc[self.eqlnum[cell_idx] - 1]:
155
149
  self.swatinit[cell_idx] = 0.4
@@ -362,7 +356,6 @@ PVDG
362
356
  return string
363
357
 
364
358
  def schedule(self) -> str:
365
- # pylint: disable=no-self-use
366
359
  """Make a string for the SCHEDULE section"""
367
360
  string = "SCHEDULE\n\n"
368
361
  string += "TSTEP \n 1 / \n"