res2df 1.2.0__tar.gz → 1.2.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.
- {res2df-1.2.0 → res2df-1.2.2}/PKG-INFO +4 -1
- res2df-1.2.2/SECURITY.md +16 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/rft.rst +1 -1
- {res2df-1.2.0 → res2df-1.2.2}/mypy.ini +3 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/grid.py +6 -4
- {res2df-1.2.0 → res2df-1.2.2}/res2df/summary.py +3 -2
- {res2df-1.2.0 → res2df-1.2.2}/res2df/version.py +2 -2
- {res2df-1.2.0 → res2df-1.2.2}/res2df.egg-info/PKG-INFO +4 -1
- {res2df-1.2.0 → res2df-1.2.2}/res2df.egg-info/SOURCES.txt +1 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df.egg-info/requires.txt +5 -0
- {res2df-1.2.0 → res2df-1.2.2}/setup.py +2 -0
- {res2df-1.2.0 → res2df-1.2.2}/test_requirements.txt +1 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_summary.py +18 -0
- {res2df-1.2.0 → res2df-1.2.2}/.codacy.yml +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/.github/workflows/codecov.yml +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/.github/workflows/res2df.yml +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/.github/workflows/style.yml +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/.github/workflows/typing.yml +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/.gitignore +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/.pre-commit-config.yaml +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/LICENSE +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/README.md +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/ci/testkomodo.sh +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/_static/equinor-logo.png +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/_static/equinor-logo2.jpg +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/_static/equinor_logo.jpg +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/_static/equinor_logo_only.jpg +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/_templates/layout.html +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/conf.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/contribution.rst +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/csv2res.rst +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/glossary.rst +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/history.rst +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/index.rst +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/installation.rst +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/introduction.rst +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/res2csv.rst +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/compdat.csv +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/compdat.rst +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/equil-example.csv +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/equil.rst +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/fipnum.inc +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/fipreports-example.csv +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/fipreports-example.txt +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/fipreports.rst +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/grid.csv +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/grid.rst +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/gruptree.csv +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/gruptree.rst +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/gruptreenet.csv +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/images/injectoranalysis.png +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/images/multibranch-rftanalysis.png +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/nnc.csv +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/nnc.rst +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/outflow.csv +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/pillars-dyn1-stacked.csv +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/pillars-dyn1-unstacked.csv +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/pillars-example1.csv +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/pillars.rst +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/pvt.csv +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/pvt.rst +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/rft_columns.csv +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/satfunc.csv +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/satfunc.rst +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/summary.csv +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/summary.rst +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/trans-boundaries.csv +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/trans-group.csv +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/trans.rst +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/trans1.csv +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/wcon.csv +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/wcon.rst +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/well_connection_status.csv +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage/wellconnstatus.rst +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/docs/usage.rst +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/py.typed +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/__init__.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/__version__.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/common.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/compdat.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/config_jobs/CSV2RES +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/config_jobs/RES2CSV +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/constants.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/csv2res.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/equil.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/faults.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/fipreports.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/gruptree.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/hook_implementations/__init__.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/hook_implementations/jobs.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/inferdims.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/nnc.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/BRANPROP +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/COMPDAT +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/COMPLUMP +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/COMPSEGS +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/DENSITY +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/EQLDIMS +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/EQUIL +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/FAULTS +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/GRUPNET +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/GRUPTREE +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/NODEPROP +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/PBVD +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/PDVD +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/PVDG +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/PVDO +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/PVTG +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/PVTO +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/PVTW +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/ROCK +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/RSVD +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/RVVD +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/SGFN +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/SGOF +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/SGWFN +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/SLGOF +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/SOF2 +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/SOF3 +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/SWFN +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/SWOF +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/TABDIMS +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/VFPINJ +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/VFPPROD +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/WCONHIST +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/WCONINJE +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/WCONINJH +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/WCONPROD +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/WELOPEN +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/WELSEGS +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/WELSPECS +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/WLIST +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/WSEGAICD +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/WSEGSICD +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/WSEGVALV +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/readme +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/opmkeywords/runmetoupdate.sh +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/parameters.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/pillars.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/pvt.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/res2csv.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/res2csvlogger.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/resdatafiles.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/rft.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/satfunc.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/svg_color_keyword_names.txt +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/trans.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/vfp/__init__.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/vfp/_vfp.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/vfp/_vfpcommon.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/vfp/_vfpdefs.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/vfp/_vfpinj.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/vfp/_vfpprod.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/wcon.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/wellcompletiondata.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df/wellconnstatus.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df.egg-info/dependency_links.txt +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df.egg-info/entry_points.txt +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df.egg-info/not-zip-safe +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/res2df.egg-info/top_level.txt +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/ruff.toml +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/setup.cfg +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/__init__.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/conftest.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/eightcells/EIGHTCELLS.DATA +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/eightcells/EIGHTCELLS.EGRID +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/eightcells/EIGHTCELLS.INIT +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/eightcells/EIGHTCELLS.INSPEC +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/eightcells/EIGHTCELLS.PRT +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/eightcells/EIGHTCELLS.RFT +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/eightcells/EIGHTCELLS.RSSPEC +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/eightcells/EIGHTCELLS.SMSPEC +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/eightcells/EIGHTCELLS.UNRST +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/eightcells/EIGHTCELLS.UNSMRY +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/eightcells/eightcells_duplicated_summary_vector/EIGHTCELLS_DUPES.DATA +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/eightcells/eightcells_duplicated_summary_vector/EIGHTCELLS_DUPES.SMSPEC +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/eightcells/eightcells_duplicated_summary_vector/EIGHTCELLS_DUPES.UNSMRY +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/eightcells/zones.lyr +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/fipreports/TEST1.PRT +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/include/grid/reek.faults +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/include/grid/reek.grid +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/include/grid/reek.multflt +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/include/grid/reek.multz +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/include/grid/reek.perm +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/include/grid/reek.poro +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/include/props/let-sgof.txt +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/include/props/let-swof.txt +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/include/props/reek.endpoints +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/include/props/reek.pvt +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/include/props/reek.swatinit +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/include/props/sgof.txt +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/include/props/swof.inc +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/include/props/swof.txt +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/include/regions/reek.eqlnum +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/include/regions/reek.fipnum +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/include/schedule/op6_aicd1_gp.sch +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/include/schedule/op6_icd1_gp.sch +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/include/schedule/op6_valve1_gp.sch +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/include/schedule/reek_history.sch +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/include/solution/reek.equil +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/include/summary/reek.smry +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/model/2_R001_REEK-0-OPMFLOW.PRT +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/model/2_R001_REEK-0.DATA +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/model/2_R001_REEK-0.ECLEND +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/model/2_R001_REEK-0.EGRID +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/model/2_R001_REEK-0.INIT +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/model/2_R001_REEK-0.LOG +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/model/2_R001_REEK-0.PRT +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/model/2_R001_REEK-0.RFT +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/model/2_R001_REEK-0.SMSPEC +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/model/2_R001_REEK-0.UNRST +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/model/2_R001_REEK-0.UNSMRY +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/reek/eclipse/model/zones.lyr +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/timesteps/SHORT_STEP.DATA +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/timesteps/SHORT_STEP.SMSPEC +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/timesteps/SHORT_STEP.UNSMRY +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/timesteps/SHORT_STEP_LONG.DATA +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/timesteps/SHORT_STEP_LONG.SMSPEC +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/timesteps/SHORT_STEP_LONG.UNSMRY +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/timesteps/SHORT_STEP_WITH_TIMESTEP.DATA +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/timesteps/SHORT_STEP_WITH_TIMESTEP.SMSPEC +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/timesteps/SHORT_STEP_WITH_TIMESTEP.UNSMRY +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/timesteps/SHORT_STEP_WITH_TIMESTEP_LONG.DATA +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/timesteps/SHORT_STEP_WITH_TIMESTEP_LONG.SMSPEC +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/data/timesteps/SHORT_STEP_WITH_TIMESTEP_LONG.UNSMRY +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_common.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_compdat.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_eclfiles.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_equil.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_ert_hooks.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_faults.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_fipreports.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_grid.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_gruptree.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_hook_implementations.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_inferdims.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_init.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_integration.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_logging.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_nnc.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_parameters.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_pillars.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_pvt.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_rft.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_satfunc.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_summary_restarts.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_trans.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_userapi.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_vfp.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_wcon.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_wellcompletiondata.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_wellconnstatus.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_welopen.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_wlist.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/tests/test_zonemap.py +0 -0
- {res2df-1.2.0 → res2df-1.2.2}/types_requirements.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: res2df
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.2
|
|
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
|
|
@@ -10,17 +10,20 @@ Requires-Python: >=3.8
|
|
|
10
10
|
Description-Content-Type: text/markdown
|
|
11
11
|
License-File: LICENSE
|
|
12
12
|
Requires-Dist: resdata>=5.0.0-b0
|
|
13
|
+
Requires-Dist: resfo
|
|
13
14
|
Requires-Dist: numpy
|
|
14
15
|
Requires-Dist: opm>=2020.10.2
|
|
15
16
|
Requires-Dist: pandas
|
|
16
17
|
Requires-Dist: pyarrow
|
|
17
18
|
Requires-Dist: pyyaml>=5.1
|
|
18
19
|
Requires-Dist: treelib
|
|
20
|
+
Requires-Dist: xtgeo<4.3.2; python_version <= "3.8"
|
|
19
21
|
Provides-Extra: tests
|
|
20
22
|
Requires-Dist: networkx; extra == "tests"
|
|
21
23
|
Requires-Dist: pytest; extra == "tests"
|
|
22
24
|
Requires-Dist: pytest-cov; extra == "tests"
|
|
23
25
|
Requires-Dist: pytest-mock; extra == "tests"
|
|
26
|
+
Requires-Dist: pytest-timeout; extra == "tests"
|
|
24
27
|
Provides-Extra: style
|
|
25
28
|
Requires-Dist: pre-commit; extra == "style"
|
|
26
29
|
Provides-Extra: types
|
res2df-1.2.2/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.
|
|
@@ -23,6 +23,7 @@ import numpy as np
|
|
|
23
23
|
import pandas as pd
|
|
24
24
|
import pyarrow
|
|
25
25
|
import pyarrow.feather
|
|
26
|
+
import resfo
|
|
26
27
|
from resdata.resfile import ResdataFile
|
|
27
28
|
|
|
28
29
|
from .__version__ import __version__
|
|
@@ -199,11 +200,12 @@ def rst2df(
|
|
|
199
200
|
# for all active cells:
|
|
200
201
|
activecells = resdatafiles.get_egrid().getNumActive()
|
|
201
202
|
rstvectors = []
|
|
202
|
-
for vec in resdatafiles.
|
|
203
|
-
|
|
204
|
-
|
|
203
|
+
for vec in resfo.lazy_read(resdatafiles.get_rstfilename()):
|
|
204
|
+
keyword_name = vec.read_keyword().strip()
|
|
205
|
+
if vec.read_length() == activecells and any(
|
|
206
|
+
fnmatch.fnmatch(keyword_name, key) for key in vectors
|
|
205
207
|
):
|
|
206
|
-
rstvectors.append(
|
|
208
|
+
rstvectors.append(keyword_name)
|
|
207
209
|
rstvectors = list(set(rstvectors)) # Make unique list
|
|
208
210
|
# Note that all of these might not exist at all timesteps.
|
|
209
211
|
|
|
@@ -499,7 +499,8 @@ def _df2pyarrow(dframe: pd.DataFrame) -> pyarrow.Table:
|
|
|
499
499
|
field_list.append(pyarrow.field("DATE", pyarrow.timestamp("ms")))
|
|
500
500
|
column_arrays = [dframe.index.to_numpy().astype("datetime64[ms]")]
|
|
501
501
|
|
|
502
|
-
|
|
502
|
+
dframe_values = dframe.values.transpose()
|
|
503
|
+
for col_idx, colname in enumerate(dframe.columns):
|
|
503
504
|
if "meta" in dframe.attrs and colname in dframe.attrs["meta"]:
|
|
504
505
|
# Boolean objects in the metadata dictionary must be converted to bytes:
|
|
505
506
|
field_metadata = {
|
|
@@ -516,7 +517,7 @@ def _df2pyarrow(dframe: pd.DataFrame) -> pyarrow.Table:
|
|
|
516
517
|
else:
|
|
517
518
|
dtype = pyarrow.float32()
|
|
518
519
|
field_list.append(pyarrow.field(colname, dtype, metadata=field_metadata))
|
|
519
|
-
column_arrays.append(
|
|
520
|
+
column_arrays.append(dframe_values[col_idx])
|
|
520
521
|
|
|
521
522
|
schema = pyarrow.schema(field_list)
|
|
522
523
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: res2df
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.2
|
|
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
|
|
@@ -10,17 +10,20 @@ Requires-Python: >=3.8
|
|
|
10
10
|
Description-Content-Type: text/markdown
|
|
11
11
|
License-File: LICENSE
|
|
12
12
|
Requires-Dist: resdata>=5.0.0-b0
|
|
13
|
+
Requires-Dist: resfo
|
|
13
14
|
Requires-Dist: numpy
|
|
14
15
|
Requires-Dist: opm>=2020.10.2
|
|
15
16
|
Requires-Dist: pandas
|
|
16
17
|
Requires-Dist: pyarrow
|
|
17
18
|
Requires-Dist: pyyaml>=5.1
|
|
18
19
|
Requires-Dist: treelib
|
|
20
|
+
Requires-Dist: xtgeo<4.3.2; python_version <= "3.8"
|
|
19
21
|
Provides-Extra: tests
|
|
20
22
|
Requires-Dist: networkx; extra == "tests"
|
|
21
23
|
Requires-Dist: pytest; extra == "tests"
|
|
22
24
|
Requires-Dist: pytest-cov; extra == "tests"
|
|
23
25
|
Requires-Dist: pytest-mock; extra == "tests"
|
|
26
|
+
Requires-Dist: pytest-timeout; extra == "tests"
|
|
24
27
|
Provides-Extra: style
|
|
25
28
|
Requires-Dist: pre-commit; extra == "style"
|
|
26
29
|
Provides-Extra: types
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
resdata>=5.0.0-b0
|
|
2
|
+
resfo
|
|
2
3
|
numpy
|
|
3
4
|
opm>=2020.10.2
|
|
4
5
|
pandas
|
|
@@ -6,6 +7,9 @@ pyarrow
|
|
|
6
7
|
pyyaml>=5.1
|
|
7
8
|
treelib
|
|
8
9
|
|
|
10
|
+
[:python_version <= "3.8"]
|
|
11
|
+
xtgeo<4.3.2
|
|
12
|
+
|
|
9
13
|
[docs]
|
|
10
14
|
autoapi
|
|
11
15
|
ipython
|
|
@@ -27,6 +31,7 @@ networkx
|
|
|
27
31
|
pytest
|
|
28
32
|
pytest-cov
|
|
29
33
|
pytest-mock
|
|
34
|
+
pytest-timeout
|
|
30
35
|
|
|
31
36
|
[types]
|
|
32
37
|
mypy
|
|
@@ -17,12 +17,14 @@ LONG_DESCRIPTION = (Path(__file__).parent / "README.md").read_text()
|
|
|
17
17
|
SETUP_REQUIREMENTS = ["setuptools>=28", "setuptools_scm"]
|
|
18
18
|
REQUIREMENTS = [
|
|
19
19
|
"resdata>=5.0.0-b0",
|
|
20
|
+
"resfo",
|
|
20
21
|
"numpy",
|
|
21
22
|
"opm>=2020.10.2",
|
|
22
23
|
"pandas",
|
|
23
24
|
"pyarrow",
|
|
24
25
|
"pyyaml>=5.1",
|
|
25
26
|
"treelib",
|
|
27
|
+
"xtgeo<4.3.2; python_version<='3.8'",
|
|
26
28
|
]
|
|
27
29
|
|
|
28
30
|
TEST_REQUIREMENTS = (
|
|
@@ -1108,6 +1108,24 @@ def test_df2pyarrow_mix_int_float():
|
|
|
1108
1108
|
pd.testing.assert_frame_equal(dframe, pyat_df[["FOO", "BAR"]])
|
|
1109
1109
|
|
|
1110
1110
|
|
|
1111
|
+
@pytest.mark.timeout(10)
|
|
1112
|
+
def test_df2pyarrow_10000cols():
|
|
1113
|
+
"""Summary files with thousands of columns should not be an issue"""
|
|
1114
|
+
columncount = 10000
|
|
1115
|
+
dateindex = [dt(2024, 1, 1, 0, 0, 0), dt(2025, 1, 1, 0, 0, 0)]
|
|
1116
|
+
dframe = pd.DataFrame(
|
|
1117
|
+
columns=[f"FOO{num}" for num in range(columncount)],
|
|
1118
|
+
index=dateindex,
|
|
1119
|
+
data=[[1] * columncount, [2] * columncount],
|
|
1120
|
+
).astype("int32")
|
|
1121
|
+
dframe.attrs["meta"] = {f"FOO{num}": {"unit": "barf"} for num in range(columncount)}
|
|
1122
|
+
pyat = _df2pyarrow(dframe)
|
|
1123
|
+
for num in range(columncount):
|
|
1124
|
+
assert pyat.select([f"FOO{num}"]).schema[0].metadata == {
|
|
1125
|
+
b"unit": b"barf",
|
|
1126
|
+
}
|
|
1127
|
+
|
|
1128
|
+
|
|
1111
1129
|
def test_df2pyarrow_500years():
|
|
1112
1130
|
"""Summary files can have DATE columns with timespans outside the
|
|
1113
1131
|
Pandas dataframe nanosecond limitation. This should not present
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|