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.
Files changed (197) hide show
  1. {ressimpy-2.2.2 → ressimpy-2.2.3}/PKG-INFO +1 -1
  2. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/DataObjectMixin.py +5 -0
  3. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Grid.py +76 -5
  4. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/nexus_collect_tables.py +3 -1
  5. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/__init__.py +1 -1
  6. {ressimpy-2.2.2 → ressimpy-2.2.3}/pyproject.toml +5 -3
  7. {ressimpy-2.2.2 → ressimpy-2.2.3}/LICENSE.MD +0 -0
  8. {ressimpy-2.2.2 → ressimpy-2.2.3}/README.md +0 -0
  9. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Aquifer.py +0 -0
  10. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Completion.py +0 -0
  11. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Constraint.py +0 -0
  12. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Constraints.py +0 -0
  13. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/DynamicProperty.py +0 -0
  14. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Enums/FluidTypeEnums.py +0 -0
  15. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Enums/FrequencyEnum.py +0 -0
  16. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Enums/GridFunctionTypes.py +0 -0
  17. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Enums/HowEnum.py +0 -0
  18. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Enums/OutputType.py +0 -0
  19. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Enums/PenetrationDirectionEnum.py +0 -0
  20. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Enums/TimeSteppingMethodEnum.py +0 -0
  21. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Enums/UnitsEnum.py +0 -0
  22. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Enums/WellTypeEnum.py +0 -0
  23. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Enums/__init__.py +0 -0
  24. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Equilibration.py +0 -0
  25. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/File.py +0 -0
  26. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/FileBase.py +0 -0
  27. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/FileOperations/__init__.py +0 -0
  28. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/FileOperations/file_operations.py +0 -0
  29. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Gaslift.py +0 -0
  30. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/GridArrayFunction.py +0 -0
  31. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Grids.py +0 -0
  32. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Hydraulics.py +0 -0
  33. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/ISODateTime.py +0 -0
  34. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Network.py +0 -0
  35. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/FcsConfig.py +0 -0
  36. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/FcsFile.py +0 -0
  37. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusConstraint.py +0 -0
  38. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusConstraints.py +0 -0
  39. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusNode.py +0 -0
  40. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusNodeConnection.py +0 -0
  41. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusNodeConnections.py +0 -0
  42. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusNodes.py +0 -0
  43. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusProc.py +0 -0
  44. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusProcs.py +0 -0
  45. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusTarget.py +0 -0
  46. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusTargets.py +0 -0
  47. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusWellConnection.py +0 -0
  48. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusWellConnections.py +0 -0
  49. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusWellLists.py +0 -0
  50. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusWellbore.py +0 -0
  51. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusWellbores.py +0 -0
  52. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusWellhead.py +0 -0
  53. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/NexusWellheads.py +0 -0
  54. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/Network/__init__.py +0 -0
  55. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusAquiferMethod.py +0 -0
  56. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusCompletion.py +0 -0
  57. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusEquilMethod.py +0 -0
  58. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusFile.py +0 -0
  59. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusGasliftMethod.py +0 -0
  60. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusHydraulicsMethod.py +0 -0
  61. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusPVTMethod.py +0 -0
  62. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusRelPermEndPoint.py +0 -0
  63. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusRelPermMethod.py +0 -0
  64. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusReportingRequests.py +0 -0
  65. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusRockMethod.py +0 -0
  66. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusSeparatorMethod.py +0 -0
  67. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusSolverParameter.py +0 -0
  68. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusValveMethod.py +0 -0
  69. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusWaterMethod.py +0 -0
  70. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusWell.py +0 -0
  71. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusWellList.py +0 -0
  72. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/NexusWellMod.py +0 -0
  73. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/StructuredGrid/NexusGrid.py +0 -0
  74. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/StructuredGrid/NexusGridArrayFunction.py +0 -0
  75. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/StructuredGrid/__init__.py +0 -0
  76. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/DataModels/__init__.py +0 -0
  77. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusAquiferMethods.py +0 -0
  78. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusEnums/DateFormatEnum.py +0 -0
  79. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusEnums/__init__.py +0 -0
  80. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusEquilMethods.py +0 -0
  81. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusGasliftMethods.py +0 -0
  82. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusGrids.py +0 -0
  83. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusHydraulicsMethods.py +0 -0
  84. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/__init__.py +0 -0
  85. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/adsorption_keywords.py +0 -0
  86. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/alphaf_keywords.py +0 -0
  87. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/aquifer_keywords.py +0 -0
  88. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/choke_keywords.py +0 -0
  89. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/compressor_keywords.py +0 -0
  90. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/eos_defaults_keywords.py +0 -0
  91. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/equil_keywords.py +0 -0
  92. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/esp_keywords.py +0 -0
  93. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/fcs_keywords.py +0 -0
  94. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/fluxin_keywords.py +0 -0
  95. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/gaslift_keywords.py +0 -0
  96. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/hyd_keywords.py +0 -0
  97. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/icd_keywords.py +0 -0
  98. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/ipr_keywords.py +0 -0
  99. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/nexus_keywords.py +0 -0
  100. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/options_keywords.py +0 -0
  101. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/polymer_keywords.py +0 -0
  102. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/proc_keywords.py +0 -0
  103. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/pump_keywords.py +0 -0
  104. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/pvt_keywords.py +0 -0
  105. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/relpm_keywords.py +0 -0
  106. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/rock_keywords.py +0 -0
  107. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/runcontrol_keywords.py +0 -0
  108. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/separator_keywords.py +0 -0
  109. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/structured_grid_keywords.py +0 -0
  110. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/surface_keywords.py +0 -0
  111. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/tracer_init_keywords.py +0 -0
  112. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/valve_keywords.py +0 -0
  113. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/water_keywords.py +0 -0
  114. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusKeywords/wells_keywords.py +0 -0
  115. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusNetwork.py +0 -0
  116. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusPVTMethods.py +0 -0
  117. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusRelPermMethods.py +0 -0
  118. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusReporting.py +0 -0
  119. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusRockMethods.py +0 -0
  120. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusSeparatorMethods.py +0 -0
  121. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusSimulator.py +0 -0
  122. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusSolverParameters.py +0 -0
  123. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusValveMethods.py +0 -0
  124. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusWaterMethods.py +0 -0
  125. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/NexusWells.py +0 -0
  126. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/__init__.py +0 -0
  127. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/array_function_operations.py +0 -0
  128. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/constants.py +0 -0
  129. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/load_wells.py +0 -0
  130. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/logfile_operations.py +0 -0
  131. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/nexus_add_new_object_to_file.py +0 -0
  132. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/nexus_constraint_operations.py +0 -0
  133. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/nexus_file_operations.py +0 -0
  134. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/nexus_load_well_list.py +0 -0
  135. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/nexus_modify_object_in_file.py +0 -0
  136. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/nexus_remove_object_from_file.py +0 -0
  137. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/rel_perm_operations.py +0 -0
  138. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/runcontrol_operations.py +0 -0
  139. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nexus/structured_grid_operations.py +0 -0
  140. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Node.py +0 -0
  141. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/NodeConnection.py +0 -0
  142. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/NodeConnections.py +0 -0
  143. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Nodes.py +0 -0
  144. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/DataModels/Network/__init__.py +0 -0
  145. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/DataModels/OpenGoSimCompletion.py +0 -0
  146. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/DataModels/OpenGoSimWell.py +0 -0
  147. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/DataModels/__init__.py +0 -0
  148. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/Enums/SimulationTypeEnum.py +0 -0
  149. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/Enums/__init__.py +0 -0
  150. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/Model_Parts/OpenGoSimNetwork.py +0 -0
  151. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/Model_Parts/__init__.py +0 -0
  152. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/OpenGoSimKeywords/OpenGoSimKeywords.py +0 -0
  153. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/OpenGoSimKeywords/__init__.py +0 -0
  154. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/OpenGoSimSimulator.py +0 -0
  155. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/OpenGoSimWells.py +0 -0
  156. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OpenGoSim/__init__.py +0 -0
  157. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/OperationsMixin.py +0 -0
  158. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/PVT.py +0 -0
  159. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/RelPerm.py +0 -0
  160. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/RelPermEndPoint.py +0 -0
  161. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Reporting.py +0 -0
  162. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Rock.py +0 -0
  163. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Separator.py +0 -0
  164. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Simulator.py +0 -0
  165. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/SolverParameter.py +0 -0
  166. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/SolverParameters.py +0 -0
  167. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Target.py +0 -0
  168. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Targets.py +0 -0
  169. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Units/AttributeMapping.py +0 -0
  170. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Units/AttributeMappings/BaseUnitMapping.py +0 -0
  171. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Units/AttributeMappings/CompletionUnitMapping.py +0 -0
  172. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Units/AttributeMappings/ConstraintUnitMapping.py +0 -0
  173. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Units/AttributeMappings/DynamicPropertyUnitMapping.py +0 -0
  174. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Units/AttributeMappings/NetworkUnitMapping.py +0 -0
  175. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Units/AttributeMappings/__init__.py +0 -0
  176. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Units/Units.py +0 -0
  177. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Units/__init__.py +0 -0
  178. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Utils/__init__.py +0 -0
  179. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Utils/factory_methods.py +0 -0
  180. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Utils/general_utilities.py +0 -0
  181. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Utils/generic_repr.py +0 -0
  182. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Utils/invert_nexus_map.py +0 -0
  183. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Utils/obj_to_dataframe.py +0 -0
  184. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Utils/obj_to_table_string.py +0 -0
  185. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Utils/to_dict_generic.py +0 -0
  186. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Valve.py +0 -0
  187. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Water.py +0 -0
  188. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Well.py +0 -0
  189. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/WellConnection.py +0 -0
  190. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/WellConnections.py +0 -0
  191. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/WellLists.py +0 -0
  192. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Wellbore.py +0 -0
  193. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Wellbores.py +0 -0
  194. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Wellhead.py +0 -0
  195. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Wellheads.py +0 -0
  196. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/Wells.py +0 -0
  197. {ressimpy-2.2.2 → ressimpy-2.2.3}/ResSimpy/output_request.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ResSimpy
3
- Version: 2.2.2
3
+ Version: 2.2.3
4
4
  Summary: A Python library for working with Reservoir Simulator Models.
5
5
  License: Apache-2.0
6
6
  Keywords: ResSimpy,Reservoir Engineering
@@ -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
- from typing import Optional, Sequence, TYPE_CHECKING
6
- from ResSimpy.GridArrayFunction import GridArrayFunction
8
+ import numpy as np
7
9
 
8
- if TYPE_CHECKING:
9
- from ResSimpy.File import File
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
- """Initialises the NexusGrid class.
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
- network_names.extend([x.name for x in list_of_token_obj])
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
@@ -11,7 +11,7 @@
11
11
  Enums
12
12
  """
13
13
 
14
- __version__ = "2.2.2" # Set at build time
14
+ __version__ = "2.2.3" # Set at build time
15
15
 
16
16
  from ResSimpy.Nexus.NexusSimulator import NexusSimulator
17
17
  from ResSimpy.OpenGoSim.OpenGoSimSimulator import OpenGoSimSimulator
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "ResSimpy"
3
- version = "2.2.2" # Set at build time
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.1.*"
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