ResSimpy 2.2.2__tar.gz → 2.2.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ressimpy-2.2.2 → ressimpy-2.2.3}/PKG-INFO +1 -1
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/DataObjectMixin.py +5 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Grid.py +76 -5
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/nexus_collect_tables.py +3 -1
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/__init__.py +1 -1
- {ressimpy-2.2.2 → ressimpy-2.2.3}/pyproject.toml +5 -3
- {ressimpy-2.2.2 → ressimpy-2.2.3}/LICENSE.MD +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/README.md +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Aquifer.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Completion.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Constraint.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Constraints.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/DynamicProperty.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Enums/FluidTypeEnums.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Enums/FrequencyEnum.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Enums/GridFunctionTypes.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Enums/HowEnum.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Enums/OutputType.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Enums/PenetrationDirectionEnum.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Enums/TimeSteppingMethodEnum.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Enums/UnitsEnum.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Enums/WellTypeEnum.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Enums/__init__.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Equilibration.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/File.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/FileBase.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/FileOperations/__init__.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/FileOperations/file_operations.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Gaslift.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/GridArrayFunction.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Grids.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Hydraulics.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/ISODateTime.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Network.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/FcsConfig.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/FcsFile.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusConstraint.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusConstraints.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusNode.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusNodeConnection.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusNodeConnections.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusNodes.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusProc.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusProcs.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusTarget.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusTargets.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusWellConnection.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusWellConnections.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusWellLists.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusWellbore.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusWellbores.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusWellhead.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusWellheads.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/__init__.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusAquiferMethod.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusCompletion.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusEquilMethod.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusFile.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusGasliftMethod.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusHydraulicsMethod.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusPVTMethod.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusRelPermEndPoint.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusRelPermMethod.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusReportingRequests.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusRockMethod.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusSeparatorMethod.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusSolverParameter.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusValveMethod.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusWaterMethod.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusWell.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusWellList.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusWellMod.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/StructuredGrid/NexusGrid.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/StructuredGrid/NexusGridArrayFunction.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/StructuredGrid/__init__.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/__init__.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusAquiferMethods.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusEnums/DateFormatEnum.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusEnums/__init__.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusEquilMethods.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusGasliftMethods.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusGrids.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusHydraulicsMethods.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/__init__.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/adsorption_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/alphaf_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/aquifer_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/choke_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/compressor_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/eos_defaults_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/equil_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/esp_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/fcs_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/fluxin_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/gaslift_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/hyd_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/icd_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/ipr_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/nexus_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/options_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/polymer_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/proc_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/pump_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/pvt_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/relpm_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/rock_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/runcontrol_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/separator_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/structured_grid_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/surface_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/tracer_init_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/valve_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/water_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/wells_keywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusNetwork.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusPVTMethods.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusRelPermMethods.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusReporting.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusRockMethods.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusSeparatorMethods.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusSimulator.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusSolverParameters.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusValveMethods.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusWaterMethods.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusWells.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/__init__.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/array_function_operations.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/constants.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/load_wells.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/logfile_operations.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/nexus_add_new_object_to_file.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/nexus_constraint_operations.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/nexus_file_operations.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/nexus_load_well_list.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/nexus_modify_object_in_file.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/nexus_remove_object_from_file.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/rel_perm_operations.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/runcontrol_operations.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/structured_grid_operations.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Node.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/NodeConnection.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/NodeConnections.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nodes.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/DataModels/Network/__init__.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/DataModels/OpenGoSimCompletion.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/DataModels/OpenGoSimWell.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/DataModels/__init__.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/Enums/SimulationTypeEnum.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/Enums/__init__.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/Model_Parts/OpenGoSimNetwork.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/Model_Parts/__init__.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/OpenGoSimKeywords/OpenGoSimKeywords.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/OpenGoSimKeywords/__init__.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/OpenGoSimSimulator.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/OpenGoSimWells.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/__init__.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OperationsMixin.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/PVT.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/RelPerm.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/RelPermEndPoint.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Reporting.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Rock.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Separator.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Simulator.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/SolverParameter.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/SolverParameters.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Target.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Targets.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Units/AttributeMapping.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Units/AttributeMappings/BaseUnitMapping.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Units/AttributeMappings/CompletionUnitMapping.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Units/AttributeMappings/ConstraintUnitMapping.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Units/AttributeMappings/DynamicPropertyUnitMapping.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Units/AttributeMappings/NetworkUnitMapping.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Units/AttributeMappings/__init__.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Units/Units.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Units/__init__.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Utils/__init__.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Utils/factory_methods.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Utils/general_utilities.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Utils/generic_repr.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Utils/invert_nexus_map.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Utils/obj_to_dataframe.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Utils/obj_to_table_string.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Utils/to_dict_generic.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Valve.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Water.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Well.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/WellConnection.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/WellConnections.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/WellLists.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Wellbore.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Wellbores.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Wellhead.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Wellheads.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Wells.py +0 -0
- {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/output_request.py +0 -0
|
@@ -49,12 +49,14 @@ class DataObjectMixin(ABC):
|
|
|
49
49
|
|
|
50
50
|
@property
|
|
51
51
|
def iso_date(self) -> ISODateTime:
|
|
52
|
+
"""The date of the object in ISO format."""
|
|
52
53
|
if self.__iso_date is None:
|
|
53
54
|
self.set_iso_date()
|
|
54
55
|
return self.__iso_date
|
|
55
56
|
|
|
56
57
|
@property
|
|
57
58
|
def date(self) -> Optional[str]:
|
|
59
|
+
"""The date of the object as written in the source file."""
|
|
58
60
|
return self.__date
|
|
59
61
|
|
|
60
62
|
@date.setter
|
|
@@ -64,14 +66,17 @@ class DataObjectMixin(ABC):
|
|
|
64
66
|
|
|
65
67
|
@property
|
|
66
68
|
def start_date(self) -> Optional[str]:
|
|
69
|
+
"""The start date of the model (required for Nexus objects using a decimal date format)."""
|
|
67
70
|
return self._start_date
|
|
68
71
|
|
|
69
72
|
@property
|
|
70
73
|
def date_format(self) -> Optional[DateFormat]:
|
|
74
|
+
"""The date format of the date on the object."""
|
|
71
75
|
return self._date_format
|
|
72
76
|
|
|
73
77
|
@property
|
|
74
78
|
def unit_system(self) -> Optional[UnitSystem]:
|
|
79
|
+
"""The unit system being used in the object."""
|
|
75
80
|
return self._unit_system
|
|
76
81
|
|
|
77
82
|
def set_iso_date(self) -> None:
|
|
@@ -1,17 +1,22 @@
|
|
|
1
|
+
"""Grid base class."""
|
|
2
|
+
|
|
1
3
|
from __future__ import annotations
|
|
2
4
|
from abc import ABC, abstractmethod
|
|
3
5
|
from dataclasses import dataclass
|
|
6
|
+
import os
|
|
4
7
|
import pandas as pd
|
|
5
|
-
|
|
6
|
-
from ResSimpy.GridArrayFunction import GridArrayFunction
|
|
8
|
+
import numpy as np
|
|
7
9
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
+
from typing import Optional, Sequence
|
|
11
|
+
from ResSimpy.GridArrayFunction import GridArrayFunction
|
|
12
|
+
from ResSimpy.FileOperations import file_operations as fo
|
|
13
|
+
from ResSimpy.Utils.general_utilities import check_if_string_is_float
|
|
14
|
+
from ResSimpy.File import File
|
|
10
15
|
|
|
11
16
|
|
|
12
17
|
@dataclass
|
|
13
18
|
class GridArrayDefinition:
|
|
14
|
-
"""
|
|
19
|
+
"""A class to define a grid array property.
|
|
15
20
|
|
|
16
21
|
Args:
|
|
17
22
|
modifier (Optional[str]): the modifier for the grid array property (e.g. CON, MULT, etc.)
|
|
@@ -29,6 +34,7 @@ class GridArrayDefinition:
|
|
|
29
34
|
|
|
30
35
|
@dataclass(kw_only=True)
|
|
31
36
|
class Grid(ABC):
|
|
37
|
+
"""A base class to represent a collection of grids in a reservoir simulation model."""
|
|
32
38
|
# Grid dimensions
|
|
33
39
|
_range_x: Optional[int]
|
|
34
40
|
_range_y: Optional[int]
|
|
@@ -143,3 +149,68 @@ class Grid(ABC):
|
|
|
143
149
|
def array_functions(self) -> Optional[Sequence[GridArrayFunction]]:
|
|
144
150
|
"""Returns a list of the array functions defined in the structured grid file."""
|
|
145
151
|
raise NotImplementedError("Implement this in the derived class")
|
|
152
|
+
|
|
153
|
+
@staticmethod
|
|
154
|
+
def filter_grid_array_definition(grid_array_definition: GridArrayDefinition) -> File:
|
|
155
|
+
"""Checks array files for only float values and returns a new file with only float values."""
|
|
156
|
+
file_path = grid_array_definition.absolute_path
|
|
157
|
+
if file_path is None and grid_array_definition.value is not None:
|
|
158
|
+
file_path = grid_array_definition.value
|
|
159
|
+
elif file_path is None:
|
|
160
|
+
raise FileNotFoundError('No file path found in the grid array definition')
|
|
161
|
+
file_as_list = fo.load_file_as_list(file_path)
|
|
162
|
+
|
|
163
|
+
new_file_as_list = Grid.grid_filter_file_as_list(file_as_list)
|
|
164
|
+
|
|
165
|
+
# create a new file with the filtered list
|
|
166
|
+
new_file_path = (os.path.splitext(file_path)[0] + '_filtered' +
|
|
167
|
+
os.path.splitext(file_path)[1])
|
|
168
|
+
new_grid_file = File(location=new_file_path,
|
|
169
|
+
file_content_as_list=new_file_as_list,
|
|
170
|
+
create_as_modified=True,
|
|
171
|
+
)
|
|
172
|
+
|
|
173
|
+
return new_grid_file
|
|
174
|
+
|
|
175
|
+
@staticmethod
|
|
176
|
+
def grid_filter_file_as_list(file_as_list: list[str], comment_characters: list[str] | None = None) -> list[str]:
|
|
177
|
+
"""Checks array files for only float values and returns a new file with only float values.
|
|
178
|
+
This works for grid arrays only. It does not work well with extremely large files.
|
|
179
|
+
|
|
180
|
+
Args:
|
|
181
|
+
file_as_list (list[str]): The file as a list of strings.
|
|
182
|
+
comment_characters (Optional[list[str]]): The comment characters to filter out. Defaults to None.
|
|
183
|
+
"""
|
|
184
|
+
if comment_characters is None:
|
|
185
|
+
comment_characters = ['--', '!', 'C']
|
|
186
|
+
if fo.value_in_file('INCLUDE', file_as_list):
|
|
187
|
+
raise NotImplementedError('Nested includes for grid files currently not implemented')
|
|
188
|
+
file_as_list = fo.strip_file_of_comments(file_as_list, comment_characters=comment_characters)
|
|
189
|
+
# remove non float values
|
|
190
|
+
file_as_list = [' '.join([x for x in line.split() if check_if_string_is_float(x)]) for line in file_as_list]
|
|
191
|
+
return file_as_list
|
|
192
|
+
|
|
193
|
+
@staticmethod
|
|
194
|
+
def grid_file_as_list_to_numpy_array(file_as_list: list[str], x_range: None | int, y_range: None | int,
|
|
195
|
+
z_range: None | int) -> np.ndarray:
|
|
196
|
+
"""Converts a list of strings to a numpy array."""
|
|
197
|
+
# ensure the list of strings is filtered of comments and non-float values
|
|
198
|
+
new_file_as_list = Grid.grid_filter_file_as_list(file_as_list)
|
|
199
|
+
|
|
200
|
+
array_size = -1
|
|
201
|
+
if x_range is not None and y_range is not None and z_range is not None:
|
|
202
|
+
array_size = x_range * y_range * z_range
|
|
203
|
+
|
|
204
|
+
grid_array = np.fromstring(' '.join(new_file_as_list), sep=' ', count=array_size)
|
|
205
|
+
|
|
206
|
+
return grid_array
|
|
207
|
+
|
|
208
|
+
def grid_array_definition_to_numpy_array(self, grid_array_definition: GridArrayDefinition) -> np.ndarray:
|
|
209
|
+
"""Converts a grid array to a numpy array."""
|
|
210
|
+
path = grid_array_definition.absolute_path
|
|
211
|
+
if path is None and grid_array_definition.value is not None:
|
|
212
|
+
path = grid_array_definition.value
|
|
213
|
+
elif path is None:
|
|
214
|
+
raise FileNotFoundError('No file path found in the grid array definition')
|
|
215
|
+
file_as_list = fo.load_file_as_list(path)
|
|
216
|
+
return self.grid_file_as_list_to_numpy_array(file_as_list, self.range_x, self.range_y, self.range_z)
|
|
@@ -145,7 +145,9 @@ def collect_all_tables_to_objects(nexus_file: File, table_object_map: dict[str,
|
|
|
145
145
|
elif list_objects is not None and isinstance(list_of_token_obj, list):
|
|
146
146
|
list_of_token_obj.extend([x[0] for x in list_objects])
|
|
147
147
|
# add the names from the nodes into the network names for wildcards
|
|
148
|
-
|
|
148
|
+
# wildcards do not apply to LIST type nexus objects like WELLLIST.
|
|
149
|
+
if 'LIST' not in token_found:
|
|
150
|
+
network_names.extend([x.name for x in list_of_token_obj])
|
|
149
151
|
for new_object, id_index in list_objects:
|
|
150
152
|
correct_line_index = id_index + table_start
|
|
151
153
|
# temporary try statement until all objects have an id property
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "ResSimpy"
|
|
3
|
-
version = "2.2.
|
|
3
|
+
version = "2.2.3" # Set at build time
|
|
4
4
|
description = "A Python library for working with Reservoir Simulator Models."
|
|
5
5
|
authors = ["BP"]
|
|
6
6
|
readme = "README.md"
|
|
@@ -34,7 +34,7 @@ flake8 = "^6"
|
|
|
34
34
|
mypy = "^1.2"
|
|
35
35
|
pycodestyle = "^2.9.1"
|
|
36
36
|
pytest-cov = "^4.0.0"
|
|
37
|
-
ruff = "0.
|
|
37
|
+
ruff = "0.3.7"
|
|
38
38
|
|
|
39
39
|
[tool.poetry-dynamic-versioning]
|
|
40
40
|
enable = false
|
|
@@ -59,6 +59,8 @@ build-backend = "poetry_dynamic_versioning.backend"
|
|
|
59
59
|
|
|
60
60
|
[tool.ruff]
|
|
61
61
|
line-length = 120
|
|
62
|
+
|
|
63
|
+
[tool.ruff.lint]
|
|
62
64
|
# Rule codes for ruff can be found at: https://beta.ruff.rs/docs/rules/
|
|
63
65
|
select = ["E", "F", "W", "C90", "N", "UP", "YTT", "ANN", "S", "BLE", "D", "PLE", "PLW", "RUF", "BLE", "ARG", "I",
|
|
64
66
|
"COM", "C4", "PIE", "T20", "PYI", "TID", "INT", "ERA", "PD", "FLY", "NPY"] # To add later: PL, PLR
|
|
@@ -72,7 +74,7 @@ ignore = ["UP007", "ANN101", "N999", "UP035", "S105", "N802", "S106", "S107", "
|
|
|
72
74
|
]
|
|
73
75
|
exclude = ["./tests"]
|
|
74
76
|
|
|
75
|
-
[tool.ruff.pydocstyle]
|
|
77
|
+
[tool.ruff.lint.pydocstyle]
|
|
76
78
|
# Use Google-style docstrings.
|
|
77
79
|
convention = "google"
|
|
78
80
|
|
|
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
|
{ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/StructuredGrid/NexusGridArrayFunction.py
RENAMED
|
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
|
{ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Units/AttributeMappings/DynamicPropertyUnitMapping.py
RENAMED
|
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
|