res2df 1.1.2__tar.gz → 1.2.1__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.
- {res2df-1.1.2 → res2df-1.2.1}/.github/workflows/codecov.yml +6 -2
- {res2df-1.1.2 → res2df-1.2.1}/.github/workflows/res2df.yml +18 -18
- res2df-1.2.1/.github/workflows/style.yml +42 -0
- res2df-1.2.1/.github/workflows/typing.yml +42 -0
- res2df-1.2.1/.pre-commit-config.yaml +20 -0
- {res2df-1.1.2 → res2df-1.2.1}/PKG-INFO +12 -12
- {res2df-1.1.2 → res2df-1.2.1}/README.md +4 -4
- res2df-1.2.1/SECURITY.md +16 -0
- {res2df-1.1.2 → res2df-1.2.1}/ci/testkomodo.sh +0 -4
- {res2df-1.1.2 → res2df-1.2.1}/docs/glossary.rst +2 -2
- {res2df-1.1.2 → res2df-1.2.1}/docs/introduction.rst +1 -1
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/equil.rst +1 -1
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/fipreports-example.txt +1 -1
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/fipreports.rst +0 -5
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/grid.rst +2 -2
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/gruptree.rst +0 -1
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/nnc.rst +0 -1
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/pvt.rst +1 -2
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/rft.rst +1 -2
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/satfunc.rst +1 -1
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/trans.rst +0 -1
- {res2df-1.1.2 → res2df-1.2.1}/res2df/__init__.py +3 -3
- {res2df-1.1.2 → res2df-1.2.1}/res2df/common.py +13 -10
- {res2df-1.1.2 → res2df-1.2.1}/res2df/compdat.py +41 -53
- {res2df-1.1.2 → res2df-1.2.1}/res2df/equil.py +10 -19
- {res2df-1.1.2 → res2df-1.2.1}/res2df/faults.py +3 -4
- {res2df-1.1.2 → res2df-1.2.1}/res2df/fipreports.py +2 -2
- {res2df-1.1.2 → res2df-1.2.1}/res2df/grid.py +10 -11
- {res2df-1.1.2 → res2df-1.2.1}/res2df/gruptree.py +9 -13
- {res2df-1.1.2 → res2df-1.2.1}/res2df/hook_implementations/jobs.py +5 -11
- {res2df-1.1.2 → res2df-1.2.1}/res2df/inferdims.py +11 -16
- {res2df-1.1.2 → res2df-1.2.1}/res2df/nnc.py +2 -2
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/readme +1 -2
- {res2df-1.1.2 → res2df-1.2.1}/res2df/parameters.py +1 -1
- {res2df-1.1.2 → res2df-1.2.1}/res2df/pillars.py +1 -4
- {res2df-1.1.2 → res2df-1.2.1}/res2df/pvt.py +20 -44
- {res2df-1.1.2 → res2df-1.2.1}/res2df/res2csv.py +1 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/rft.py +7 -8
- {res2df-1.1.2 → res2df-1.2.1}/res2df/satfunc.py +7 -11
- {res2df-1.1.2 → res2df-1.2.1}/res2df/summary.py +18 -122
- {res2df-1.1.2 → res2df-1.2.1}/res2df/trans.py +1 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/version.py +2 -2
- {res2df-1.1.2 → res2df-1.2.1}/res2df/vfp/__init__.py +1 -1
- {res2df-1.1.2 → res2df-1.2.1}/res2df/vfp/_vfp.py +12 -15
- {res2df-1.1.2 → res2df-1.2.1}/res2df/vfp/_vfpcommon.py +1 -5
- {res2df-1.1.2 → res2df-1.2.1}/res2df/vfp/_vfpinj.py +2 -2
- {res2df-1.1.2 → res2df-1.2.1}/res2df/vfp/_vfpprod.py +4 -5
- {res2df-1.1.2 → res2df-1.2.1}/res2df/wcon.py +2 -3
- {res2df-1.1.2 → res2df-1.2.1}/res2df.egg-info/PKG-INFO +12 -12
- {res2df-1.1.2 → res2df-1.2.1}/res2df.egg-info/SOURCES.txt +4 -2
- {res2df-1.1.2 → res2df-1.2.1}/res2df.egg-info/requires.txt +8 -7
- res2df-1.2.1/ruff.toml +36 -0
- {res2df-1.1.2 → res2df-1.2.1}/setup.cfg +0 -7
- {res2df-1.1.2 → res2df-1.2.1}/setup.py +10 -4
- {res2df-1.1.2 → res2df-1.2.1}/test_requirements.txt +1 -5
- {res2df-1.1.2 → res2df-1.2.1}/tests/conftest.py +0 -1
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/eightcells/EIGHTCELLS.PRT +133 -133
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/fipreports/TEST1.PRT +61 -61
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/include/grid/reek.faults +4 -4
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/include/grid/reek.grid +1 -1
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/include/grid/reek.multz +1 -1
- res2df-1.2.1/tests/data/reek/eclipse/include/props/let-sgof.txt +29 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/include/props/let-swof.txt +11 -12
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/include/props/reek.endpoints +1 -3
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/include/props/reek.pvt +7 -7
- res2df-1.2.1/tests/data/reek/eclipse/include/props/sgof.txt +58 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/include/props/swof.inc +2 -2
- res2df-1.2.1/tests/data/reek/eclipse/include/props/swof.txt +60 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/include/schedule/op6_aicd1_gp.sch +35 -37
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/include/schedule/op6_icd1_gp.sch +35 -37
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/include/schedule/op6_valve1_gp.sch +35 -37
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/include/summary/reek.smry +10 -10
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/model/2_R001_REEK-0.DATA +16 -16
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/model/2_R001_REEK-0.ECLEND +4 -4
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/model/2_R001_REEK-0.LOG +1265 -1265
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/model/2_R001_REEK-0.PRT +7891 -7891
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_common.py +3 -4
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_compdat.py +0 -1
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_eclfiles.py +0 -1
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_equil.py +4 -6
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_ert_hooks.py +7 -8
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_faults.py +0 -1
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_fipreports.py +13 -16
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_grid.py +7 -8
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_gruptree.py +2 -3
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_hook_implementations.py +4 -5
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_inferdims.py +0 -1
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_integration.py +0 -1
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_logging.py +6 -8
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_nnc.py +0 -1
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_parameters.py +7 -9
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_pillars.py +0 -1
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_pvt.py +3 -4
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_rft.py +1 -2
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_satfunc.py +0 -1
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_summary.py +19 -2
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_summary_restarts.py +8 -5
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_trans.py +1 -2
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_userapi.py +0 -1
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_vfp.py +0 -1
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_wcon.py +0 -1
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_wellcompletiondata.py +0 -1
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_wellconnstatus.py +0 -1
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_welopen.py +0 -1
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_wlist.py +0 -1
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_zonemap.py +0 -1
- {res2df-1.1.2 → res2df-1.2.1}/types_requirements.txt +1 -0
- res2df-1.1.2/.pre-commit-config.yaml +0 -34
- res2df-1.1.2/.pylintrc +0 -23
- res2df-1.1.2/bandit.yml +0 -3
- res2df-1.1.2/tests/data/reek/eclipse/include/props/let-sgof.txt +0 -30
- res2df-1.1.2/tests/data/reek/eclipse/include/props/sgof.txt +0 -58
- res2df-1.1.2/tests/data/reek/eclipse/include/props/swof.txt +0 -60
- {res2df-1.1.2 → res2df-1.2.1}/.codacy.yml +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/.gitignore +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/LICENSE +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/_static/equinor-logo.png +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/_static/equinor-logo2.jpg +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/_static/equinor_logo.jpg +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/_static/equinor_logo_only.jpg +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/_templates/layout.html +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/conf.py +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/contribution.rst +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/csv2res.rst +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/history.rst +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/index.rst +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/installation.rst +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/res2csv.rst +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/compdat.csv +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/compdat.rst +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/equil-example.csv +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/fipnum.inc +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/fipreports-example.csv +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/grid.csv +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/gruptree.csv +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/gruptreenet.csv +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/images/injectoranalysis.png +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/images/multibranch-rftanalysis.png +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/nnc.csv +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/outflow.csv +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/pillars-dyn1-stacked.csv +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/pillars-dyn1-unstacked.csv +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/pillars-example1.csv +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/pillars.rst +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/pvt.csv +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/rft_columns.csv +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/satfunc.csv +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/summary.csv +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/summary.rst +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/trans-boundaries.csv +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/trans-group.csv +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/trans1.csv +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/wcon.csv +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/wcon.rst +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/well_connection_status.csv +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage/wellconnstatus.rst +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/docs/usage.rst +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/mypy.ini +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/py.typed +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/__version__.py +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/config_jobs/CSV2RES +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/config_jobs/RES2CSV +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/constants.py +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/csv2res.py +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/hook_implementations/__init__.py +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/BRANPROP +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/COMPDAT +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/COMPLUMP +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/COMPSEGS +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/DENSITY +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/EQLDIMS +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/EQUIL +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/FAULTS +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/GRUPNET +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/GRUPTREE +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/NODEPROP +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/PBVD +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/PDVD +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/PVDG +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/PVDO +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/PVTG +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/PVTO +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/PVTW +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/ROCK +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/RSVD +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/RVVD +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/SGFN +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/SGOF +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/SGWFN +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/SLGOF +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/SOF2 +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/SOF3 +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/SWFN +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/SWOF +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/TABDIMS +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/VFPINJ +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/VFPPROD +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/WCONHIST +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/WCONINJE +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/WCONINJH +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/WCONPROD +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/WELOPEN +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/WELSEGS +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/WELSPECS +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/WLIST +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/WSEGAICD +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/WSEGSICD +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/WSEGVALV +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/opmkeywords/runmetoupdate.sh +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/res2csvlogger.py +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/resdatafiles.py +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/svg_color_keyword_names.txt +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/vfp/_vfpdefs.py +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/wellcompletiondata.py +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df/wellconnstatus.py +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df.egg-info/dependency_links.txt +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df.egg-info/entry_points.txt +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df.egg-info/not-zip-safe +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/res2df.egg-info/top_level.txt +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/__init__.py +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/eightcells/EIGHTCELLS.DATA +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/eightcells/EIGHTCELLS.EGRID +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/eightcells/EIGHTCELLS.INIT +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/eightcells/EIGHTCELLS.INSPEC +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/eightcells/EIGHTCELLS.RFT +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/eightcells/EIGHTCELLS.RSSPEC +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/eightcells/EIGHTCELLS.SMSPEC +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/eightcells/EIGHTCELLS.UNRST +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/eightcells/EIGHTCELLS.UNSMRY +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/eightcells/eightcells_duplicated_summary_vector/EIGHTCELLS_DUPES.DATA +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/eightcells/eightcells_duplicated_summary_vector/EIGHTCELLS_DUPES.SMSPEC +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/eightcells/eightcells_duplicated_summary_vector/EIGHTCELLS_DUPES.UNSMRY +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/eightcells/zones.lyr +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/include/grid/reek.multflt +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/include/grid/reek.perm +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/include/grid/reek.poro +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/include/props/reek.swatinit +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/include/regions/reek.eqlnum +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/include/regions/reek.fipnum +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/include/schedule/reek_history.sch +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/include/solution/reek.equil +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/model/2_R001_REEK-0-OPMFLOW.PRT +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/model/2_R001_REEK-0.EGRID +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/model/2_R001_REEK-0.INIT +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/model/2_R001_REEK-0.RFT +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/model/2_R001_REEK-0.SMSPEC +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/model/2_R001_REEK-0.UNRST +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/model/2_R001_REEK-0.UNSMRY +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/reek/eclipse/model/zones.lyr +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/timesteps/SHORT_STEP.DATA +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/timesteps/SHORT_STEP.SMSPEC +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/timesteps/SHORT_STEP.UNSMRY +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/timesteps/SHORT_STEP_LONG.DATA +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/timesteps/SHORT_STEP_LONG.SMSPEC +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/timesteps/SHORT_STEP_LONG.UNSMRY +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/timesteps/SHORT_STEP_WITH_TIMESTEP.DATA +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/timesteps/SHORT_STEP_WITH_TIMESTEP.SMSPEC +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/timesteps/SHORT_STEP_WITH_TIMESTEP.UNSMRY +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/timesteps/SHORT_STEP_WITH_TIMESTEP_LONG.DATA +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/timesteps/SHORT_STEP_WITH_TIMESTEP_LONG.SMSPEC +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/data/timesteps/SHORT_STEP_WITH_TIMESTEP_LONG.UNSMRY +0 -0
- {res2df-1.1.2 → res2df-1.2.1}/tests/test_init.py +0 -0
|
@@ -16,12 +16,16 @@ jobs:
|
|
|
16
16
|
PYTHON: '3.8'
|
|
17
17
|
|
|
18
18
|
steps:
|
|
19
|
-
- uses: actions/checkout@
|
|
19
|
+
- uses: actions/checkout@v4
|
|
20
20
|
|
|
21
21
|
- name: Setup Python
|
|
22
|
-
uses: actions/setup-python@
|
|
22
|
+
uses: actions/setup-python@v5
|
|
23
23
|
with:
|
|
24
24
|
python-version: 3.8
|
|
25
|
+
cache: "pip"
|
|
26
|
+
cache-dependency-path: |
|
|
27
|
+
setup.py
|
|
28
|
+
test_requirements.txt
|
|
25
29
|
|
|
26
30
|
- name: Install res2df
|
|
27
31
|
run: |
|
|
@@ -19,17 +19,25 @@ jobs:
|
|
|
19
19
|
runs-on: ubuntu-latest
|
|
20
20
|
strategy:
|
|
21
21
|
matrix:
|
|
22
|
-
python-version: ['3.8', '3.9', '3.10']
|
|
23
|
-
pandas-version: ['pandas
|
|
22
|
+
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
|
|
23
|
+
pandas-version: ['pandas>2']
|
|
24
24
|
include:
|
|
25
25
|
# For one of the Python versions we
|
|
26
26
|
# install the extra dependency ert
|
|
27
27
|
# (in order to not double the job matrix)
|
|
28
|
+
|
|
29
|
+
# Only test with pandas < 2 for py38 and py311
|
|
30
|
+
# No wheels for python3.12 for pandas<2
|
|
28
31
|
- python-version: '3.8'
|
|
29
32
|
install-ert: true
|
|
33
|
+
- python-version: '3.8'
|
|
34
|
+
pandas-version: 'pandas<2'
|
|
35
|
+
- python-version: '3.11'
|
|
36
|
+
pandas-version: 'pandas<2'
|
|
37
|
+
|
|
30
38
|
steps:
|
|
31
39
|
- name: Checkout commit locally
|
|
32
|
-
uses: actions/checkout@
|
|
40
|
+
uses: actions/checkout@v4
|
|
33
41
|
|
|
34
42
|
- name: Checkout tags
|
|
35
43
|
# This seems necessary for setuptools_scm to be able to infer
|
|
@@ -37,14 +45,18 @@ jobs:
|
|
|
37
45
|
run: git fetch --unshallow --tags
|
|
38
46
|
|
|
39
47
|
- name: Set up Python ${{ matrix.python-version }}
|
|
40
|
-
uses: actions/setup-python@
|
|
48
|
+
uses: actions/setup-python@v5
|
|
41
49
|
with:
|
|
42
50
|
python-version: ${{ matrix.python-version }}
|
|
51
|
+
cache: "pip"
|
|
52
|
+
cache-dependency-path: |
|
|
53
|
+
setup.py
|
|
54
|
+
test_requirements.txt
|
|
43
55
|
|
|
44
56
|
- name: Install res2df with dependencies
|
|
45
57
|
run: |
|
|
46
58
|
pip install --upgrade pip
|
|
47
|
-
pip install .
|
|
59
|
+
pip install ".[tests, docs]"
|
|
48
60
|
|
|
49
61
|
- name: Install numpy<2 if pandas<2
|
|
50
62
|
if: matrix.pandas-version == 'pandas<2'
|
|
@@ -53,21 +65,10 @@ jobs:
|
|
|
53
65
|
- name: Check pandas version
|
|
54
66
|
run: |
|
|
55
67
|
pip install "${{matrix.pandas-version}}"
|
|
56
|
-
python -c "import res2df"
|
|
57
68
|
|
|
58
69
|
- name: Install ert
|
|
59
70
|
if: matrix.install-ert
|
|
60
|
-
run: pip install .[ert]
|
|
61
|
-
|
|
62
|
-
- name: Install test dependencies
|
|
63
|
-
run: pip install .[tests,docs,types]
|
|
64
|
-
|
|
65
|
-
- name: Check code style and typing
|
|
66
|
-
run: |
|
|
67
|
-
black --check res2df tests setup.py docs/conf.py
|
|
68
|
-
flake8 res2df tests
|
|
69
|
-
isort --check-only --profile black res2df tests
|
|
70
|
-
mypy res2df
|
|
71
|
+
run: pip install ".[ert]"
|
|
71
72
|
|
|
72
73
|
- name: List all installed packages
|
|
73
74
|
run: pip freeze
|
|
@@ -117,4 +118,3 @@ jobs:
|
|
|
117
118
|
python -m pip install --upgrade setuptools wheel twine
|
|
118
119
|
python setup.py sdist bdist_wheel
|
|
119
120
|
twine upload dist/*
|
|
120
|
-
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
name: Style
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- master
|
|
7
|
+
- 'version-**'
|
|
8
|
+
pull_request:
|
|
9
|
+
|
|
10
|
+
concurrency:
|
|
11
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
12
|
+
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
check-style:
|
|
16
|
+
timeout-minutes: 15
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
strategy:
|
|
19
|
+
matrix:
|
|
20
|
+
python-version: ['3.12']
|
|
21
|
+
|
|
22
|
+
steps:
|
|
23
|
+
- uses: actions/checkout@v4
|
|
24
|
+
with:
|
|
25
|
+
fetch-depth: 0
|
|
26
|
+
|
|
27
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
28
|
+
uses: actions/setup-python@v5
|
|
29
|
+
with:
|
|
30
|
+
python-version: ${{ matrix.python-version }}
|
|
31
|
+
cache: "pip"
|
|
32
|
+
cache-dependency-path: |
|
|
33
|
+
setup.py
|
|
34
|
+
|
|
35
|
+
- name: Install res2df with style dependencies
|
|
36
|
+
run: |
|
|
37
|
+
pip install ".[style]"
|
|
38
|
+
|
|
39
|
+
- name: Run style check
|
|
40
|
+
if: ${{ always() }}
|
|
41
|
+
run: |
|
|
42
|
+
SKIP=no-commit-to-branch pre-commit run --all-files --show-diff-on-failure
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
name: Typing
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- master
|
|
7
|
+
- 'version-**'
|
|
8
|
+
pull_request:
|
|
9
|
+
|
|
10
|
+
concurrency:
|
|
11
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
12
|
+
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
check-style:
|
|
16
|
+
timeout-minutes: 15
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
strategy:
|
|
19
|
+
matrix:
|
|
20
|
+
python-version: ['3.12']
|
|
21
|
+
|
|
22
|
+
steps:
|
|
23
|
+
- uses: actions/checkout@v4
|
|
24
|
+
with:
|
|
25
|
+
fetch-depth: 0
|
|
26
|
+
|
|
27
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
28
|
+
uses: actions/setup-python@v5
|
|
29
|
+
with:
|
|
30
|
+
python-version: ${{ matrix.python-version }}
|
|
31
|
+
cache: "pip"
|
|
32
|
+
cache-dependency-path: |
|
|
33
|
+
setup.py
|
|
34
|
+
types_requirements.txt
|
|
35
|
+
|
|
36
|
+
- name: Install res2df with types dependencies
|
|
37
|
+
run: |
|
|
38
|
+
pip install ".[types]"
|
|
39
|
+
|
|
40
|
+
- name: Run mypy
|
|
41
|
+
run: |
|
|
42
|
+
mypy res2df
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
repos:
|
|
2
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
3
|
+
rev: v4.6.0
|
|
4
|
+
hooks:
|
|
5
|
+
- id: no-commit-to-branch
|
|
6
|
+
args: ['--branch', 'master']
|
|
7
|
+
- id: check-yaml
|
|
8
|
+
- id: debug-statements
|
|
9
|
+
- id: end-of-file-fixer
|
|
10
|
+
- id: fix-encoding-pragma
|
|
11
|
+
args: [--remove]
|
|
12
|
+
- id: mixed-line-ending
|
|
13
|
+
- id: trailing-whitespace
|
|
14
|
+
|
|
15
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
16
|
+
rev: v0.5.7
|
|
17
|
+
hooks:
|
|
18
|
+
- id: ruff
|
|
19
|
+
args: [ --fix ]
|
|
20
|
+
- id: ruff-format
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: res2df
|
|
3
|
-
Version: 1.1
|
|
3
|
+
Version: 1.2.1
|
|
4
4
|
Summary: Convert reservoir simulator input and output to DataFrames
|
|
5
5
|
Home-page: http://github.com/equinor/res2df
|
|
6
6
|
Author: Håvard Berland
|
|
@@ -9,7 +9,7 @@ License: GPLv3
|
|
|
9
9
|
Requires-Python: >=3.8
|
|
10
10
|
Description-Content-Type: text/markdown
|
|
11
11
|
License-File: LICENSE
|
|
12
|
-
Requires-Dist: resdata>=
|
|
12
|
+
Requires-Dist: resdata>=5.0.0-b0
|
|
13
13
|
Requires-Dist: numpy
|
|
14
14
|
Requires-Dist: opm>=2020.10.2
|
|
15
15
|
Requires-Dist: pandas
|
|
@@ -17,16 +17,15 @@ Requires-Dist: pyarrow
|
|
|
17
17
|
Requires-Dist: pyyaml>=5.1
|
|
18
18
|
Requires-Dist: treelib
|
|
19
19
|
Provides-Extra: tests
|
|
20
|
-
Requires-Dist: black; extra == "tests"
|
|
21
|
-
Requires-Dist: flake8; extra == "tests"
|
|
22
|
-
Requires-Dist: isort; extra == "tests"
|
|
23
|
-
Requires-Dist: mypy; extra == "tests"
|
|
24
20
|
Requires-Dist: networkx; extra == "tests"
|
|
25
|
-
Requires-Dist: pre-commit; extra == "tests"
|
|
26
21
|
Requires-Dist: pytest; extra == "tests"
|
|
27
22
|
Requires-Dist: pytest-cov; extra == "tests"
|
|
28
23
|
Requires-Dist: pytest-mock; extra == "tests"
|
|
24
|
+
Requires-Dist: pytest-timeout; extra == "tests"
|
|
25
|
+
Provides-Extra: style
|
|
26
|
+
Requires-Dist: pre-commit; extra == "style"
|
|
29
27
|
Provides-Extra: types
|
|
28
|
+
Requires-Dist: mypy; extra == "types"
|
|
30
29
|
Requires-Dist: types-PyYAML; extra == "types"
|
|
31
30
|
Requires-Dist: types-python-dateutil; extra == "types"
|
|
32
31
|
Requires-Dist: types-setuptools; extra == "types"
|
|
@@ -34,27 +33,28 @@ Provides-Extra: docs
|
|
|
34
33
|
Requires-Dist: autoapi; extra == "docs"
|
|
35
34
|
Requires-Dist: ipython; extra == "docs"
|
|
36
35
|
Requires-Dist: rstcheck; extra == "docs"
|
|
36
|
+
Requires-Dist: setuptools; extra == "docs"
|
|
37
37
|
Requires-Dist: sphinx<7; extra == "docs"
|
|
38
38
|
Requires-Dist: sphinx-argparse; extra == "docs"
|
|
39
39
|
Requires-Dist: sphinx-autodoc-typehints; extra == "docs"
|
|
40
40
|
Requires-Dist: sphinx_rtd_theme; extra == "docs"
|
|
41
41
|
Provides-Extra: ert
|
|
42
|
-
Requires-Dist: ert>=2.
|
|
42
|
+
Requires-Dist: ert>=10.2.0b13; extra == "ert"
|
|
43
43
|
|
|
44
44
|
[](https://github.com/equinor/res2df/actions?query=workflow%3Ares2df)
|
|
45
45
|
[](https://codecov.io/gh/equinor/res2df)
|
|
46
|
-
[](https://www.python.org)
|
|
47
|
+
[](https://github.com/astral-sh/ruff)
|
|
48
48
|
[](https://www.gnu.org/licenses/gpl-3.0)
|
|
49
49
|
|
|
50
50
|
# res2df
|
|
51
51
|
|
|
52
52
|
res2df is a Pandas DataFrame wrapper around resdata and opm.io, which
|
|
53
|
-
are used to access binary files outputted by reservoir simulators,
|
|
53
|
+
are used to access binary files outputted by reservoir simulators,
|
|
54
54
|
or its input files --- or any other tool outputting to the same data format.
|
|
55
55
|
|
|
56
56
|
The reverse operation, from a Pandas DataFrame to reservoir simulator include files
|
|
57
|
-
(commonly given the extension ".inc", ".grdecl" etc.) is provided for some of the
|
|
57
|
+
(commonly given the extension ".inc", ".grdecl" etc.) is provided for some of the
|
|
58
58
|
modules.
|
|
59
59
|
|
|
60
60
|
The package consists of a module pr. datatype, e.g. one module for summary
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
[](https://github.com/equinor/res2df/actions?query=workflow%3Ares2df)
|
|
2
2
|
[](https://codecov.io/gh/equinor/res2df)
|
|
3
|
-
[](https://www.python.org)
|
|
4
|
+
[](https://github.com/astral-sh/ruff)
|
|
5
5
|
[](https://www.gnu.org/licenses/gpl-3.0)
|
|
6
6
|
|
|
7
7
|
# res2df
|
|
8
8
|
|
|
9
9
|
res2df is a Pandas DataFrame wrapper around resdata and opm.io, which
|
|
10
|
-
are used to access binary files outputted by reservoir simulators,
|
|
10
|
+
are used to access binary files outputted by reservoir simulators,
|
|
11
11
|
or its input files --- or any other tool outputting to the same data format.
|
|
12
12
|
|
|
13
13
|
The reverse operation, from a Pandas DataFrame to reservoir simulator include files
|
|
14
|
-
(commonly given the extension ".inc", ".grdecl" etc.) is provided for some of the
|
|
14
|
+
(commonly given the extension ".inc", ".grdecl" etc.) is provided for some of the
|
|
15
15
|
modules.
|
|
16
16
|
|
|
17
17
|
The package consists of a module pr. datatype, e.g. one module for summary
|
res2df-1.2.1/SECURITY.md
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
If you discover a security vulnerability in this project, please follow these steps to responsibly disclose it:
|
|
2
|
+
|
|
3
|
+
1. **Do not** create a public GitHub issue for the vulnerability.
|
|
4
|
+
2. Follow our guideline for Responsible Disclosure Policy at [https://www.equinor.com/about-us/csirt](https://www.equinor.com/about-us/csirt) to report the issue
|
|
5
|
+
|
|
6
|
+
The following information will help us triage your report more quickly:
|
|
7
|
+
|
|
8
|
+
- Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
|
|
9
|
+
- Full paths of source file(s) related to the manifestation of the issue
|
|
10
|
+
- The location of the affected source code (tag/branch/commit or direct URL)
|
|
11
|
+
- Any special configuration required to reproduce the issue
|
|
12
|
+
- Step-by-step instructions to reproduce the issue
|
|
13
|
+
- Proof-of-concept or exploit code (if possible)
|
|
14
|
+
- Impact of the issue, including how an attacker might exploit the issue
|
|
15
|
+
|
|
16
|
+
We prefer all communications to be in English.
|
|
@@ -4,7 +4,7 @@ Glossary
|
|
|
4
4
|
.. glossary::
|
|
5
5
|
|
|
6
6
|
reservoir simulator
|
|
7
|
-
Simulation of reservoir fields come in many forms, but for the purposes of
|
|
7
|
+
Simulation of reservoir fields come in many forms, but for the purposes of
|
|
8
8
|
res2df we only consider simulators that take a :term:`deck` as input and produces
|
|
9
9
|
:term:`output files <output file>` such `.UNSRMY`. This includes, OPM flow and Eclipse.
|
|
10
10
|
|
|
@@ -20,7 +20,7 @@ Glossary
|
|
|
20
20
|
deck
|
|
21
21
|
Refers to inputs passed to reservoir simulators. It may be a :term:`.DATA file` and the
|
|
22
22
|
include files it points to, or it may be a single or several include files.
|
|
23
|
-
If a deck contains all the information (i.e., keywords) the simulator needs
|
|
23
|
+
If a deck contains all the information (i.e., keywords) the simulator needs
|
|
24
24
|
to run the requested simulation, it is defined as complete. Otherwise it is incomplete.
|
|
25
25
|
|
|
26
26
|
output file
|
|
@@ -95,7 +95,7 @@ More documentation on :doc:`usage/trans`.
|
|
|
95
95
|
``rft``
|
|
96
96
|
^^^^^^^
|
|
97
97
|
|
|
98
|
-
Reads the `.RFT` files which are outputted by the
|
|
98
|
+
Reads the `.RFT` files which are outputted by the
|
|
99
99
|
:term:`simulator <reservoir simulator>` when
|
|
100
100
|
the `WRFTPLT` keyword is used, with details along wellbores.
|
|
101
101
|
|
|
@@ -54,7 +54,7 @@ one meter for compatibility, which you could do by the statements:
|
|
|
54
54
|
Re-exporting tables to include-files
|
|
55
55
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
56
56
|
|
|
57
|
-
When you are done with the table, you can generate new
|
|
57
|
+
When you are done with the table, you can generate new
|
|
58
58
|
:term:`include files <include file>` from your modified
|
|
59
59
|
data by issuing
|
|
60
60
|
|
|
@@ -2,8 +2,8 @@ grid
|
|
|
2
2
|
----
|
|
3
3
|
|
|
4
4
|
The grid module will extract static and dynamic cell properties from
|
|
5
|
-
a grid
|
|
6
|
-
(from the :term:`output files of reservoir simulators <output file>`).
|
|
5
|
+
a grid
|
|
6
|
+
(from the :term:`output files of reservoir simulators <output file>`).
|
|
7
7
|
Each row in a returned dataframe represents one cell.
|
|
8
8
|
|
|
9
9
|
Typical usage
|
|
@@ -70,7 +70,7 @@ Density values are easier to scale up or down to whatever is needed.
|
|
|
70
70
|
Re-exporting tables to include files
|
|
71
71
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
72
72
|
|
|
73
|
-
When you are done with the table, you can generate new
|
|
73
|
+
When you are done with the table, you can generate new
|
|
74
74
|
:term:`include files <include file>` from your modified data by issuing
|
|
75
75
|
|
|
76
76
|
.. code-block:: python
|
|
@@ -84,4 +84,3 @@ and need to be catered for outside res2df.
|
|
|
84
84
|
|
|
85
85
|
The last step can also be done using the ``csv2res`` command line utility
|
|
86
86
|
if you dump to CSV from your Python code instead.
|
|
87
|
-
|
|
@@ -20,7 +20,7 @@ Eclipse usage
|
|
|
20
20
|
^^^^^^^^^^^^^
|
|
21
21
|
|
|
22
22
|
In order to get RFT files emitted from Eclipse, you need the ``WRFTPLT`` keyword
|
|
23
|
-
in your :term
|
|
23
|
+
in your :term:`.DATA file`, example:
|
|
24
24
|
|
|
25
25
|
.. code-block:: console
|
|
26
26
|
|
|
@@ -95,4 +95,3 @@ to represent ICD segments. The corresponding ``SEG*`` data for these ICD segment
|
|
|
95
95
|
will be joined to the segment they are connected to, and have their ``SEG*`` data
|
|
96
96
|
renamed to ``ICD*``. For understanding your ``ICD*`` data, look at the description of
|
|
97
97
|
the analogue ``SEG*`` data above.
|
|
98
|
-
|
|
@@ -2,7 +2,7 @@ satfunc
|
|
|
2
2
|
-------
|
|
3
3
|
|
|
4
4
|
satfunc will extract saturation functions from :term:`.DATA files <.DATA file>` or from
|
|
5
|
-
:term:`include files <include file>`, these are the keywords ``SWOF``, ``SGOF``,
|
|
5
|
+
:term:`include files <include file>`, these are the keywords ``SWOF``, ``SGOF``,
|
|
6
6
|
``SGWFN``, ``SWFN``, ``SOF2``, ``SGFN``, ``SOF3`` and ``SLGOF``.
|
|
7
7
|
|
|
8
8
|
The data obtained from one invocation of the satfunc module will be put in one
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import importlib
|
|
2
2
|
from typing import List
|
|
3
3
|
|
|
4
|
-
from .__version__ import __version__
|
|
5
|
-
from .res2csvlogger import getLogger_res2csv
|
|
6
|
-
from .resdatafiles import ResdataFiles
|
|
4
|
+
from .__version__ import __version__ as __version__
|
|
5
|
+
from .res2csvlogger import getLogger_res2csv as getLogger_res2csv
|
|
6
|
+
from .resdatafiles import ResdataFiles as ResdataFiles
|
|
7
7
|
|
|
8
8
|
SUBMODULES: List[str] = [
|
|
9
9
|
"compdat",
|
|
@@ -540,17 +540,20 @@ def df2res(
|
|
|
540
540
|
calling_module = inspect.getmodule(from_module[0])
|
|
541
541
|
if dataframe.empty:
|
|
542
542
|
raise ValueError("Empty dataframe")
|
|
543
|
-
if
|
|
544
|
-
|
|
543
|
+
if (
|
|
544
|
+
consecutive is not None
|
|
545
|
+
and consecutive in dataframe
|
|
546
|
+
and not (
|
|
545
547
|
min(dataframe[consecutive]) == 1
|
|
546
548
|
and len(dataframe[consecutive].unique()) == max(dataframe[consecutive])
|
|
547
|
-
)
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
)
|
|
553
|
-
|
|
549
|
+
)
|
|
550
|
+
):
|
|
551
|
+
logger.critical(
|
|
552
|
+
"%s inconsistent in input dataframe, got the values %s",
|
|
553
|
+
consecutive,
|
|
554
|
+
str(dataframe[consecutive].unique()),
|
|
555
|
+
)
|
|
556
|
+
raise ValueError
|
|
554
557
|
|
|
555
558
|
# "KEYWORD" must always be in the dataframe:
|
|
556
559
|
if "KEYWORD" not in dataframe:
|
|
@@ -816,7 +819,7 @@ def stack_on_colnames(
|
|
|
816
819
|
"""
|
|
817
820
|
if not inplace:
|
|
818
821
|
dframe = dframe.copy()
|
|
819
|
-
tuplecolumns =
|
|
822
|
+
tuplecolumns = [tuple(x.split(sep)) for x in dframe.columns]
|
|
820
823
|
if max(map(len, tuplecolumns)) < 2:
|
|
821
824
|
logger.info("No columns to stack")
|
|
822
825
|
return dframe
|