subscript 1.14.0__tar.gz → 1.14.2__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 (409) hide show
  1. {subscript-1.14.0 → subscript-1.14.2}/.github/workflows/codecov.yml +13 -7
  2. {subscript-1.14.0 → subscript-1.14.2}/.github/workflows/subscript.yml +11 -12
  3. {subscript-1.14.0 → subscript-1.14.2}/PKG-INFO +4 -4
  4. {subscript-1.14.0 → subscript-1.14.2}/pyproject.toml +13 -9
  5. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/check_swatinit/check_swatinit.py +23 -21
  6. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/check_swatinit/plotter.py +7 -7
  7. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/csv2ofmvol/csv2ofmvol.py +2 -2
  8. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/csv_merge/csv_merge.py +1 -1
  9. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/csv_stack/csv_stack.py +1 -1
  10. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/fmuobs/parsers.py +1 -2
  11. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/fmuobs/writers.py +33 -32
  12. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/interp_relperm/interp_relperm.py +4 -4
  13. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/merge_rft_ertobs/merge_rft_ertobs.py +2 -2
  14. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/params2csv/params2csv.py +3 -4
  15. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/presentvalue/presentvalue.py +12 -9
  16. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/prtvol2csv/prtvol2csv.py +5 -4
  17. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/restartthinner/restartthinner.py +1 -1
  18. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/summaryplot/summaryplot.py +32 -39
  19. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/version.py +3 -3
  20. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/vfp2csv/vfp2csv.py +5 -5
  21. {subscript-1.14.0 → subscript-1.14.2}/src/subscript.egg-info/PKG-INFO +4 -4
  22. {subscript-1.14.0 → subscript-1.14.2}/src/subscript.egg-info/SOURCES.txt +12 -0
  23. {subscript-1.14.0 → subscript-1.14.2}/src/subscript.egg-info/requires.txt +3 -3
  24. subscript-1.14.2/tests/baseline/test_summaryplotter_mpl_test_cmd_args0.png +0 -0
  25. subscript-1.14.2/tests/baseline/test_summaryplotter_mpl_test_cmd_args1.png +0 -0
  26. subscript-1.14.2/tests/baseline/test_summaryplotter_mpl_test_cmd_args10.png +0 -0
  27. subscript-1.14.2/tests/baseline/test_summaryplotter_mpl_test_cmd_args11.png +0 -0
  28. subscript-1.14.2/tests/baseline/test_summaryplotter_mpl_test_cmd_args2.png +0 -0
  29. subscript-1.14.2/tests/baseline/test_summaryplotter_mpl_test_cmd_args3.png +0 -0
  30. subscript-1.14.2/tests/baseline/test_summaryplotter_mpl_test_cmd_args4.png +0 -0
  31. subscript-1.14.2/tests/baseline/test_summaryplotter_mpl_test_cmd_args5.png +0 -0
  32. subscript-1.14.2/tests/baseline/test_summaryplotter_mpl_test_cmd_args6.png +0 -0
  33. subscript-1.14.2/tests/baseline/test_summaryplotter_mpl_test_cmd_args7.png +0 -0
  34. subscript-1.14.2/tests/baseline/test_summaryplotter_mpl_test_cmd_args8.png +0 -0
  35. subscript-1.14.2/tests/baseline/test_summaryplotter_mpl_test_cmd_args9.png +0 -0
  36. {subscript-1.14.0 → subscript-1.14.2}/tests/test_check_swatinit.py +4 -4
  37. {subscript-1.14.0 → subscript-1.14.2}/tests/test_check_swatinit_simulators.py +9 -9
  38. {subscript-1.14.0 → subscript-1.14.2}/tests/test_csv_stack.py +4 -4
  39. {subscript-1.14.0 → subscript-1.14.2}/tests/test_fmuobs.py +16 -19
  40. {subscript-1.14.0 → subscript-1.14.2}/tests/test_merge_rft_ertobs.py +2 -2
  41. {subscript-1.14.0 → subscript-1.14.2}/tests/test_ofmvol2csv.py +3 -2
  42. {subscript-1.14.0 → subscript-1.14.2}/tests/test_params2csv.py +4 -4
  43. {subscript-1.14.0 → subscript-1.14.2}/tests/test_presentvalue.py +1 -1
  44. {subscript-1.14.0 → subscript-1.14.2}/tests/test_prtvol2csv.py +30 -12
  45. {subscript-1.14.0 → subscript-1.14.2}/tests/test_summaryplot.py +32 -0
  46. {subscript-1.14.0 → subscript-1.14.2}/.github/workflows/publish.yml +0 -0
  47. {subscript-1.14.0 → subscript-1.14.2}/.gitignore +0 -0
  48. {subscript-1.14.0 → subscript-1.14.2}/.pylintrc +0 -0
  49. {subscript-1.14.0 → subscript-1.14.2}/LICENSE +0 -0
  50. {subscript-1.14.0 → subscript-1.14.2}/README.md +0 -0
  51. {subscript-1.14.0 → subscript-1.14.2}/SECURITY.md +0 -0
  52. {subscript-1.14.0 → subscript-1.14.2}/ci/testkomodo.sh +0 -0
  53. {subscript-1.14.0 → subscript-1.14.2}/docs/Makefile +0 -0
  54. {subscript-1.14.0 → subscript-1.14.2}/docs/_static/equinor-logo.png +0 -0
  55. {subscript-1.14.0 → subscript-1.14.2}/docs/_static/equinor-logo2.jpg +0 -0
  56. {subscript-1.14.0 → subscript-1.14.2}/docs/_static/equinor-logo2.png +0 -0
  57. {subscript-1.14.0 → subscript-1.14.2}/docs/_static/equinor_logo.jpg +0 -0
  58. {subscript-1.14.0 → subscript-1.14.2}/docs/_static/equinor_logo_only.jpg +0 -0
  59. {subscript-1.14.0 → subscript-1.14.2}/docs/_templates/layout.html +0 -0
  60. {subscript-1.14.0 → subscript-1.14.2}/docs/conf.py +0 -0
  61. {subscript-1.14.0 → subscript-1.14.2}/docs/contributing.rst +0 -0
  62. {subscript-1.14.0 → subscript-1.14.2}/docs/history.rst +0 -0
  63. {subscript-1.14.0 → subscript-1.14.2}/docs/index.rst +0 -0
  64. {subscript-1.14.0 → subscript-1.14.2}/docs/make.bat +0 -0
  65. {subscript-1.14.0 → subscript-1.14.2}/docs/overview.rst +0 -0
  66. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/bjobsusers.rst +0 -0
  67. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/casegen_upcars.rst +0 -0
  68. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/check_swatinit.rst +0 -0
  69. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/convert_grid_format.rst +0 -0
  70. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/csv2ofmvol.rst +0 -0
  71. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/csv_merge.rst +0 -0
  72. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/csv_stack.rst +0 -0
  73. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/eclcompress.rst +0 -0
  74. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/ecldiff2roff.rst +0 -0
  75. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/field_statistics.rst +0 -0
  76. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/fmu_copy_revision.rst +0 -0
  77. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/fmuobs.rst +0 -0
  78. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/grav_subs_maps.rst +0 -0
  79. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/grav_subs_points.rst +0 -0
  80. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/images/Pack_sim_overview.png +0 -0
  81. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/images/Summaryplot-ensemble.png +0 -0
  82. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/images/Summaryplot-ert.png +0 -0
  83. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/images/Summaryplot-normalizeexample.png +0 -0
  84. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/images/Workflow_sector2fluxnum.png +0 -0
  85. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/images/casegen_upcars_geometry.png +0 -0
  86. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/images/check_swatinit_scatter.png +0 -0
  87. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/images/check_swatinit_volplot.png +0 -0
  88. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/images/ecl-swat-initialization.png +0 -0
  89. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/images/make_check_swatinit_images.sh +0 -0
  90. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/images/resinsight_wells_project_example.png +0 -0
  91. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/interp_relperm.rst +0 -0
  92. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/merge_rft_ertobs.rst +0 -0
  93. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/merge_unrst_files.rst +0 -0
  94. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/ofmvol2csv.rst +0 -0
  95. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/pack_sim.rst +0 -0
  96. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/params2csv.rst +0 -0
  97. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/presentvalue.rst +0 -0
  98. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/prtvol2csv.csv +0 -0
  99. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/prtvol2csv.rst +0 -0
  100. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/restartthinner.rst +0 -0
  101. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/ri_wellmod.rst +0 -0
  102. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/rmsecl_volumetrics.rst +0 -0
  103. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/sector2fluxnum.rst +0 -0
  104. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/summaryplot.rst +0 -0
  105. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/sunsch.rst +0 -0
  106. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/sw_model_utilities.rst +0 -0
  107. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/vfp2csv.rst +0 -0
  108. {subscript-1.14.0 → subscript-1.14.2}/docs/scripts/welltest_dpds.rst +0 -0
  109. {subscript-1.14.0 → subscript-1.14.2}/docs/usage.rst +0 -0
  110. {subscript-1.14.0 → subscript-1.14.2}/setup.cfg +0 -0
  111. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/__init__.py +0 -0
  112. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/bjobsusers/__init__.py +0 -0
  113. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/bjobsusers/bjobsusers.py +0 -0
  114. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/casegen_upcars/__init__.py +0 -0
  115. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/casegen_upcars/casegen_upcars.py +0 -0
  116. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/casegen_upcars/model.py +0 -0
  117. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/casegen_upcars/udf.py +0 -0
  118. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/casegen_upcars/udf_arg_parser.py +0 -0
  119. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/check_swatinit/__init__.py +0 -0
  120. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/check_swatinit/constants.py +0 -0
  121. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/check_swatinit/pillarmodel.py +0 -0
  122. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/convert_grid_format/__init__.py +0 -0
  123. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/convert_grid_format/convert_grid_format.py +0 -0
  124. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/csv2ofmvol/__init__.py +0 -0
  125. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/csv_merge/__init__.py +0 -0
  126. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/csv_stack/__init__.py +0 -0
  127. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/eclcompress/__init__.py +0 -0
  128. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/eclcompress/allowlist.py +0 -0
  129. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/eclcompress/eclcompress.py +0 -0
  130. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/ecldiff2roff/__init__.py +0 -0
  131. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/ecldiff2roff/ecldiff2roff.py +0 -0
  132. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/field_statistics/__init__.py +0 -0
  133. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/field_statistics/field_statistics.py +0 -0
  134. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/fmu_copy_revision/__init__.py +0 -0
  135. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/fmu_copy_revision/fmu_copy_revision.py +0 -0
  136. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/fmuobs/__init__.py +0 -0
  137. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/fmuobs/fmuobs.py +0 -0
  138. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/fmuobs/util.py +0 -0
  139. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/grav_subs_maps/__init__.py +0 -0
  140. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/grav_subs_maps/grav_subs_maps.py +0 -0
  141. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/grav_subs_points/__init__.py +0 -0
  142. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/grav_subs_points/grav_subs_points.py +0 -0
  143. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/hook_implementations/__init__.py +0 -0
  144. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/hook_implementations/forward_model_steps.py +0 -0
  145. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/interp_relperm/__init__.py +0 -0
  146. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/legacy/duf +0 -0
  147. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/legacy/eclmanual +0 -0
  148. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/legacy/ertwatch +0 -0
  149. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/legacy/list_rms_usage +0 -0
  150. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/legacy/nosim +0 -0
  151. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/legacy/runeclipse +0 -0
  152. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/merge_rft_ertobs/__init__.py +0 -0
  153. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/merge_unrst_files/__init__.py +0 -0
  154. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/merge_unrst_files/merge_unrst_files.py +0 -0
  155. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/ofmvol2csv/__init__.py +0 -0
  156. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/ofmvol2csv/ofmvol2csv.py +0 -0
  157. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/pack_sim/__init__.py +0 -0
  158. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/pack_sim/pack_sim.py +0 -0
  159. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/params2csv/__init__.py +0 -0
  160. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/presentvalue/__init__.py +0 -0
  161. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/prtvol2csv/__init__.py +0 -0
  162. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/restartthinner/__init__.py +0 -0
  163. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/ri_wellmod/__init__.py +0 -0
  164. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/ri_wellmod/ri_wellmod.py +0 -0
  165. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/rmsecl_volumetrics/__init__.py +0 -0
  166. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/rmsecl_volumetrics/rmsecl_volumetrics.py +0 -0
  167. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/sector2fluxnum/__init__.py +0 -0
  168. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/sector2fluxnum/completions.py +0 -0
  169. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/sector2fluxnum/datafile_obj.py +0 -0
  170. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/sector2fluxnum/flux_obj.py +0 -0
  171. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/sector2fluxnum/flux_util.py +0 -0
  172. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/sector2fluxnum/fluxfile_obj.py +0 -0
  173. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/sector2fluxnum/sector2fluxnum.py +0 -0
  174. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/summaryplot/__init__.py +0 -0
  175. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/sunsch/__init__.py +0 -0
  176. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/sunsch/sunsch.py +0 -0
  177. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/sunsch/time_vector.py +0 -0
  178. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/sw_model_utilities/__init__.py +0 -0
  179. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/sw_model_utilities/sw_model_utilities.py +0 -0
  180. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/vfp2csv/__init__.py +0 -0
  181. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/welltest_dpds/__init__.py +0 -0
  182. {subscript-1.14.0 → subscript-1.14.2}/src/subscript/welltest_dpds/welltest_dpds.py +0 -0
  183. {subscript-1.14.0 → subscript-1.14.2}/src/subscript.egg-info/dependency_links.txt +0 -0
  184. {subscript-1.14.0 → subscript-1.14.2}/src/subscript.egg-info/entry_points.txt +0 -0
  185. {subscript-1.14.0 → subscript-1.14.2}/src/subscript.egg-info/top_level.txt +0 -0
  186. {subscript-1.14.0 → subscript-1.14.2}/tests/__init__.py +0 -0
  187. {subscript-1.14.0 → subscript-1.14.2}/tests/conftest.py +0 -0
  188. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/edit/drogon.trans +0 -0
  189. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/grid/drogon.faults +0 -0
  190. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/grid/drogon.grid +0 -0
  191. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/grid/drogon.multnum +0 -0
  192. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/grid/drogon.multregt +0 -0
  193. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/grid/drogon.perm +0 -0
  194. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/grid/drogon.poro +0 -0
  195. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/props/drogon.pvt +0 -0
  196. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/props/drogon.sattab +0 -0
  197. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/props/drogon.swatinit +0 -0
  198. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/regions/drogon.eqlnum +0 -0
  199. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/regions/drogon.fipnum +0 -0
  200. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/regions/drogon.fipzon +0 -0
  201. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/regions/drogon.pvtnum +0 -0
  202. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/regions/drogon.satnum +0 -0
  203. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/runspec/drogon.dimens +0 -0
  204. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/runspec/drogon.eqldims +0 -0
  205. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/runspec/drogon.gridopts +0 -0
  206. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/runspec/drogon.regdims +0 -0
  207. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/runspec/drogon.tabdims +0 -0
  208. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/schedule/55_33-1.sch +0 -0
  209. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/schedule/55_33-1.wells +0 -0
  210. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/schedule/drogon_hist.sch +0 -0
  211. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/schedule/vfp/A-1.inc +0 -0
  212. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/schedule/vfp/A-2.inc +0 -0
  213. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/schedule/vfp/A-3.inc +0 -0
  214. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/schedule/vfp/A-4.inc +0 -0
  215. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/solution/drogon.equil +0 -0
  216. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/solution/drogon.rxvd +0 -0
  217. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/solution/drogon.thpres +0 -0
  218. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/include/summary/drogon.summary +0 -0
  219. {subscript-1.14.0 → subscript-1.14.2}/tests/data/drogon/eclipse/model/DROGON-0.DATA +0 -0
  220. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/include/grid/reek.faults +0 -0
  221. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/include/grid/reek.grid +0 -0
  222. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/include/grid/reek.multflt +0 -0
  223. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/include/grid/reek.multz +0 -0
  224. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/include/grid/reek.perm +0 -0
  225. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/include/grid/reek.poro +0 -0
  226. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/include/props/let-sgof.txt +0 -0
  227. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/include/props/let-swof.txt +0 -0
  228. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/include/props/reek.endpoints +0 -0
  229. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/include/props/reek.pvt +0 -0
  230. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/include/props/reek.swatinit +0 -0
  231. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/include/props/sgof.txt +0 -0
  232. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/include/props/swof.inc +0 -0
  233. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/include/props/swof.txt +0 -0
  234. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/include/regions/reek.eqlnum +0 -0
  235. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/include/regions/reek.fipnum +0 -0
  236. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/include/schedule/reek_history.sch +0 -0
  237. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/include/solution/reek.equil +0 -0
  238. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/include/summary/reek.smry +0 -0
  239. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/model/2_R001_REEK-0.DATA +0 -0
  240. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/model/2_R001_REEK-0.ECLEND +0 -0
  241. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/model/2_R001_REEK-0.EGRID +0 -0
  242. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/model/2_R001_REEK-0.INIT +0 -0
  243. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/model/2_R001_REEK-0.LOG +0 -0
  244. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/model/2_R001_REEK-0.PRT +0 -0
  245. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/model/2_R001_REEK-0.RFT +0 -0
  246. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/model/2_R001_REEK-0.SMSPEC +0 -0
  247. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/model/2_R001_REEK-0.UNRST +0 -0
  248. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/model/2_R001_REEK-0.UNSMRY +0 -0
  249. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/eclipse/model/parameters.txt +0 -0
  250. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/parameters.txt +0 -0
  251. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/rms/README +0 -0
  252. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/rms/reek.rms10.1.3/.master +0 -0
  253. {subscript-1.14.0 → subscript-1.14.2}/tests/data/reek/rms/reek.rms11.1.0/.master +0 -0
  254. {subscript-1.14.0 → subscript-1.14.2}/tests/data/vfp/GasProd.VFP +0 -0
  255. {subscript-1.14.0 → subscript-1.14.2}/tests/data/vfp/pd2.VFP +0 -0
  256. {subscript-1.14.0 → subscript-1.14.2}/tests/data/welltest/eclipse/model/DROGON_DST_PLT-0.SMSPEC +0 -0
  257. {subscript-1.14.0 → subscript-1.14.2}/tests/data/welltest/eclipse/model/DROGON_DST_PLT-0.UNSMRY +0 -0
  258. {subscript-1.14.0 → subscript-1.14.2}/tests/test_bjobsusers.py +0 -0
  259. {subscript-1.14.0 → subscript-1.14.2}/tests/test_casegen_upcars.py +0 -0
  260. {subscript-1.14.0 → subscript-1.14.2}/tests/test_convert_grid_format.py +0 -0
  261. {subscript-1.14.0 → subscript-1.14.2}/tests/test_csv2ofmvol.py +0 -0
  262. {subscript-1.14.0 → subscript-1.14.2}/tests/test_csv_merge.py +0 -0
  263. {subscript-1.14.0 → subscript-1.14.2}/tests/test_docs.py +0 -0
  264. {subscript-1.14.0 → subscript-1.14.2}/tests/test_eclcompress.py +0 -0
  265. {subscript-1.14.0 → subscript-1.14.2}/tests/test_ecldiff2roff.py +0 -0
  266. {subscript-1.14.0 → subscript-1.14.2}/tests/test_eclinit2roff.py +0 -0
  267. {subscript-1.14.0 → subscript-1.14.2}/tests/test_field_statistics.py +0 -0
  268. {subscript-1.14.0 → subscript-1.14.2}/tests/test_fmu_copy_revision.py +0 -0
  269. {subscript-1.14.0 → subscript-1.14.2}/tests/test_fmuobs_parsers.py +0 -0
  270. {subscript-1.14.0 → subscript-1.14.2}/tests/test_fmuobs_writers.py +0 -0
  271. {subscript-1.14.0 → subscript-1.14.2}/tests/test_grav_subs_maps.py +0 -0
  272. {subscript-1.14.0 → subscript-1.14.2}/tests/test_grav_subs_points.py +0 -0
  273. {subscript-1.14.0 → subscript-1.14.2}/tests/test_hook_implementations.py +0 -0
  274. {subscript-1.14.0 → subscript-1.14.2}/tests/test_interp_relperm.py +0 -0
  275. {subscript-1.14.0 → subscript-1.14.2}/tests/test_merge_unrst_files.py +0 -0
  276. {subscript-1.14.0 → subscript-1.14.2}/tests/test_pack_sim.py +0 -0
  277. {subscript-1.14.0 → subscript-1.14.2}/tests/test_restartthinner.py +0 -0
  278. {subscript-1.14.0 → subscript-1.14.2}/tests/test_ri_wellmod.py +0 -0
  279. {subscript-1.14.0 → subscript-1.14.2}/tests/test_rmsecl_volumetrics.py +0 -0
  280. {subscript-1.14.0 → subscript-1.14.2}/tests/test_sector2fluxnum.py +0 -0
  281. {subscript-1.14.0 → subscript-1.14.2}/tests/test_subscriptlogger.py +0 -0
  282. {subscript-1.14.0 → subscript-1.14.2}/tests/test_sunsch.py +0 -0
  283. {subscript-1.14.0 → subscript-1.14.2}/tests/test_sw_model_utilities.py +0 -0
  284. {subscript-1.14.0 → subscript-1.14.2}/tests/test_vfp2csv.py +0 -0
  285. {subscript-1.14.0 → subscript-1.14.2}/tests/test_welltest_dpds.py +0 -0
  286. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_casegen_upcars/demo_large_scale.yaml +0 -0
  287. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_casegen_upcars/demo_small_scale.yaml +0 -0
  288. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_casegen_upcars/dump_value.tmpl +0 -0
  289. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_casegen_upcars/upcars_eclipse_ref_lg.tmpl +0 -0
  290. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_casegen_upcars/upcars_eclipse_ref_ss.tmpl +0 -0
  291. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_eclcompress/permxyz.grdecl +0 -0
  292. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/config_example.yml +0 -0
  293. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/ERTBOX.roff +0 -0
  294. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/Geogrid.roff +0 -0
  295. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/files.txt +0 -0
  296. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/mean_A_P1_0.roff +0 -0
  297. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/mean_A_P1_3.roff +0 -0
  298. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/mean_A_P2_0.roff +0 -0
  299. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/mean_A_P2_3.roff +0 -0
  300. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/mean_B_P1_0.roff +0 -0
  301. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/mean_B_P1_3.roff +0 -0
  302. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/mean_C_P2_0.roff +0 -0
  303. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/mean_C_P2_3.roff +0 -0
  304. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/nactive_A_0.roff +0 -0
  305. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/nactive_A_3.roff +0 -0
  306. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/nactive_B_0.roff +0 -0
  307. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/nactive_B_3.roff +0 -0
  308. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/nactive_C_0.roff +0 -0
  309. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/nactive_C_3.roff +0 -0
  310. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_A_F1_0.roff +0 -0
  311. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_A_F1_3.roff +0 -0
  312. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_A_F2_0.roff +0 -0
  313. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_A_F2_3.roff +0 -0
  314. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_A_F3_0.roff +0 -0
  315. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_A_F3_3.roff +0 -0
  316. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_B_F1_0.roff +0 -0
  317. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_B_F1_3.roff +0 -0
  318. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_B_F2_0.roff +0 -0
  319. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_B_F2_3.roff +0 -0
  320. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_B_F3_0.roff +0 -0
  321. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_B_F3_3.roff +0 -0
  322. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_C_F1_0.roff +0 -0
  323. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_C_F1_3.roff +0 -0
  324. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_C_F2_0.roff +0 -0
  325. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_C_F2_3.roff +0 -0
  326. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_C_F3_0.roff +0 -0
  327. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_C_F3_3.roff +0 -0
  328. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/stdev_A_P1_0.roff +0 -0
  329. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/stdev_A_P1_3.roff +0 -0
  330. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/stdev_A_P2_0.roff +0 -0
  331. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/stdev_A_P2_3.roff +0 -0
  332. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/stdev_B_P1_0.roff +0 -0
  333. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/stdev_B_P1_3.roff +0 -0
  334. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/stdev_C_P2_0.roff +0 -0
  335. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/stdev_C_P2_3.roff +0 -0
  336. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/ert/model/0readme +0 -0
  337. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/fmuconfig/output/global_variables.yml +0 -0
  338. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_field_statistics/rms/output/aps/ERTBOX.EGRID +0 -0
  339. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_fmuobs/drogon_wbhp_rft_wct_gor_tracer_4d.obs +0 -0
  340. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_fmuobs/ert-doc.csv +0 -0
  341. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_fmuobs/ert-doc.obs +0 -0
  342. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_fmuobs/ert-doc.yml +0 -0
  343. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_fmuobs/fmu-ensemble-obs.yml +0 -0
  344. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_fmuobs/hist_obs_wells.txt +0 -0
  345. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_fmuobs/ri-obs.csv +0 -0
  346. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_gravity/HIST.EGRID +0 -0
  347. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_gravity/HIST.INIT +0 -0
  348. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_gravity/HIST.UNRST +0 -0
  349. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_gravity/global_variables.yml +0 -0
  350. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_gravity/grav_subs_maps.yml +0 -0
  351. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_gravity/grav_subs_points.yml +0 -0
  352. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_gravity/seabed.gri +0 -0
  353. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_gravity/station_coordinates.csv +0 -0
  354. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_interp_relperm/cfg.yml +0 -0
  355. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_interp_relperm/sgof_base.inc +0 -0
  356. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_interp_relperm/sgof_opt.inc +0 -0
  357. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_interp_relperm/sgof_pes.inc +0 -0
  358. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_interp_relperm/swof_base.inc +0 -0
  359. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_interp_relperm/swof_opt.inc +0 -0
  360. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_interp_relperm/swof_pes.inc +0 -0
  361. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_merge_rft_ertobs/drogon/gendata_rft.csv +0 -0
  362. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A2.obs +0 -0
  363. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A2.txt +0 -0
  364. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A3.obs +0 -0
  365. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A3.txt +0 -0
  366. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A4.txt +0 -0
  367. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A4_1.obs +0 -0
  368. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A5.obs +0 -0
  369. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A5.txt +0 -0
  370. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A6.obs +0 -0
  371. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A6.txt +0 -0
  372. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_merge_rft_ertobs/drogon/rft/well_date_rft.txt +0 -0
  373. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_merge_unrst_files/HIST.UNRST +0 -0
  374. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_merge_unrst_files/PRED.UNRST +0 -0
  375. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_ofmvol2csv/fileA.vol +0 -0
  376. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_ofmvol2csv/fileB.vol +0 -0
  377. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_ofmvol2csv/fileC.vol +0 -0
  378. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_ofmvol2csv/ofm_example.vol +0 -0
  379. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_prtvol2csv/0readme.txt +0 -0
  380. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_prtvol2csv/DROGON_FIPNUM.PRT +0 -0
  381. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_prtvol2csv/DROGON_FIPZON.PRT +0 -0
  382. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_prtvol2csv/DROGON_INACTIVE_FIPNUM.PRT +0 -0
  383. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_prtvol2csv/DROGON_NO_INITIAL_BALANCE.PRT +0 -0
  384. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_prtvol2csv/DROGON_NO_INITIAL_BALANCE_FLOW.PRT +0 -0
  385. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_ri_wellmod/drogon_include/grid/drogon.grid.grdecl +0 -0
  386. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_ri_wellmod/drogon_include/grid/drogon.ntg.grdecl +0 -0
  387. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_ri_wellmod/drogon_include/grid/drogon.perm.grdecl +0 -0
  388. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_ri_wellmod/drogon_trajectories/rft_wells.dat +0 -0
  389. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_ri_wellmod/drogon_trajectories/wells.dat +0 -0
  390. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_ri_wellmod/drogon_wells_noicd.rsp +0 -0
  391. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_ri_wellmod/reek_trajectories/reek_wells.dat +0 -0
  392. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_ri_wellmod/ri_reek_wells.rsp +0 -0
  393. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_sector2fluxnum/DUMPFLUX_TEST.DATA +0 -0
  394. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_sector2fluxnum/DUMPFLUX_TEST.EGRID +0 -0
  395. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_sector2fluxnum/DUMPFLUX_TEST.FLUX +0 -0
  396. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_sector2fluxnum/OUT_COARSE.FLUX +0 -0
  397. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_sector2fluxnum/TEST.DATA +0 -0
  398. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_sector2fluxnum/TEST.EGRID +0 -0
  399. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_sector2fluxnum/TEST.INIT +0 -0
  400. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_sector2fluxnum/TEST.UNRST +0 -0
  401. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_sunsch/config.yml +0 -0
  402. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_sunsch/emptyinit.sch +0 -0
  403. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_sunsch/foo1.sch +0 -0
  404. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_sunsch/footemplate.sch +0 -0
  405. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_sunsch/initwithdates.sch +0 -0
  406. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_sunsch/merge2.sch +0 -0
  407. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_sunsch/mergeme.sch +0 -0
  408. {subscript-1.14.0 → subscript-1.14.2}/tests/testdata_sunsch/options3.sch +0 -0
  409. {subscript-1.14.0 → subscript-1.14.2}/tests/utils.py +0 -0
@@ -14,6 +14,7 @@ jobs:
14
14
  env:
15
15
  OS: ${{ matrix.os }}
16
16
  PYTHON: '3.12'
17
+ UV_SYSTEM_PYTHON: 1
17
18
 
18
19
  steps:
19
20
 
@@ -22,13 +23,19 @@ jobs:
22
23
  sudo apt-get update
23
24
  sudo apt-get install libegl1
24
25
 
25
- - uses: actions/checkout@v4
26
+ - uses: actions/checkout@v5
26
27
 
27
28
  - name: Setup Python
28
29
  uses: actions/setup-python@v5
29
30
  with:
30
31
  python-version: 3.12
31
32
 
33
+ - name: Install uv
34
+ uses: astral-sh/setup-uv@v6
35
+ with:
36
+ enable-cache: true
37
+ python-version: "3.12"
38
+
32
39
  - name: Install OPM-flow and ResInsight (for testing)
33
40
  run: |
34
41
  sudo apt-get install software-properties-common
@@ -40,19 +47,18 @@ jobs:
40
47
 
41
48
  - name: Install subscript and test dependencies
42
49
  run: |
43
- pip install pip -U
44
- pip install .[tests]
50
+ uv pip install ".[tests]"
45
51
 
46
- - name: Force correct RIPS version
52
+ - name: Log OPM-Flow and ResInsight version
47
53
  run: |
48
- ResInsight --console --help | grep "ResInsight v. 2021.06" && pip install rips==2021.6.0.1 || true
49
- ResInsight --console --help | grep "ResInsight v. 2020.10" && pip install rips==2020.10.0.2 || true
54
+ flow --version
55
+ ResInsight --console --version
50
56
 
51
57
  - name: Generate coverage report
52
58
  run: |
53
59
  pytest tests --disable-warnings --cov=subscript --cov-report=xml
54
60
 
55
61
  - name: Upload coverage to Codecov
56
- uses: codecov/codecov-action@v4
62
+ uses: codecov/codecov-action@v5
57
63
  with:
58
64
  token: ${{ secrets.CODECOV_TOKEN }}
@@ -16,6 +16,7 @@ on:
16
16
 
17
17
  env:
18
18
  MPLBACKEND: Agg
19
+ UV_SYSTEM_PYTHON: 1
19
20
 
20
21
  jobs:
21
22
  subscript:
@@ -32,7 +33,7 @@ jobs:
32
33
  sudo apt-get install libegl1
33
34
 
34
35
  - name: Checkout commit locally
35
- uses: actions/checkout@v4
36
+ uses: actions/checkout@v5
36
37
  with:
37
38
  fetch-depth: 0
38
39
 
@@ -41,6 +42,12 @@ jobs:
41
42
  with:
42
43
  python-version: ${{ matrix.python-version }}
43
44
 
45
+ - name: Install uv
46
+ uses: astral-sh/setup-uv@v6
47
+ with:
48
+ enable-cache: true
49
+ python-version: ${{ matrix.python-version }}
50
+
44
51
  - name: Install OPM-flow and ResInsight (for testing)
45
52
  run: |
46
53
  sudo apt-get install software-properties-common
@@ -53,15 +60,7 @@ jobs:
53
60
  - name: Install subscript with dependencies
54
61
  if: ${{ always() }}
55
62
  run: |
56
- pip install --upgrade pip
57
- pip install .[tests,docs]
58
-
59
- - name: Force correct RIPS version
60
- run: |
61
- ResInsight --console --help | grep "ResInsight v. 2021.06" \
62
- && pip install rips==2021.6.0.1 || true
63
- ResInsight --console --help | grep "ResInsight v. 2020.10" \
64
- && pip install rips==2020.10.0.2 || true
63
+ uv pip install ".[tests, docs]"
65
64
 
66
65
  - name: Log OPM-Flow and ResInsight version
67
66
  run: |
@@ -69,7 +68,7 @@ jobs:
69
68
  ResInsight --console --version
70
69
 
71
70
  - name: List all installed packages
72
- run: pip freeze
71
+ run: uv pip freeze
73
72
 
74
73
  - name: Format with ruff
75
74
  if: ${{ always() }}
@@ -85,7 +84,7 @@ jobs:
85
84
 
86
85
  - name: Run tests
87
86
  if: ${{ always() }}
88
- run: pytest -n auto tests
87
+ run: pytest -n auto tests --mpl
89
88
 
90
89
  - name: Syntax check documentation
91
90
  if: ${{ always() }}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: subscript
3
- Version: 1.14.0
3
+ Version: 1.14.2
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
@@ -719,8 +719,8 @@ Requires-Dist: mypy; extra == "tests"
719
719
  Requires-Dist: pytest; extra == "tests"
720
720
  Requires-Dist: pytest-cov; extra == "tests"
721
721
  Requires-Dist: pytest-mock; extra == "tests"
722
+ Requires-Dist: pytest-mpl; extra == "tests"
722
723
  Requires-Dist: pytest-xdist; extra == "tests"
723
- Requires-Dist: PyQt5-sip; extra == "tests"
724
724
  Requires-Dist: rstcheck; extra == "tests"
725
725
  Requires-Dist: rstcheck-core; extra == "tests"
726
726
  Requires-Dist: ruff; extra == "tests"
@@ -729,9 +729,9 @@ Requires-Dist: types-PyYAML; extra == "tests"
729
729
  Requires-Dist: types-python-dateutil; extra == "tests"
730
730
  Provides-Extra: docs
731
731
  Requires-Dist: autoapi; extra == "docs"
732
- Requires-Dist: sphinx<8.2.0; extra == "docs"
732
+ Requires-Dist: sphinx; extra == "docs"
733
733
  Requires-Dist: sphinx-argparse; extra == "docs"
734
- Requires-Dist: sphinx-autodoc-typehints<2.4; extra == "docs"
734
+ Requires-Dist: sphinx-autodoc-typehints; extra == "docs"
735
735
  Requires-Dist: sphinx-copybutton; extra == "docs"
736
736
  Requires-Dist: sphinx-togglebutton; extra == "docs"
737
737
  Requires-Dist: sphinx_rtd_theme; extra == "docs"
@@ -2,7 +2,6 @@
2
2
  requires = [
3
3
  "setuptools>=45.0",
4
4
  "setuptools_scm[toml]>=6.2",
5
- "wheel>=0.38.1",
6
5
  ]
7
6
  build-backend = "setuptools.build_meta"
8
7
 
@@ -60,8 +59,8 @@ tests = [
60
59
  "pytest",
61
60
  "pytest-cov",
62
61
  "pytest-mock",
62
+ "pytest-mpl",
63
63
  "pytest-xdist",
64
- "PyQt5-sip",
65
64
  "rstcheck",
66
65
  "rstcheck-core",
67
66
  "ruff",
@@ -71,9 +70,9 @@ tests = [
71
70
  ]
72
71
  docs = [
73
72
  "autoapi",
74
- "sphinx<8.2.0",
73
+ "sphinx",
75
74
  "sphinx-argparse",
76
- "sphinx-autodoc-typehints<2.4",
75
+ "sphinx-autodoc-typehints",
77
76
  "sphinx-copybutton",
78
77
  "sphinx-togglebutton",
79
78
  "sphinx_rtd_theme",
@@ -164,10 +163,11 @@ markers = [
164
163
  ignore_directives = ["argparse", "automodule"]
165
164
 
166
165
  [tool.ruff]
167
- lint.ignore = [
168
- "C901",
169
- ]
170
- lint.select = [
166
+ src = ["src"]
167
+ line-length = 88
168
+
169
+ [tool.ruff.lint]
170
+ select = [
171
171
  "C",
172
172
  "E",
173
173
  "F",
@@ -178,8 +178,12 @@ lint.select = [
178
178
  "RSE",
179
179
  "SIM",
180
180
  "W",
181
+ "PD",
182
+ ]
183
+ ignore = [
184
+ "C901",
185
+ "PD013",
181
186
  ]
182
- line-length = 88
183
187
 
184
188
  [tool.ruff.lint.isort]
185
189
  combine-as-imports = true
@@ -74,21 +74,23 @@ def main() -> None:
74
74
 
75
75
  if args.volplot or args.volplotfile:
76
76
  plotter.wvol_waterfall(qc_vols)
77
- if args.volplot:
78
- pyplot.show()
79
77
  if args.volplotfile:
80
78
  print(f"Dumping volume plot to {args.volplotfile}")
81
79
  pyplot.savefig(args.volplotfile)
80
+ if args.volplot:
81
+ pyplot.show()
82
82
 
83
- if (args.plotfile or args.plot) and args.eqlnum not in qc_frame["EQLNUM"].values:
83
+ if (args.plotfile or args.plot) and args.eqlnum not in qc_frame[
84
+ "EQLNUM"
85
+ ].to_numpy():
84
86
  sys.exit(f"Error: EQLNUM {args.eqlnum} does not exist in grid. No plotting.")
85
87
  if args.plot or args.plotfile:
86
88
  plotter.plot_qc_panels(qc_frame[qc_frame["EQLNUM"] == args.eqlnum])
87
- if args.plot:
88
- pyplot.show()
89
89
  if args.plotfile:
90
90
  print(f"Dumping plot to {args.plotfile}")
91
91
  pyplot.savefig(args.plotfile)
92
+ if args.plot:
93
+ pyplot.show()
92
94
 
93
95
 
94
96
  def check_applicability(eclfiles: res2df.ResdataFiles) -> None:
@@ -129,7 +131,7 @@ def reorder_dframe_for_nonnans(dframe: pd.DataFrame) -> pd.DataFrame:
129
131
  will aid data analysis application to deduce correct datatypes for
130
132
  columns"""
131
133
  null_count = "__NULL_COUNT__"
132
- dframe[null_count] = dframe.isnull().sum(axis=1)
134
+ dframe[null_count] = dframe.isna().sum(axis=1)
133
135
  return (
134
136
  dframe.sort_values(null_count).drop(null_count, axis=1).reset_index(drop=True)
135
137
  )
@@ -253,11 +255,11 @@ def make_qc_gridframe(eclfiles: res2df.ResdataFiles) -> pd.DataFrame:
253
255
  # GLOBAL_INDEX is 0-indexed.
254
256
  grid_df["SWATINIT_DECK"] = pd.Series(swatinit_deckdata)[
255
257
  grid_df["GLOBAL_INDEX"].astype(int).tolist()
256
- ].values
258
+ ].to_numpy()
257
259
 
258
260
  if "SWATINIT" not in grid_df:
259
261
  # OPM-flow does not include SWATINIT in the INIT file.
260
- grid_df.rename({"SWATINIT_DECK": "SWATINIT"}, axis="columns", inplace=True)
262
+ grid_df = grid_df.rename({"SWATINIT_DECK": "SWATINIT"}, axis="columns")
261
263
  elif "SWATINIT_DECK" in grid_df:
262
264
  # (if SWATINIT is inputted using binary data in Eclipse deck, the code above
263
265
  # is not able to extract it)
@@ -352,7 +354,7 @@ def qc_flag(qc_frame: pd.DataFrame) -> pd.DataFrame:
352
354
  qc_col[
353
355
  (~np.isclose(qc_frame["OIP_INIT"], 0))
354
356
  & (~np.isclose(qc_frame["SWAT"], qc_frame["SWATINIT"], atol=1e-6))
355
- & (~pd.isnull(qc_frame["PC_SCALING"]))
357
+ & (~pd.isna(qc_frame["PC_SCALING"]))
356
358
  ] = __FINE_EQUIL__
357
359
 
358
360
  # SWATINIT=1 above contact:
@@ -409,9 +411,7 @@ def qc_flag(qc_frame: pd.DataFrame) -> pd.DataFrame:
409
411
 
410
412
  # Tag the remainder with "unknown", when/if this happens, it is a bug or a
411
413
  # feature request:
412
- qc_col.fillna(__UNKNOWN__, inplace=True)
413
-
414
- return qc_col
414
+ return qc_col.fillna(__UNKNOWN__)
415
415
 
416
416
 
417
417
  def qc_volumes(qc_frame: pd.DataFrame) -> Dict[str, float]:
@@ -496,8 +496,10 @@ def _evaluate_pc(
496
496
  np.interp(
497
497
  swat,
498
498
  swl
499
- + (satfunc[sat_name].values - sw_min) / (sw_max - sw_min) * (swu - swl),
500
- satfunc[pc_name].values * pc_scaling,
499
+ + (satfunc[sat_name].to_numpy() - sw_min)
500
+ / (sw_max - sw_min)
501
+ * (swu - swl),
502
+ satfunc[pc_name].to_numpy() * pc_scaling,
501
503
  )
502
504
  )
503
505
  return p_cap
@@ -534,15 +536,15 @@ def compute_pc(qc_frame: pd.DataFrame, satfunc_df: pd.DataFrame) -> pd.Series:
534
536
 
535
537
  for satnum, satnum_frame in qc_frame.groupby("SATNUM"):
536
538
  if "SWLPC" in satnum_frame:
537
- swls = satnum_frame["SWLPC"].values
539
+ swls = satnum_frame["SWLPC"].to_numpy()
538
540
  elif "SWL" in satnum_frame:
539
- swls = satnum_frame["SWL"].values
541
+ swls = satnum_frame["SWL"].to_numpy()
540
542
  else:
541
543
  swls = None
542
- swus = satnum_frame["SWU"].values if "SWU" in satnum_frame else None
544
+ swus = satnum_frame["SWU"].to_numpy() if "SWU" in satnum_frame else None
543
545
  p_cap[satnum_frame.index] = _evaluate_pc(
544
- satnum_frame["SWAT"].values,
545
- satnum_frame["PC_SCALING"].values,
546
+ satnum_frame["SWAT"].to_numpy(),
547
+ satnum_frame["PC_SCALING"].to_numpy(),
546
548
  swls,
547
549
  swus,
548
550
  satfunc_df[satfunc_df["SATNUM"] == satnum],
@@ -596,7 +598,7 @@ def merge_equil(grid_df: pd.DataFrame, equil_df: pd.DataFrame) -> pd.DataFrame:
596
598
  assert "PRESSURE" in equil_df
597
599
 
598
600
  # Be compatible with future change in res2df:
599
- equil_df.rename({"ACCURACY": "OIP_INIT"}, axis="columns", inplace=True)
601
+ equil_df = equil_df.rename({"ACCURACY": "OIP_INIT"}, axis="columns")
600
602
 
601
603
  contacts = list({"OWC", "GOC", "GWC"}.intersection(set(equil_df.columns)))
602
604
  # Rename and slice the equil dataframe:
@@ -607,7 +609,7 @@ def merge_equil(grid_df: pd.DataFrame, equil_df: pd.DataFrame) -> pd.DataFrame:
607
609
  equil_df = equil_df[equil_df["KEYWORD"] == "EQUIL"]
608
610
  equil_df = equil_df[["Z_DATUM", "PRESSURE_DATUM", "EQLNUM", "OIP_INIT"] + contacts]
609
611
  equil_df["EQLNUM"] = equil_df["EQLNUM"].astype(int)
610
- assert not pd.isnull(equil_df).any().any(), (
612
+ assert not pd.isna(equil_df).any().any(), (
611
613
  f"BUG: NaNs in equil dataframe:\n{equil_df}"
612
614
  )
613
615
  return grid_df.merge(equil_df, on="EQLNUM", how="left")
@@ -63,8 +63,8 @@ def plot_qc_panels(
63
63
  pyplot.subplot(2, 2, 4)
64
64
  pc_depth(qc_frame)
65
65
 
66
- oip_init = qc_frame["OIP_INIT"].values[0]
67
- eqlnum = qc_frame["EQLNUM"].values[0]
66
+ oip_init = qc_frame["OIP_INIT"].to_numpy()[0]
67
+ eqlnum = qc_frame["EQLNUM"].to_numpy()[0]
68
68
  pyplot.suptitle(f"EQLNUM: {eqlnum}, OIP_INIT: {oip_init}")
69
69
  if show:
70
70
  pyplot.show()
@@ -150,15 +150,15 @@ def pc_depth(
150
150
  def add_contacts_to_plot(qc_frame: pd.DataFrame, axis: pyplot.Axes) -> None:
151
151
  """Annotate axes with named horizontal lines for contacts."""
152
152
  if "OWC" in qc_frame:
153
- owc = qc_frame["OWC"].values[0] # OWC is assumed constant in the dataframe
153
+ owc = qc_frame["OWC"].to_numpy()[0] # OWC is assumed constant in the dataframe
154
154
  axis.axhline(owc, color="black", linestyle="--", linewidth=1)
155
155
  axis.annotate(f"OWC={owc:g}", (0, owc))
156
156
  if "GOC" in qc_frame:
157
- goc = qc_frame["GOC"].values[0]
157
+ goc = qc_frame["GOC"].to_numpy()[0]
158
158
  axis.axhline(goc, color="black", linestyle="--", linewidth=1)
159
159
  axis.annotate(f"GOC={goc:g}", (0, goc))
160
160
  if "GWC" in qc_frame:
161
- gwc = qc_frame["GWC"].values[0]
161
+ gwc = qc_frame["GWC"].to_numpy()[0]
162
162
  axis.axhline(gwc, color="black", linestyle="--", linewidth=1)
163
163
  axis.annotate(f"GWC={gwc:g}", (0, gwc))
164
164
 
@@ -199,10 +199,10 @@ def wvol_waterfall(qc_vols: Dict[str, float]) -> None:
199
199
  blank.loc["SWAT_WVOL"] = 0
200
200
 
201
201
  fig = trans.plot(kind="bar", alpha=0.7, stacked=True, legend=None, bottom=blank)
202
- fig.plot(step.index, step.values, "k")
202
+ fig.plot(step.index, step.to_numpy(), "k")
203
203
  pyplot.gcf().subplots_adjust(bottom=0.25)
204
204
 
205
- blanktrans = blank.values + trans["volume"].values
205
+ blanktrans = blank.to_numpy() + trans["volume"].to_numpy()
206
206
  span = blank.max() - blanktrans[1:-1].min()
207
207
 
208
208
  if np.isclose(span, 0.0):
@@ -116,7 +116,7 @@ def read_pdm_csv_files(
116
116
  # Reindex:
117
117
  data = data.set_index(["WELL", "DATE"])
118
118
 
119
- if not [data.columns.values]:
119
+ if not [data.columns.to_numpy()]:
120
120
  raise ValueError("No data columns found")
121
121
 
122
122
  # Drop duplicate multiindices (WELL, DATE)
@@ -220,7 +220,7 @@ def df2vol(data: pd.DataFrame) -> str:
220
220
 
221
221
  # Fill empty cells with zeros, empty cells can stem from concatenation
222
222
  # of dataframes with gas and water injectors.
223
- voldata.fillna(value=0.0, inplace=True)
223
+ voldata = voldata.fillna(value=0.0)
224
224
 
225
225
  volstr = ""
226
226
  volstr += "*METRIC\n"
@@ -307,7 +307,7 @@ def csv_merge_main(
307
307
  if len(merged_df[col].unique()) == 1:
308
308
  columnstodelete.append(col)
309
309
  logger.info("Dropping constant columns %s", str(columnstodelete))
310
- merged_df.drop(columnstodelete, inplace=True, axis=1)
310
+ merged_df = merged_df.drop(columnstodelete, axis=1)
311
311
 
312
312
  if merged_df.empty:
313
313
  logger.error("No data to output")
@@ -311,7 +311,7 @@ def csv_stack(
311
311
 
312
312
  # Stack the multiindex columns, this will add a lot of rows to
313
313
  # our ensemble, and condense the number of columns
314
- dframe = dframe.stack()
314
+ dframe = dframe.stack(future_stack=True)
315
315
 
316
316
  # The values from non-multiindex-columns must be propagated to
317
317
  # the rows that emerged from the stacking. If you use the
@@ -458,8 +458,7 @@ def resinsight_df2df(ri_dframe: pd.DataFrame) -> pd.DataFrame:
458
458
  if ri_dframe.empty:
459
459
  return pd.DataFrame()
460
460
 
461
- dframe = ri_dframe.copy()
462
- dframe.rename({"VECTOR": "KEY"}, axis="columns", inplace=True)
461
+ dframe = ri_dframe.copy().rename({"VECTOR": "KEY"}, axis="columns")
463
462
  dframe["LABEL"] = (
464
463
  dframe["KEY"].astype(str)
465
464
  + "-"
@@ -33,20 +33,20 @@ def dfsummary2ertobs(obs_df: pd.DataFrame) -> str:
33
33
  for _, row in smry_df.iterrows():
34
34
  ertobs_str += "SUMMARY_OBSERVATION " + str(row["LABEL"]) + "\n"
35
35
  ertobs_str += "{\n"
36
- if "COMMENT" in row and not pd.isnull(row["COMMENT"]):
36
+ if "COMMENT" in row and not pd.isna(row["COMMENT"]):
37
37
  ertobs_str += (
38
38
  " -- "
39
39
  + str(row["COMMENT"]).replace("\n", "\n -- ").strip()
40
40
  + "\n"
41
41
  )
42
- if "DATE" in row and not pd.isnull(row["DATE"]):
42
+ if "DATE" in row and not pd.isna(row["DATE"]):
43
43
  ertobs_str += (
44
44
  " DATE = "
45
45
  + str(pd.to_datetime(row["DATE"]).strftime(ERT_ISO_DATE_FORMAT))
46
46
  + ";\n"
47
47
  )
48
48
  for dataname in ["KEY", "DAYS", "RESTART", "VALUE", "ERROR", "SOURCE"]:
49
- if dataname in row and not pd.isnull(row[dataname]):
49
+ if dataname in row and not pd.isna(row[dataname]):
50
50
  ertobs_str += " " + dataname + " = " + str(row[dataname]) + ";\n"
51
51
  ertobs_str += "};\n"
52
52
  return ertobs_str
@@ -70,12 +70,14 @@ def dfblock2ertobs(obs_df: pd.DataFrame) -> str:
70
70
  )
71
71
  for obslabel, block_df in block_obs_df.groupby("LABEL"):
72
72
  ertobs_str += "BLOCK_OBSERVATION " + obslabel + "\n{\n"
73
- if "COMMENT" in block_df and not pd.isnull(block_df["COMMENT"]).any():
73
+ if "COMMENT" in block_df and not pd.isna(block_df["COMMENT"]).any():
74
74
  if len(block_df["COMMENT"].dropna().unique()) != 1:
75
75
  logger.warning("Inconsistency in COMMENT in block dataframe")
76
76
  ertobs_str += (
77
77
  " -- "
78
- + str(block_df["COMMENT"].values[0]).replace("\n", "\n -- ").strip()
78
+ + str(block_df["COMMENT"].to_numpy()[0])
79
+ .replace("\n", "\n -- ")
80
+ .strip()
79
81
  + "\n"
80
82
  )
81
83
  for dataname in ["FIELD", "DATE"]:
@@ -85,7 +87,7 @@ def dfblock2ertobs(obs_df: pd.DataFrame) -> str:
85
87
  " "
86
88
  + dataname
87
89
  + " = "
88
- + str(block_df[dataname].values[0])
90
+ + str(block_df[dataname].to_numpy()[0])
89
91
  + ";\n"
90
92
  )
91
93
  else:
@@ -94,7 +96,7 @@ def dfblock2ertobs(obs_df: pd.DataFrame) -> str:
94
96
  f"block dataframe for one label has multiple {dataname}"
95
97
  )
96
98
  for _, row in block_df.iterrows():
97
- if "SUBCOMMENT" in row and not pd.isnull("SUBCOMMENT"):
99
+ if "SUBCOMMENT" in row and not pd.isna("SUBCOMMENT"):
98
100
  ertobs_str += (
99
101
  " -- "
100
102
  + str(row["SUBCOMMENT"]).strip().replace("\n", "\n -- ").strip()
@@ -102,7 +104,7 @@ def dfblock2ertobs(obs_df: pd.DataFrame) -> str:
102
104
  )
103
105
  ertobs_str += " OBS " + row["OBS"] + " {"
104
106
  for dataname in ["I", "J", "K", "VALUE", "ERROR", "SOURCE"]:
105
- if dataname in row and not pd.isnull(row[dataname]):
107
+ if dataname in row and not pd.isna(row[dataname]):
106
108
  ertobs_str += " " + dataname + " = " + str(row[dataname]) + ";"
107
109
  ertobs_str += "};\n"
108
110
  ertobs_str += "};\n"
@@ -138,17 +140,17 @@ def dfhistory2ertobs(obs_df: pd.DataFrame) -> str:
138
140
  .to_dict(orient="records")[0]
139
141
  )
140
142
  for dataname in ["ERROR", "ERROR_MODE", "ERROR_MIN"]:
141
- if dataname in default_row and not pd.isnull(default_row[dataname]):
143
+ if dataname in default_row and not pd.isna(default_row[dataname]):
142
144
  ertobs_str += (
143
145
  " " + dataname + " = " + str(default_row[dataname]) + ";\n"
144
146
  )
145
147
  for _, row in history_df.iterrows():
146
- if "SEGMENT" in row and not pd.isnull(row["SEGMENT"]):
148
+ if "SEGMENT" in row and not pd.isna(row["SEGMENT"]):
147
149
  if row["SEGMENT"] == "DEFAULT":
148
150
  continue
149
151
  ertobs_str += " SEGMENT " + row["SEGMENT"] + " {"
150
152
  for dataname in ["START", "STOP", "ERROR", "ERROR_MODE"]:
151
- if dataname in row and not pd.isnull(row[dataname]):
153
+ if dataname in row and not pd.isna(row[dataname]):
152
154
  ertobs_str += " " + dataname + " = " + str(row[dataname]) + ";"
153
155
  ertobs_str += "};\n"
154
156
  ertobs_str += "};\n"
@@ -185,7 +187,7 @@ def dfgeneral2ertobs(obs_df: pd.DataFrame) -> str:
185
187
  "INDEX_LIST",
186
188
  "ERROR_COVAR",
187
189
  ]:
188
- if dataname in row and not pd.isnull(row[dataname]):
190
+ if dataname in row and not pd.isna(row[dataname]):
189
191
  ertobs_str += " " + dataname + " = " + str(row[dataname]) + ";\n"
190
192
  ertobs_str += "};\n"
191
193
 
@@ -240,11 +242,11 @@ def summary_df2obsdict(smry_df: pd.DataFrame) -> List[dict]:
240
242
  assert isinstance(smry_df, pd.DataFrame)
241
243
  if "CLASS" in smry_df:
242
244
  assert len(smry_df["CLASS"].unique()) == 1
243
- smry_df.drop("CLASS", axis=1, inplace=True)
245
+ smry_df = smry_df.drop("CLASS", axis=1)
244
246
 
245
247
  smry_obs_list = []
246
248
  if isinstance(smry_df, pd.DataFrame):
247
- smry_df.dropna(axis=1, how="all", inplace=True)
249
+ smry_df = smry_df.dropna(axis=1, how="all")
248
250
 
249
251
  if "DATE" not in smry_df:
250
252
  raise ValueError("Can't have summary observation without a date")
@@ -258,10 +260,10 @@ def summary_df2obsdict(smry_df: pd.DataFrame) -> List[dict]:
258
260
  for smrykey, smrykey_df in smry_df.groupby("KEY"):
259
261
  smry_obs_element = {}
260
262
  smry_obs_element["key"] = smrykey
261
- if "COMMENT" in smrykey_df and not pd.isnull(smrykey_df["COMMENT"]).all():
263
+ if "COMMENT" in smrykey_df and not pd.isna(smrykey_df["COMMENT"]).all():
262
264
  smry_obs_element["comment"] = smrykey_df["COMMENT"].unique()[0]
263
265
  if isinstance(smrykey_df, pd.DataFrame):
264
- smrykey_df.drop("KEY", axis=1, inplace=True)
266
+ smrykey_df = smrykey_df.drop("KEY", axis=1)
265
267
  if "SUBCOMMENT" in smrykey_df:
266
268
  smrykey_df["COMMENT"] = smrykey_df["SUBCOMMENT"]
267
269
  del smrykey_df["SUBCOMMENT"]
@@ -290,13 +292,14 @@ def convert_dframe_date_to_str(dframe: pd.DataFrame) -> pd.DataFrame:
290
292
  pd.DataFrame: DATE as a string type
291
293
  """
292
294
  if "DATE" in dframe:
293
- dframe = dframe.copy()
294
- dframe["DATE"] = (
295
- dframe["DATE"]
296
- .astype(str)
297
- .replace(["NaT", "NaN", "nan"], np.nan)
298
- .infer_objects()
299
- )
295
+ with pd.option_context("future.no_silent_downcasting", True):
296
+ dframe = dframe.copy()
297
+ dframe["DATE"] = (
298
+ dframe["DATE"]
299
+ .astype(str)
300
+ .replace(["NaT", "NaN", "nan"], np.nan)
301
+ .infer_objects(copy=False)
302
+ )
300
303
 
301
304
  return dframe
302
305
 
@@ -317,14 +320,12 @@ def block_df2obsdict(block_df: pd.DataFrame) -> List[dict]:
317
320
  block_obs_list = []
318
321
  if "CLASS" in block_df:
319
322
  assert len(block_df["CLASS"].unique()) == 1
320
- block_df.drop("CLASS", axis=1, inplace=True)
323
+ block_df = block_df.drop("CLASS", axis=1)
321
324
 
322
325
  if "DATE" not in block_df:
323
326
  raise ValueError("Can't have rft/block observation without a date")
324
327
 
325
- block_df = convert_dframe_date_to_str(block_df)
326
-
327
- block_df.dropna(axis=1, how="all", inplace=True)
328
+ block_df = convert_dframe_date_to_str(block_df).dropna(axis=1, how="all")
328
329
 
329
330
  for blocklabel, blocklabel_df in block_df.groupby(["LABEL", "DATE"]):
330
331
  blocklabel_dict = {}
@@ -372,13 +373,13 @@ def df2obsdict(obs_df: pd.DataFrame) -> dict:
372
373
  return {}
373
374
 
374
375
  # Process SUMMARY_OBSERVATION:
375
- if "SUMMARY_OBSERVATION" in obs_df["CLASS"].values:
376
+ if "SUMMARY_OBSERVATION" in obs_df["CLASS"].to_numpy():
376
377
  obsdict[CLASS_SHORTNAME["SUMMARY_OBSERVATION"]] = summary_df2obsdict(
377
378
  obs_df.set_index("CLASS").loc[["SUMMARY_OBSERVATION"]]
378
379
  )
379
380
 
380
381
  # Process BLOCK_OBSERVATION:
381
- if "BLOCK_OBSERVATION" in obs_df["CLASS"].values:
382
+ if "BLOCK_OBSERVATION" in obs_df["CLASS"].to_numpy():
382
383
  obsdict[CLASS_SHORTNAME["BLOCK_OBSERVATION"]] = block_df2obsdict(
383
384
  obs_df.set_index("CLASS").loc[["BLOCK_OBSERVATION"]]
384
385
  )
@@ -408,9 +409,9 @@ def df2resinsight_df(obs_df: pd.DataFrame) -> pd.DataFrame:
408
409
  ri_dframe = obs_df.copy()
409
410
 
410
411
  # Only SUMMARY_OBSERVATION is supported:
411
- ri_dframe = ri_dframe[ri_dframe["CLASS"] == "SUMMARY_OBSERVATION"]
412
-
413
- ri_dframe.rename({"KEY": "VECTOR"}, axis="columns", inplace=True)
412
+ ri_dframe = ri_dframe[ri_dframe["CLASS"] == "SUMMARY_OBSERVATION"].rename(
413
+ {"KEY": "VECTOR"}, axis="columns"
414
+ )
414
415
 
415
416
  # Ensure all vectors are present:
416
417
  for ri_vec in ri_column_names:
@@ -169,7 +169,7 @@ def make_wateroilgas(dframe: pd.DataFrame, delta_s: float) -> pyscal.WaterOilGas
169
169
 
170
170
  # If we have parsed family 2 input, KRO and KROW are not
171
171
  # on the same row. Merge the rows into family 1 style:
172
- if "KEYWORD" in dframe and "SOF3" in dframe["KEYWORD"].values:
172
+ if "KEYWORD" in dframe and "SOF3" in dframe["KEYWORD"].to_numpy():
173
173
  sof3_rows = dframe["KEYWORD"] == "SOF3"
174
174
  dframe.loc[sof3_rows, "SW"] = 1 - dframe[sof3_rows]["SO"]
175
175
  swl = dframe["SW"].min()
@@ -406,9 +406,9 @@ def process_config(cfg: Dict[str, Any], root_path: Optional[Path] = None) -> Non
406
406
  set(base_df.columns) == set(low_df.columns)
407
407
  and set(base_df.columns) == set(high_df.columns)
408
408
  ):
409
- logger.error("Base input had columns: %s", str(base_df.columns.values))
410
- logger.error("Low input had columns: %s", str(low_df.columns.values))
411
- logger.error("High input had columns: %s", str(high_df.columns.values))
409
+ logger.error("Base input had columns: %s", str(base_df.columns.to_numpy()))
410
+ logger.error("Low input had columns: %s", str(low_df.columns.to_numpy()))
411
+ logger.error("High input had columns: %s", str(high_df.columns.to_numpy()))
412
412
  logger.error("Inconsistent input data, check keywords in input files")
413
413
  sys.exit(1)
414
414
 
@@ -237,9 +237,9 @@ def merge_rft_ertobs(gendatacsv: str, obsdir: str) -> pd.DataFrame:
237
237
  logger.info("Found %s active observation points", str(len(obs_df)))
238
238
 
239
239
  if "report_step" in sim_df.columns:
240
- return pd.merge(sim_df, obs_df, how="left", on=["well", "order", "report_step"])
240
+ return sim_df.merge(obs_df, how="left", on=["well", "order", "report_step"])
241
241
  # Ensure backward compatibility where gendata_rft doesn't have report_step
242
- return pd.merge(sim_df, obs_df, how="left", on=["well", "order"])
242
+ return sim_df.merge(obs_df, how="left", on=["well", "order"])
243
243
 
244
244
 
245
245
  def main() -> None:
@@ -176,10 +176,9 @@ def params2csv_main(args: argparse.Namespace) -> None:
176
176
  header=None,
177
177
  usecols=[0, 1],
178
178
  sep=r"\s+",
179
- )
180
-
181
- paramtable.drop_duplicates(
182
- "key", keep="last", inplace=True
179
+ ).drop_duplicates(
180
+ "key",
181
+ keep="last",
183
182
  ) # if key is repeated, keep the last one.
184
183
  transposed = paramtable.set_index("key").transpose()
185
184
  if args.filenamecolumnname in transposed.columns: