resqpy 4.14.2__py3-none-any.whl → 5.1.6__py3-none-any.whl

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 (67) hide show
  1. resqpy/__init__.py +1 -1
  2. resqpy/fault/_gcs_functions.py +10 -10
  3. resqpy/fault/_grid_connection_set.py +277 -113
  4. resqpy/grid/__init__.py +2 -3
  5. resqpy/grid/_defined_geometry.py +3 -3
  6. resqpy/grid/_extract_functions.py +8 -2
  7. resqpy/grid/_grid.py +95 -12
  8. resqpy/grid/_grid_types.py +22 -7
  9. resqpy/grid/_points_functions.py +1 -1
  10. resqpy/grid/_regular_grid.py +6 -2
  11. resqpy/grid_surface/__init__.py +17 -38
  12. resqpy/grid_surface/_blocked_well_populate.py +5 -5
  13. resqpy/grid_surface/_find_faces.py +1413 -253
  14. resqpy/lines/_polyline.py +24 -33
  15. resqpy/model/_catalogue.py +9 -0
  16. resqpy/model/_forestry.py +18 -14
  17. resqpy/model/_hdf5.py +11 -3
  18. resqpy/model/_model.py +85 -10
  19. resqpy/model/_xml.py +38 -13
  20. resqpy/multi_processing/wrappers/grid_surface_mp.py +92 -37
  21. resqpy/olio/read_nexus_fault.py +8 -2
  22. resqpy/olio/relperm.py +1 -1
  23. resqpy/olio/transmission.py +8 -8
  24. resqpy/olio/triangulation.py +36 -30
  25. resqpy/olio/vector_utilities.py +340 -6
  26. resqpy/olio/volume.py +0 -20
  27. resqpy/olio/wellspec_keywords.py +19 -13
  28. resqpy/olio/write_hdf5.py +1 -1
  29. resqpy/olio/xml_et.py +12 -0
  30. resqpy/property/__init__.py +6 -4
  31. resqpy/property/_collection_add_part.py +4 -3
  32. resqpy/property/_collection_create_xml.py +4 -2
  33. resqpy/property/_collection_get_attributes.py +4 -0
  34. resqpy/property/attribute_property_set.py +311 -0
  35. resqpy/property/grid_property_collection.py +11 -11
  36. resqpy/property/property_collection.py +79 -31
  37. resqpy/property/property_common.py +3 -8
  38. resqpy/rq_import/_add_surfaces.py +34 -14
  39. resqpy/rq_import/_grid_from_cp.py +2 -2
  40. resqpy/rq_import/_import_nexus.py +75 -48
  41. resqpy/rq_import/_import_vdb_all_grids.py +64 -52
  42. resqpy/rq_import/_import_vdb_ensemble.py +12 -13
  43. resqpy/surface/_mesh.py +4 -0
  44. resqpy/surface/_surface.py +593 -118
  45. resqpy/surface/_tri_mesh.py +13 -10
  46. resqpy/surface/_tri_mesh_stencil.py +4 -4
  47. resqpy/surface/_triangulated_patch.py +71 -51
  48. resqpy/time_series/_any_time_series.py +7 -4
  49. resqpy/time_series/_geologic_time_series.py +1 -1
  50. resqpy/unstructured/_hexa_grid.py +6 -2
  51. resqpy/unstructured/_prism_grid.py +13 -5
  52. resqpy/unstructured/_pyramid_grid.py +6 -2
  53. resqpy/unstructured/_tetra_grid.py +6 -2
  54. resqpy/unstructured/_unstructured_grid.py +6 -2
  55. resqpy/well/_blocked_well.py +1986 -1946
  56. resqpy/well/_deviation_survey.py +3 -3
  57. resqpy/well/_md_datum.py +11 -21
  58. resqpy/well/_trajectory.py +10 -5
  59. resqpy/well/_wellbore_frame.py +10 -2
  60. resqpy/well/blocked_well_frame.py +3 -3
  61. resqpy/well/well_object_funcs.py +7 -9
  62. resqpy/well/well_utils.py +33 -0
  63. {resqpy-4.14.2.dist-info → resqpy-5.1.6.dist-info}/METADATA +8 -9
  64. {resqpy-4.14.2.dist-info → resqpy-5.1.6.dist-info}/RECORD +66 -66
  65. {resqpy-4.14.2.dist-info → resqpy-5.1.6.dist-info}/WHEEL +1 -1
  66. resqpy/grid/_moved_functions.py +0 -15
  67. {resqpy-4.14.2.dist-info → resqpy-5.1.6.dist-info}/LICENSE +0 -0
@@ -233,9 +233,9 @@ class DeviationSurvey(BaseResqpy):
233
233
  """
234
234
 
235
235
  try:
236
- df = pd.read_csv(deviation_survey_file,
237
- comment = comment_character,
238
- delim_whitespace = space_separated_instead_of_csv)
236
+ sep = r'\s+' if space_separated_instead_of_csv else ','
237
+
238
+ df = pd.read_csv(deviation_survey_file, comment = comment_character, sep = sep)
239
239
  if df is None:
240
240
  raise Exception
241
241
  except Exception:
resqpy/well/_md_datum.py CHANGED
@@ -80,19 +80,6 @@ class MdDatum(BaseResqpy):
80
80
  assert md_reference in valid_md_reference_list
81
81
  assert len(location) == 3
82
82
 
83
- def _load_from_xml(self):
84
- md_datum_root = self.root
85
- assert md_datum_root is not None
86
- location_node = rqet.find_tag(md_datum_root, 'Location')
87
- self.location = (rqet.find_tag_float(location_node,
88
- 'Coordinate1'), rqet.find_tag_float(location_node, 'Coordinate2'),
89
- rqet.find_tag_float(location_node, 'Coordinate3'))
90
- self.md_reference = rqet.node_text(rqet.find_tag(md_datum_root, 'MdReference')).strip().lower()
91
- assert self.md_reference in valid_md_reference_list
92
- self.crs_uuid = self.extract_crs_uuid()
93
-
94
- # todo: the following function is almost identical to one in the grid module: it should be made common and put in model.py
95
-
96
83
  def extract_crs_uuid(self):
97
84
  """Returns uuid for coordinate reference system, as stored in reference node of this md datum's xml tree."""
98
85
 
@@ -103,14 +90,6 @@ class MdDatum(BaseResqpy):
103
90
  self.crs_uuid = bu.uuid_from_string(uuid_str)
104
91
  return self.crs_uuid
105
92
 
106
- def create_part(self):
107
- """Creates xml for this md datum object and adds to parent model as a part; returns root node for part."""
108
-
109
- # note: deprecated, call create_xml() directly
110
- assert self.root is None
111
- assert self.location is not None
112
- self.create_xml(add_as_part = True)
113
-
114
93
  def create_xml(self, add_as_part = True, add_relationships = True, title = None, originator = None):
115
94
  """Creates xml for a measured depth datum element; crs node must already exist; optionally adds as part.
116
95
 
@@ -164,3 +143,14 @@ class MdDatum(BaseResqpy):
164
143
  if self.md_reference != other.md_reference or not np.allclose(self.location, other.location):
165
144
  return False
166
145
  return bu.matching_uuids(self.crs_uuid, other.crs_uuid)
146
+
147
+ def _load_from_xml(self):
148
+ md_datum_root = self.root
149
+ assert md_datum_root is not None
150
+ location_node = rqet.find_tag(md_datum_root, 'Location')
151
+ self.location = (rqet.find_tag_float(location_node,
152
+ 'Coordinate1'), rqet.find_tag_float(location_node, 'Coordinate2'),
153
+ rqet.find_tag_float(location_node, 'Coordinate3'))
154
+ self.md_reference = rqet.node_text(rqet.find_tag(md_datum_root, 'MdReference')).strip().lower()
155
+ assert self.md_reference in valid_md_reference_list
156
+ self.crs_uuid = self.extract_crs_uuid()
@@ -419,8 +419,13 @@ class Trajectory(BaseResqpy):
419
419
  set_tangent_vectors = True):
420
420
  """Load MD and control points (xyz) data directly from numpy arrays."""
421
421
 
422
+ if isinstance(mds, list) or isinstance(mds, tuple):
423
+ mds = np.array(mds, dtype = float)
424
+ assert mds.ndim == 1
422
425
  self.knot_count = len(mds)
423
426
  assert self.knot_count >= 2 # vertical well could be hamdled by allowing a single station in survey?
427
+ if isinstance(control_points, list) or isinstance(control_points, tuple):
428
+ control_points = np.array(control_points, dtype = float)
424
429
  assert control_points.shape == (self.knot_count, 3)
425
430
  self.line_kind_index = 5 # assume minimum curvature spline
426
431
  self.md_uom = wam.rq_length_unit(md_uom)
@@ -443,7 +448,7 @@ class Trajectory(BaseResqpy):
443
448
  """Loads the trajectory object based on the centre points of a list of cells."""
444
449
 
445
450
  assert grid is not None, 'grid argument missing for trajectory initislisation from cell list'
446
- cell_kji0_list = np.array(cell_kji0_list, dtype = int)
451
+ cell_kji0_list = np.array(cell_kji0_list, dtype = np.int32)
447
452
  assert cell_kji0_list.ndim == 2 and cell_kji0_list.shape[1] == 3
448
453
  assert spline_mode in ['none', 'linear', 'square', 'cube']
449
454
 
@@ -478,7 +483,7 @@ class Trajectory(BaseResqpy):
478
483
  df = wellspec_dict[well_name]
479
484
  assert len(df) > 0, 'no rows of perforation data found in wellspec for well ' + well_name
480
485
 
481
- cell_kji0_list = np.empty((len(df), 3), dtype = int)
486
+ cell_kji0_list = np.empty((len(df), 3), dtype = np.int32)
482
487
  cell_kji0_list[:, 0] = df['L']
483
488
  cell_kji0_list[:, 1] = df['JW']
484
489
  cell_kji0_list[:, 2] = df['IW']
@@ -505,9 +510,9 @@ class Trajectory(BaseResqpy):
505
510
  self.title = 'well trajectory'
506
511
 
507
512
  try:
508
- df = pd.read_csv(trajectory_file,
509
- comment = comment_character,
510
- delim_whitespace = space_separated_instead_of_csv)
513
+ sep = r'\s+' if space_separated_instead_of_csv else ','
514
+
515
+ df = pd.read_csv(trajectory_file, comment = comment_character, sep = sep)
511
516
  if df is None:
512
517
  raise Exception
513
518
  except Exception:
@@ -106,7 +106,11 @@ class WellboreFrame(BaseResqpy):
106
106
  assert self.node_mds is not None and self.node_mds.ndim == 1
107
107
 
108
108
  def _load_from_xml(self):
109
- """Loads the wellbore frame object from an xml node (and associated hdf5 data)."""
109
+ """Loads the wellbore frame object from an xml node.
110
+
111
+ Also loads the associated data either from an hdf5 file or generated from a
112
+ lattice array definition.
113
+ """
110
114
 
111
115
  # NB: node is the root level xml node, not a node in the md list!
112
116
 
@@ -126,7 +130,11 @@ class WellboreFrame(BaseResqpy):
126
130
 
127
131
  mds_node = rqet.find_tag(node, 'NodeMd')
128
132
  assert mds_node is not None, 'wellbore frame measured depths hdf5 reference not found in xml'
129
- rqwu.load_hdf5_array(self, mds_node, 'node_mds')
133
+ if rqet.node_type(mds_node) == "DoubleLatticeArray":
134
+ rqwu.load_lattice_array(self, mds_node, "node_mds", self.trajectory)
135
+ self.node_count = self.node_mds.size
136
+ else:
137
+ rqwu.load_hdf5_array(self, mds_node, "node_mds")
130
138
 
131
139
  assert self.node_mds is not None and self.node_mds.ndim == 1 and self.node_mds.size == self.node_count
132
140
 
@@ -191,7 +191,7 @@ def add_blocked_well_properties_from_wellbore_frame(bw,
191
191
  wb_a = np.zeros(bw.cell_count, dtype = bool)
192
192
  length = np.zeros(bw.cell_count, dtype = float)
193
193
  pperf = np.zeros(bw.cell_count, dtype = float)
194
- dominant_wbf_interval = np.full(bw.cell_count, -1, dtype = int)
194
+ dominant_wbf_interval = np.full(bw.cell_count, -1, dtype = np.int32)
195
195
  ci = 0
196
196
  for wb_ii in range(bw.node_count - 1):
197
197
  if bw.grid_indices[wb_ii] < 0:
@@ -258,7 +258,7 @@ def add_blocked_well_properties_from_wellbore_frame(bw,
258
258
  wbf_p = wbf_pc.singleton(property_kind = 'wellbore radius')
259
259
  assert wbf_p is not None, 'problem with wellbore radius wellbore frame property'
260
260
  wbf_a = wbf_pc.cached_part_array_ref(wbf_p)
261
- wb_a = np.full(bw.cell_count, np.NaN, dtype = float)
261
+ wb_a = np.full(bw.cell_count, np.nan, dtype = float)
262
262
  for i, wbf_contributions in enumerate(wb_fraction_of_wbf):
263
263
  if len(wbf_contributions) == 0:
264
264
  continue # todo: could try to inherit wellbore radius from above or below?
@@ -350,7 +350,7 @@ def add_blocked_well_properties_from_wellbore_frame(bw,
350
350
  skin_uom = skin_pc.uom_for_part(skin_part)
351
351
  else:
352
352
  assert skin_pc.uom_for_part(skin_part) == skin_uom, 'mixed skin units of measure'
353
- wb_skin = np.full(bw.cell_count, np.NaN, dtype = float)
353
+ wb_skin = np.full(bw.cell_count, np.nan, dtype = float)
354
354
  for i, wbf_contributions in enumerate(wb_fraction_of_wbf):
355
355
  if len(wbf_contributions) == 0:
356
356
  continue
@@ -77,9 +77,8 @@ def add_wells_from_ascii_file(model,
77
77
  assert crs_uuid is not None, 'coordinate reference system not found when trying to add wells'
78
78
 
79
79
  try:
80
- df = pd.read_csv(trajectory_file,
81
- comment = comment_character,
82
- delim_whitespace = space_separated_instead_of_csv)
80
+ sep = r'\s+' if space_separated_instead_of_csv else ','
81
+ df = pd.read_csv(trajectory_file, comment = comment_character, sep = sep)
83
82
  if df is None:
84
83
  raise Exception
85
84
  except Exception:
@@ -350,7 +349,6 @@ def add_las_to_trajectory(las: lasio.LASFile, trajectory, realization = None, ch
350
349
 
351
350
  # Read in data from each curve in turn (skipping first curve which has depths)
352
351
  for curve in las.curves[1:]:
353
-
354
352
  collection.add_log(
355
353
  title = curve.mnemonic,
356
354
  data = curve.data,
@@ -442,10 +440,10 @@ def add_logs_from_cellio(blockedwell, cellio):
442
440
  df = df.apply(pd.to_numeric)
443
441
  # Get the cell_indices from the grid for the given i/j/k
444
442
  df['cell_indices'] = grid.natural_cell_indices(
445
- np.array((df['k_index'] - 1, df['j_index'] - 1, df['i_index'] - 1), dtype = int).T)
443
+ np.array((df['k_index'] - 1, df['j_index'] - 1, df['i_index'] - 1), dtype = np.int32).T)
446
444
  df = df.drop(['i_index', 'j_index', 'k_index', 'x_in', 'y_in', 'z_in', 'x_out', 'y_out', 'z_out'], axis = 1)
447
- assert (df['cell_indices'] == blockedwell.cell_indices
448
- ).all(), 'Cell indices do not match between blocked well and log inputs'
445
+ assert (df['cell_indices'] == blockedwell.cell_indices).all(), \
446
+ 'Cell indices do not match between blocked well and log inputs'
449
447
 
450
448
  # Work out if the data columns are continuous, categorical or discrete
451
449
  type_dict = {}
@@ -468,11 +466,11 @@ def add_logs_from_cellio(blockedwell, cellio):
468
466
  if log not in ['cell_indices']:
469
467
  data_type = type_dict[log]
470
468
  if log == 'ZONES':
471
- data_type, dtype, null, discrete = 'discrete', int, -1, True
469
+ data_type, dtype, null, discrete = 'discrete', np.int32, -1, True
472
470
  elif data_type == 'continuous':
473
471
  dtype, null, discrete = float, np.nan, False
474
472
  else:
475
- dtype, null, discrete = int, -1, True
473
+ dtype, null, discrete = np.int32, -1, True
476
474
  if data_type == 'categorical':
477
475
  lookup_uuid = lookup_dict[log] # For categorical data, find or generate a StringLookupTable
478
476
  else:
resqpy/well/well_utils.py CHANGED
@@ -35,6 +35,39 @@ def load_hdf5_array(object, node, array_attribute, tag = 'Values', dtype = 'floa
35
35
  array_attribute = array_attribute)
36
36
 
37
37
 
38
+ def load_lattice_array(object, node, array_attribute, trajectory):
39
+ """Loads the property array data as an attribute of object, from the lattice array referenced in xml node.
40
+
41
+ This loader expects the XML node to be in the form of a lattice array, which is a
42
+ variant of NodeMd data defined as a series of regularly spaced measured depth values
43
+ computed from the metadata in the XML (start_value, offset, step_value, step_count).
44
+ Checks that the computed NodeMds are valid on the trajectory, and only loads those.
45
+
46
+ :param: object: The object to load the data into (typically a WellboreFrame)
47
+ :param: node: The XML node to load the metadata from
48
+ :param: array_attribute: The name of the attribute on 'object' to load the data into
49
+ :param: trajectory: The trajectory object to use to check the validity of the data
50
+
51
+ :meta private:
52
+ """
53
+
54
+ def check_md(md: float, trajectory) -> bool:
55
+ xyz = np.array(trajectory.xyz_for_md(md))
56
+ return isinstance(xyz, np.ndarray) and xyz.shape == (3,)
57
+
58
+ if array_attribute is not None and getattr(object, array_attribute, None) is not None:
59
+ return
60
+
61
+ start_value = rqet.find_tag_float(node, "StartValue", must_exist = True)
62
+ offset = rqet.find_tag(node, "Offset", must_exist = True)
63
+ step_value = rqet.find_tag_float(offset, "Value", must_exist = True)
64
+ step_count = rqet.find_tag_int(offset, "Count", must_exist = True)
65
+ if step_count > 0:
66
+ step_mds = start_value + np.arange(step_count) * step_value
67
+ valid_mds = [md for md in step_mds if check_md(md, trajectory)]
68
+ object.__dict__[array_attribute] = np.array(valid_mds)
69
+
70
+
38
71
  def extract_xyz(xyz_node):
39
72
  """Extracts an x,y,z coordinate from a solitary point xml node.
40
73
 
@@ -1,12 +1,11 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: resqpy
3
- Version: 4.14.2
3
+ Version: 5.1.6
4
4
  Summary: Python API for working with RESQML models
5
- Home-page: https://github.com/bp/resqpy
6
5
  License: MIT
7
6
  Keywords: RESQML
8
7
  Author: BP
9
- Requires-Python: >=3.8.1,<3.12
8
+ Requires-Python: >=3.9,<3.13
10
9
  Classifier: Development Status :: 5 - Production/Stable
11
10
  Classifier: License :: OSI Approved :: MIT License
12
11
  Classifier: Operating System :: OS Independent
@@ -14,17 +13,17 @@ Classifier: Programming Language :: Python :: 3
14
13
  Classifier: Programming Language :: Python :: 3.9
15
14
  Classifier: Programming Language :: Python :: 3.10
16
15
  Classifier: Programming Language :: Python :: 3.11
17
- Classifier: Programming Language :: Python :: 3.8
16
+ Classifier: Programming Language :: Python :: 3.12
18
17
  Classifier: Topic :: Scientific/Engineering
19
18
  Classifier: Topic :: Scientific/Engineering :: Information Analysis
20
19
  Classifier: Topic :: System :: Filesystems
21
20
  Requires-Dist: h5py (>=3.7,<4.0)
22
21
  Requires-Dist: joblib (>=1.2,<2.0)
23
22
  Requires-Dist: lasio (>=0.31,<0.32)
24
- Requires-Dist: lxml (>=4.9,<5.0)
25
- Requires-Dist: numba (>=0.56,<1.0)
26
- Requires-Dist: numpy (>=1.23,<2.0)
27
- Requires-Dist: pandas (>=1.4,<2.0)
23
+ Requires-Dist: lxml (>=5.1,<6.0)
24
+ Requires-Dist: numba (>=0.59,<1.0)
25
+ Requires-Dist: numpy (>=1.26,<2.0)
26
+ Requires-Dist: pandas (>=2.2,<3.0)
28
27
  Requires-Dist: scipy (>=1.9,<2.0)
29
28
  Project-URL: Documentation, https://resqpy.readthedocs.io/en/latest/
30
29
  Project-URL: Repository, https://github.com/bp/resqpy
@@ -1,4 +1,4 @@
1
- resqpy/__init__.py,sha256=S0sVtuHNxUEz09-YTlh-REx7XEcNMmgpxCKDQ0oYVm0,556
1
+ resqpy/__init__.py,sha256=cnR7ZBD-Sv8zdt5JWWw7n0iqZIaIhsYS7akdPjFzG10,555
2
2
  resqpy/crs.py,sha256=R7DfcTP5xGv5pu9Y8RHA2WVM9DjBCSVMoHcz4RmQ7Yw,27646
3
3
  resqpy/derived_model/__init__.py,sha256=NFvMSOKI3cxmH7lAbddV43JjoUj-r2G7ExEfOqinD1I,1982
4
4
  resqpy/derived_model/_add_edges_per_column_property_array.py,sha256=cpW3gwp6MSYIrtvFmCjoJXcyUsgGuCDbgmwlJCJebUs,6410
@@ -24,52 +24,51 @@ resqpy/derived_model/_unsplit_grid.py,sha256=aqcdyn4WhDy7Kys3wnb55QwVXehmir4VW7T
24
24
  resqpy/derived_model/_zonal_grid.py,sha256=H-IGMudUV-tiRHZqvl9B1wxMQNjeAM2zHvTllNiagPA,18825
25
25
  resqpy/derived_model/_zone_layer_ranges_from_array.py,sha256=4pHkp7yqvkif_pC59VEK0g0JeFx7kt8mqhqADTOcucI,4358
26
26
  resqpy/fault/__init__.py,sha256=IStX_EhPnppIExf_mgYrBddC4KP26VcqblcfXiBT614,996
27
- resqpy/fault/_gcs_functions.py,sha256=T3syDK7okT-xmx-ipk4xda1gwHEnaVn5VYmQAn1R5pE,29616
28
- resqpy/fault/_grid_connection_set.py,sha256=vpEFTXn5fvy2X6jgR-a4UUVbiU-ShOZ8MuSGEZklbos,117671
29
- resqpy/grid/__init__.py,sha256=WsfOnR5lHcnpJEx8ZZ3lhd4dImEiieJLM7eFPxMi3u8,692
27
+ resqpy/fault/_gcs_functions.py,sha256=NRyhKkYChRaKDUIQ6pfVQiD67e4TTm3LnBvWEPtpkDU,29569
28
+ resqpy/fault/_grid_connection_set.py,sha256=xStOkWHsbh9m6lql7f2PDURnoFOIM1mFmx-QG6yPaKo,126124
29
+ resqpy/grid/__init__.py,sha256=FTeNW9kJ8By6gA2-x-NisQQ8cY8RHCAro0lT-3ssxYQ,601
30
30
  resqpy/grid/_cell_properties.py,sha256=pbyAK2eV9n4teOxm2q5hyBinohEbevFPrCfMcpGiqUU,20689
31
31
  resqpy/grid/_connection_sets.py,sha256=-277bh9pMoeESSzy9oZehL-vc82aMGZuSLQs2KJ4Wfg,10120
32
32
  resqpy/grid/_create_grid_xml.py,sha256=p-jKo1BZ-DlhEYixVzadtY-QsqA8ygcXvMYS_TvQCjg,22837
33
- resqpy/grid/_defined_geometry.py,sha256=qkkfiSh8hzhTaW3vEot77mFWgApZl92Cb552b-xyjpQ,32297
34
- resqpy/grid/_extract_functions.py,sha256=n_SmfkvEssX09SrlvUMe7y-4eOuVckhL_M6tFTg1bRg,28203
33
+ resqpy/grid/_defined_geometry.py,sha256=QYQ3wLbPrlPobgUi9R1izTD4JD9qMGf5eyqbM68Hg-0,32297
34
+ resqpy/grid/_extract_functions.py,sha256=zfB8rLnt1qdz627BOiM4igXQKbCnsM8fV0HMbnLusTk,28585
35
35
  resqpy/grid/_face_functions.py,sha256=0I7O6DDz7nJWczi_G2bE3L2XUr4acxREwKygXWEp6F4,16516
36
36
  resqpy/grid/_faults.py,sha256=OmukVoLpdrndqDxwE6Rj7Ul5tj3FUQVPhE0raH2FHpg,12236
37
- resqpy/grid/_grid.py,sha256=kG5YwHmflK30-26r4v2QCjvfXL1DVImMD6bpH_TN_Ng,132130
38
- resqpy/grid/_grid_types.py,sha256=vN_mMAEvcQ7HGxDQ8VMJilGXADPfJ_2rgebOJ__2P8E,3572
37
+ resqpy/grid/_grid.py,sha256=-OhJpi9x8r74_7_CBrQsanqhFiZQcCiJkvbnhPRq2qQ,135758
38
+ resqpy/grid/_grid_types.py,sha256=YAmRrrm-J2HKuuwCRCAkE3ppcQLiwc4EEc6dc-sy9Fc,4362
39
39
  resqpy/grid/_intervals_info.py,sha256=ODjDz22n8U9pSpO0Muj8mJr2hYWauFDzgcVQ0RM3csQ,338
40
- resqpy/grid/_moved_functions.py,sha256=XboxA0pE55j-P_x5g051WheVamxkAatQGbU5aq2GkaE,604
41
40
  resqpy/grid/_pillars.py,sha256=WXvLjORlNHnm0KI3qgoRtCyXdcT9vQBkJDQWL2wtJwg,7243
42
41
  resqpy/grid/_pixel_maps.py,sha256=Aqn9dpDKjX_v8BnWMdN__ulqjeuXfE6W2_Z7EDaUqdE,5386
43
- resqpy/grid/_points_functions.py,sha256=bJkU7JoCF8t_TW43OzWenEmqTgmVMYbj8YXtIvj9EHg,70585
44
- resqpy/grid/_regular_grid.py,sha256=6lXWSsgzVAB4QwGOwhB7Gb9_kiU2rNM55xWIf9qT3GI,45758
42
+ resqpy/grid/_points_functions.py,sha256=72dCLWHrOUM9xSwSaEuxPUA__b6WAdk5rbeWatILdaI,70585
43
+ resqpy/grid/_regular_grid.py,sha256=5TzyD82S3K0H2zfBXHcGpOODmwc4X28WAUqgZ2kHCLc,46038
45
44
  resqpy/grid/_transmissibility.py,sha256=cLtuVaLgBQqRXa-_YQ5mjR_QC842Jxn2d-Hl6171yOY,22575
46
45
  resqpy/grid/_write_hdf5_from_caches.py,sha256=s3gcoilsFCCSw_wjnTjWe1xMHEWr_cessoGVgzqiqVI,9707
47
46
  resqpy/grid/_write_nexus_corp.py,sha256=yEVfiObsedEAXX6UG6ZTf56kZnQVkd3lLqE2NpL-KBM,6147
48
47
  resqpy/grid/_xyz.py,sha256=RLQWOdM_DRoCj4JypwB5gUJ78HTdk5JnZHSeAzuU634,13087
49
- resqpy/grid_surface/__init__.py,sha256=iyK3_Vlg9mXffc_1gjvRdKwQE0zicbNXya0tryHkr04,2593
50
- resqpy/grid_surface/_blocked_well_populate.py,sha256=MQIHf7Sh_XR3cUCfGhvlu4Xl498DtIKH2ffo4iud93w,35843
51
- resqpy/grid_surface/_find_faces.py,sha256=WRoc5g-kLtR0JkuT0nueVF8ZgG09YfR3K_aRp2Rc2K8,64645
48
+ resqpy/grid_surface/__init__.py,sha256=zSbyDwUH_p0UXd9PAcAXvcS1wrmRVnZvXXa1zQSQBlY,2925
49
+ resqpy/grid_surface/_blocked_well_populate.py,sha256=Lme1AR-nLWOUlNnmHMVThk6jEg_lAZxWWtL82Yksppw,35867
50
+ resqpy/grid_surface/_find_faces.py,sha256=sBzy9mWQZNU41kE5v3taVNDKnqzTcvnOT2FVAXABP0c,120573
52
51
  resqpy/grid_surface/_grid_skin.py,sha256=D0cjHkcuT5KCKb-8EZfXgh0GgJj3kzOBS2wVNXg4bfY,26056
53
52
  resqpy/grid_surface/_grid_surface.py,sha256=l2NJo7Kiucolbb_TlLPC7NGdksg_JahkihfsrJVq99w,14379
54
53
  resqpy/grid_surface/_trajectory_intersects.py,sha256=Och9cZYU9Y7ofovhPzsLyIblRUl2xj9_5nHH3fMZp-A,22498
55
54
  resqpy/grid_surface/grid_surface_cuda.py,sha256=RVhrhzuQOIl3QlUocUeHdmmv6M_HNXe5UH3sDTZRIQI,40016
56
55
  resqpy/lines/__init__.py,sha256=zE7j-BeqkOowj_tsZWd2X_fT-RpbuIh17zfEyj2N0oY,539
57
56
  resqpy/lines/_common.py,sha256=nlgVgZ8utHXuHDyzuP0IpkUJViDNmmy7EBqwLzxSI2M,11960
58
- resqpy/lines/_polyline.py,sha256=37E0pGDDaBuqtmvXq2zHyYO97uUIUWljZoSWNibQemc,42659
57
+ resqpy/lines/_polyline.py,sha256=boiVQ2lBLp3c0b1bEA2T_j_a5gNsMI2orxZnitZVdSY,42227
59
58
  resqpy/lines/_polyline_set.py,sha256=3K3z_G9l_3mfjLdCL-YVscyj1FA6DHh1uj9rXPtWFOY,27986
60
59
  resqpy/model/__init__.py,sha256=hbxO-IpCOH_82TZqj6e1FjrWxO0tZu2gj2HCN9x-Svw,378
61
- resqpy/model/_catalogue.py,sha256=ZSzLaZWBLgrna6DPPfEQK72hmuRieLrWr5jhj51YIsI,30205
60
+ resqpy/model/_catalogue.py,sha256=duvZlNlTPjAfXyqae0J9lMSEx_8-WIcrw2MYxnNEg_Q,30487
62
61
  resqpy/model/_context.py,sha256=0tLBVMcuuIj3i87Ig8lhFMLHE5GHgEA2PEl1NjKaohc,2840
63
- resqpy/model/_forestry.py,sha256=HRKCGnfqSb-J9zbeUcVMbYb7oUzIrvxmzxe3jFh5lvk,34670
62
+ resqpy/model/_forestry.py,sha256=42dMwqdvxdRYYwqVSC4ky2iDp9hmqUEEtX2mxMVMLeA,34884
64
63
  resqpy/model/_grids.py,sha256=d7hRQRmni5pJrm1CY31D2icJV1XDar7xTmUexq_eVGY,3371
65
- resqpy/model/_hdf5.py,sha256=2iQdyUp5eNLfWhmvl_XuFO8j7dCdtTBjtrr6-9mq3Qg,14238
66
- resqpy/model/_model.py,sha256=8CTqYCxSoiA8ONrxEQ_vq20qTJfHkhhF-tiJUTwfEEk,103055
67
- resqpy/model/_xml.py,sha256=n042AUhJU8AV1S4GdeeAdXikSqu2UGoSYT6AMXS2_bA,23589
64
+ resqpy/model/_hdf5.py,sha256=-dq2r3HzBKf0F43kwPy--MZOOjQZlDS4RJ6nG3VOeSs,14448
65
+ resqpy/model/_model.py,sha256=w9NcyFYa4woIGGEZlFiHR-LeSWgVjPUOtGq6sy4p48c,106323
66
+ resqpy/model/_xml.py,sha256=TiZKHZezMdcjRvHSa-HzzrYe9kyDdd8L4hacNV0bjEg,24402
68
67
  resqpy/multi_processing/__init__.py,sha256=ZRudHfN9aaZjxvat7t8BZr6mwMi9baiCNjczwwT0WjI,909
69
68
  resqpy/multi_processing/_multiprocessing.py,sha256=bnCKfSC1tWwvZmZ7BZqCyje0C93m6q7HZPxNpx8xoxA,7301
70
69
  resqpy/multi_processing/wrappers/__init__.py,sha256=7vjuTWdHnp3rN9Ud8ljpDnt1NbBAyhA08lv-sQ9Kf3o,72
71
70
  resqpy/multi_processing/wrappers/blocked_well_mp.py,sha256=_2fEsSmJVQCnbQIjTHqmnNEugfhN1KvX-o4ZbvtChdI,5952
72
- resqpy/multi_processing/wrappers/grid_surface_mp.py,sha256=WYJK_vkTPq3pjOYnSm6uJswQqbpiqM0NXfC1pI53tl0,23348
71
+ resqpy/multi_processing/wrappers/grid_surface_mp.py,sha256=2XkaD_YWNLz6xFvegkuPM8YN_rRXmOVUoVJmXmTkKBg,27083
73
72
  resqpy/multi_processing/wrappers/mesh_mp.py,sha256=0VYoqtgBFfrlyYB6kkjbdrRQ5FKe6t5pHJO3wD9b8Fc,5793
74
73
  resqpy/olio/__init__.py,sha256=j2breqKYVufhw5k8qS2uZwB3tUKT7FhdZ23ninS75YA,84
75
74
  resqpy/olio/ab_toolbox.py,sha256=bZlAhOJVS0HvIYBW0Lg68re17N8eltoQhIUh0xuUyVc,2147
@@ -89,21 +88,21 @@ resqpy/olio/keyword_files.py,sha256=8hifLG00eUmHOylbSQNfPwPQWd05tT14bCmCRHteefc,
89
88
  resqpy/olio/load_data.py,sha256=koFJMo7kcn3wSkvUGCqhdIOb7hTADJaEYhzlu30oOwA,19204
90
89
  resqpy/olio/point_inclusion.py,sha256=yseq-iWdAypOiZg1vbsEmYhouqaYv0_P9kc_ifYHb1A,6628
91
90
  resqpy/olio/random_seed.py,sha256=ZcuaNKtUtVyp236uVQbEyFmb3122JiSsn1uiCCVfDxw,1103
92
- resqpy/olio/read_nexus_fault.py,sha256=vkMr-At7qFZGZ87gZ6QWzgpqwsDHFQf6m3rBTe-Hdrc,5441
93
- resqpy/olio/relperm.py,sha256=VSyqVz_OsjCL9tB7jBnjVdLA4F5yiKYJthIghux8_aI,17135
91
+ resqpy/olio/read_nexus_fault.py,sha256=-KpinYLLWOy6JADCzI8u-J6HJQaiOrjF_ZGLsGCgqbQ,5659
92
+ resqpy/olio/relperm.py,sha256=ONGdaYKv-yHbeXB3SSUvwwqCQO5RijhvmiOgNE_5MYo,17130
94
93
  resqpy/olio/simple_lines.py,sha256=qaR11W5UPgRmtMeFQ-pXg0jOvkJZ_XPzSUpAXqeYtlc,12189
95
94
  resqpy/olio/time.py,sha256=LtoSIf1A6wunHSpDgKsSGEr0rbcSQyy35TgJvY37PrI,760
96
95
  resqpy/olio/trademark.py,sha256=p_EWvUUnfalOA0RC94fSWMDgdGY9-FdZuGtAjg3wNcY,822
97
- resqpy/olio/transmission.py,sha256=ojMRvzMOulb-S3FHnkR3ouIBTXA4knI0drDOt_WACso,61869
98
- resqpy/olio/triangulation.py,sha256=JA4LN4uASqkN_gx4eE_cAHNOJfTqAQQPYET_cLPJuU8,45621
96
+ resqpy/olio/transmission.py,sha256=auz_12TKtSPy6Fv3wmKn5lXPRAEnn2tYVyTQfsj37xU,61869
97
+ resqpy/olio/triangulation.py,sha256=sBNP4MhSpY2bv6BYIn7890stqetkK5dag9pYNFiUs2g,46037
99
98
  resqpy/olio/uuid.py,sha256=JRMi-RZNeGm8tGNloIwTATzNtdj29lBQDV9OILboPRI,7324
100
99
  resqpy/olio/vdb.py,sha256=lQYuK1kr1Wnucq2EoKgT6lrR7vloCemnCKZktzBcLUc,45231
101
- resqpy/olio/vector_utilities.py,sha256=yPxHseCCAG8z-IqLvqIVYRQvXte5jBiSTinYkuN-5EY,46836
102
- resqpy/olio/volume.py,sha256=F1pMnDoJ4ricy4dfdLuLuK1xkVgJckL9V06tUeyK6Wc,6185
103
- resqpy/olio/wellspec_keywords.py,sha256=MqrXRSzVfXAKUhiJkop3EwoVdKEjgZRwHYBJjx2IW8Q,26265
100
+ resqpy/olio/vector_utilities.py,sha256=T8n9JMhE13msuy1dwJeIWw6ByKbm2o4zUV8l5frVsuk,61784
101
+ resqpy/olio/volume.py,sha256=inKZzW8UiYvyetltz_r_OgO3UzVtqdOz_RMg-WqlyDo,5475
102
+ resqpy/olio/wellspec_keywords.py,sha256=ad3B727golWYiko54OZOw7vG21IvpNxCMCyLv8jSkcI,26533
104
103
  resqpy/olio/write_data.py,sha256=bIX7ilMkXWCMz_zQh-Gqk56sNzng4W5l4BahW2EV7Kw,5142
105
- resqpy/olio/write_hdf5.py,sha256=KXB2L6Qz3TFb9yDjT-Ty0CXgjyq0nhVp3GADlekWhMQ,19055
106
- resqpy/olio/xml_et.py,sha256=Rt0i1ZTALebB4KKT9AQAXUUxc3QrjEp409RNktEZiow,24988
104
+ resqpy/olio/write_hdf5.py,sha256=iUIYPWlbJsSSq9UXXiXAW_S6TeK-N2M7QvlJJE43EK8,19015
105
+ resqpy/olio/xml_et.py,sha256=aPjxr2XWvYcwlnckL_UiZmd5EGEoIfy_JxeOKOk3vwQ,25322
107
106
  resqpy/olio/xml_namespaces.py,sha256=PiQi2W7gRLxhMSEs26ahT4MlagYqsjMWJlNpIiZupoA,1824
108
107
  resqpy/olio/zmap_reader.py,sha256=YuhZjde_DZszVFsUKfu0XieKGg7ONXtJWskRV9Pw7VE,5709
109
108
  resqpy/organize/__init__.py,sha256=H1c7B4aRJf5peaGUTvGrCVug4Xr_JW38zeWL-LyCDtk,2206
@@ -127,15 +126,16 @@ resqpy/organize/structural_organization_interpretation.py,sha256=xEpm1KKiP9dKktW
127
126
  resqpy/organize/tectonic_boundary_feature.py,sha256=mMSsIW8YJ6qpeOe-6gRFaQbK39-WIiGunxPSnwxFyqY,2675
128
127
  resqpy/organize/wellbore_feature.py,sha256=E2gFwgPZGr8nkhRHAIR0wTZ8uwcze7y2WBIV7AXeW2A,1843
129
128
  resqpy/organize/wellbore_interpretation.py,sha256=jRAHq90tR2dCQSXsZicujXhSVHOEPoGjFgh5S87SMAI,6973
130
- resqpy/property/__init__.py,sha256=3dNW6fYT8nrNFA3Ja7Tz5AsoT-SX6VPnXYhnkHKl-VQ,2155
131
- resqpy/property/_collection_add_part.py,sha256=s0xXU5aLRqvZoHxbRUNY-ItiNPqmUoEMcnWqQh011jk,17076
132
- resqpy/property/_collection_create_xml.py,sha256=x6F7cjdC2y3JmPHi88hkpy3nf1wnWGwEexTj_Dmsf6E,12923
133
- resqpy/property/_collection_get_attributes.py,sha256=MlontPfGo00lxt0SpB49YG9PRsi5oXPqduDgCSOSmzs,32441
129
+ resqpy/property/__init__.py,sha256=gRnzjdn6bxCQStfHL5qMOs43okVRW168TjqU0C9oL2g,2360
130
+ resqpy/property/_collection_add_part.py,sha256=uM64TWqJ0aBUwP1u1OJNTUhKLGlmOQj14fGPLG-2pRs,17156
131
+ resqpy/property/_collection_create_xml.py,sha256=p9GASodhg4vQqDDvCOHScto_Qtz_nDADGtvZY92Dcu8,13001
132
+ resqpy/property/_collection_get_attributes.py,sha256=9uHH9TW0Rty7BMclLqQivr6-uglKSjFZkpWdq47OgAo,32697
134
133
  resqpy/property/_collection_support.py,sha256=77_DG-0pzhMWdG_mNDiGfihXD7Pp-CvDSGCV8ZlDjj4,5889
135
134
  resqpy/property/_property.py,sha256=JcG7h6k4cJ4l3WC_VCsvoqHM3FBxrnUuxbIK2Ono1M0,24426
136
- resqpy/property/grid_property_collection.py,sha256=bLWCTfhmpDsagBaXXb8XXHL46Cy78HL_NGWpPFZAgdw,66946
137
- resqpy/property/property_collection.py,sha256=b4J_bzigN-P5nag49Y6IG4mq3s1KbelsQC5frYg2ij8,151911
138
- resqpy/property/property_common.py,sha256=pItepusFU94YTNlWJyMj7LRMyRQviBQa0y7ouEs6AHo,36422
135
+ resqpy/property/attribute_property_set.py,sha256=gATFe-vI00GrgaJNMHSKbM0xmlxIsO5DT1qRSU9snYI,12295
136
+ resqpy/property/grid_property_collection.py,sha256=37dVQSBSTpX22UfBcpPvwGjd8H3O2MepKpWXYc4yJvM,66858
137
+ resqpy/property/property_collection.py,sha256=RJEooAeoEtxQtsm2i0-FtRL8drCo-JneYsgxrJwaxqU,154652
138
+ resqpy/property/property_common.py,sha256=wf429weNtgf6J4gCNNoRwj64elQvUPI_ZWzg4qI7l6c,35993
139
139
  resqpy/property/property_kind.py,sha256=6SK0La09eisHPYOSgdx69K_Ordrq0x2tz4IAyurVyY8,5557
140
140
  resqpy/property/string_lookup.py,sha256=eH-lbLRbb8JKtO91FTtyuYseRGwPkmsghcXbKUTvVgI,7737
141
141
  resqpy/property/well_interval_property.py,sha256=_6k0NBX2rd2uGjkur37qCslF9Mow14d8LxPGqqp00gg,1077
@@ -144,11 +144,11 @@ resqpy/property/well_log.py,sha256=iIEzFznuj4nkB37MB5YsGSN_mml9jgJNBZWIrJlmhnw,1
144
144
  resqpy/property/well_log_collection.py,sha256=BvvRjDkXjuX2iGUwAGmnIvj6L3zIYAP0db3PoAyj3Mw,7633
145
145
  resqpy/rq_import/__init__.py,sha256=JV6wDE-_oJ-wY5O5Adaqxoti44NC0QLqrU2esyXvyHA,713
146
146
  resqpy/rq_import/_add_ab_properties.py,sha256=r9MogJr8QYTVFqKHKv8LQv_PYaDZmA_-aaYy-qeAfTE,4493
147
- resqpy/rq_import/_add_surfaces.py,sha256=wl8COboHnvfE-rPWZ0pwjNZZbCR3GBKvHQYkEOOViVk,6161
148
- resqpy/rq_import/_grid_from_cp.py,sha256=5XUDDAWKXPgSCgG2oDwq4wZpl_8QOxlr4JajLIEHDXA,32019
149
- resqpy/rq_import/_import_nexus.py,sha256=SPLmAiqznoAYj21ORCEmv1cFNuXpMUbvDt641skHvtI,34317
150
- resqpy/rq_import/_import_vdb_all_grids.py,sha256=yiD88hwXUWDlPtn9pcG_-T23mRDwC2eKkLiVkEJMB2A,6306
151
- resqpy/rq_import/_import_vdb_ensemble.py,sha256=DJejxaMzDHVdj_zI-bqZGj83PpAoaZlgmtmImqGeA_8,21372
147
+ resqpy/rq_import/_add_surfaces.py,sha256=f-1nODJpIm4s3OyfA8hHO8WyzH3OT8YfoiE9D_o5dLA,7620
148
+ resqpy/rq_import/_grid_from_cp.py,sha256=I_TIUjtpc1QwUBxis5URywoirAqMiYqbPWepsqgEKfs,31996
149
+ resqpy/rq_import/_import_nexus.py,sha256=cOLVS6CNSOE-nuTV7tkNZTYtTzwIaclu0HaBGJFUeZw,35266
150
+ resqpy/rq_import/_import_vdb_all_grids.py,sha256=m2B4o-_Mmv9YkeIyVI_oQnnB7DNytN3WGfpm3rF_q-A,6942
151
+ resqpy/rq_import/_import_vdb_ensemble.py,sha256=CeoNVeJ88lbPq19gNNvpZNFQmCQE0K7iEEd2cVKjml8,21284
152
152
  resqpy/strata/__init__.py,sha256=S8-jJMJlCEwt9Vywe7TftZN3w0tEWeqopmuWRRyBqGI,1311
153
153
  resqpy/strata/_binary_contact_interpretation.py,sha256=CCE10qVYznbevssHyNqTZv0Ld-jPEE6-iN7za2XfsFM,8861
154
154
  resqpy/strata/_geologic_unit_interpretation.py,sha256=8DXSTptMq56sa1zdXTh4WKzXekkfz_z1fJlTf8bmmQs,10381
@@ -160,40 +160,40 @@ resqpy/strata/_stratigraphic_unit_interpretation.py,sha256=hlzHamLea0qbFy15WZV2w
160
160
  resqpy/surface/__init__.py,sha256=YYwmqudBpeW-Qw4gwxlwZHGIBnc9l_xdqjExeI9MKm4,794
161
161
  resqpy/surface/_base_surface.py,sha256=LsWrDrbuuaEVRgf2Dlbc-6ZvGQpjtrKuxF7Jjebvlis,2331
162
162
  resqpy/surface/_combined_surface.py,sha256=8TnNbSywjej6tW_vRr5zoVgBbvnadCaqWk6WyHWHTYQ,3082
163
- resqpy/surface/_mesh.py,sha256=bhHfIjRg9xWhv1aWW9oDhTK6LlwS5rZBST1ONJuG8pg,42192
163
+ resqpy/surface/_mesh.py,sha256=yEFldNWT2g8MCGcU4mTeWzDrLHHGLLGLIle1gAjJ_lg,42352
164
164
  resqpy/surface/_pointset.py,sha256=niTkBik9hAvqrY8340K1TRG7mg4FMQbbp12WZiiXPMs,27416
165
- resqpy/surface/_surface.py,sha256=yOqB9c-Rwh7Micj3vKb0M5SC77Tg9B1zokwPFtO7S9c,65671
166
- resqpy/surface/_tri_mesh.py,sha256=rqWk64m9mL4Gzk-R1bI-ThA0OEBdMUFjHyezbGMd0gg,26465
167
- resqpy/surface/_tri_mesh_stencil.py,sha256=0FgsWSPUIIt3k9_-FURy4J2idA3Ps2AXWJpcFX1o8OU,16087
168
- resqpy/surface/_triangulated_patch.py,sha256=cmZVssA5Yde0JzgawkahlZFNFcmgxJS59HxirOu7nQ4,25907
165
+ resqpy/surface/_surface.py,sha256=FO8bvL1HoSJw0TGHC4FTTIgOzAEElx4GqaYlEh_NhwI,94079
166
+ resqpy/surface/_tri_mesh.py,sha256=f2BiGYNj5v8CgmWJKEZ7aKp1WX9iWX4myETCjVQ5dCA,26746
167
+ resqpy/surface/_tri_mesh_stencil.py,sha256=eXt_HIKvsXGsjQ7nm_NbozR6ProQxPbeO52r79j80ig,16087
168
+ resqpy/surface/_triangulated_patch.py,sha256=FKn_Irzp4aLFkkN_-tx1MLMKjEAiOLE8636sOA481TQ,26802
169
169
  resqpy/time_series/__init__.py,sha256=jiB3HJUWe47OOJTVmRJ4Gh5vm-XdMaMXmD52kAGr2zY,1074
170
- resqpy/time_series/_any_time_series.py,sha256=PPBm_gjliZTFJszrREH0Glb5gVRWbS3NvZiZlITJr98,8595
170
+ resqpy/time_series/_any_time_series.py,sha256=PabSxptRcvxsr3bY0tDGHGHm02Fn8meBuIqBAgyMNOU,8953
171
171
  resqpy/time_series/_from_nexus_summary.py,sha256=LWTcJNx_rDFNGP2iWk74ABip_f__iYNBE0R8lVzHOYo,6617
172
172
  resqpy/time_series/_functions.py,sha256=D5Wzb7RRfNmmNipQj9DSH-I3eQewP7Zqzkb2T1EGeYk,6366
173
- resqpy/time_series/_geologic_time_series.py,sha256=LgehAtBxeAl96uhiWV8NLoAYsgrPV3AdTPVjPnh4_Eo,3311
173
+ resqpy/time_series/_geologic_time_series.py,sha256=-4oMxE0R_ZEqyxb9qckawiHS0SJ-rVSZZ11pF6yYn3M,3349
174
174
  resqpy/time_series/_time_duration.py,sha256=bzRf0fynlB68KUYKa0Ih7qwd4ZJnRjl_Y6AxgX7LAsM,2759
175
175
  resqpy/time_series/_time_series.py,sha256=ceCuFbmYmppx0jBitdyjtSKkcLxjZ-qyhFN_HQX-3CQ,10818
176
176
  resqpy/unstructured/__init__.py,sha256=8te-ghWhkDGe0QaLDClvVEkSMtnDtX46K1QODmJU8Xw,603
177
- resqpy/unstructured/_hexa_grid.py,sha256=bRzx0PHUtOziEeVk7nZv5aQlogYnqvtbrVMTXsSVcQU,15328
178
- resqpy/unstructured/_prism_grid.py,sha256=qXurRLWNIvuqr4-ZpmjMg6uqmtClKrtCNB6e0PDVi4M,35856
179
- resqpy/unstructured/_pyramid_grid.py,sha256=qDn7FlhLfDuqJYS88tomwuv5CH7RJd7avl-qK7CUy_4,7862
180
- resqpy/unstructured/_tetra_grid.py,sha256=IkRRaxulhH42fE2EysLI9gfUf19YoO3nFA_Uq6CrxmI,12453
181
- resqpy/unstructured/_unstructured_grid.py,sha256=OTYOSGrKoE51KpRhn4818tdvmZ-q9nmahk_7wC56mvc,51550
177
+ resqpy/unstructured/_hexa_grid.py,sha256=M22p_5nysAgF8zlqr3WPjwB5hYD6BzVu7XE99yG_hvs,15604
178
+ resqpy/unstructured/_prism_grid.py,sha256=pTckhCQZVbqzJ7eDU9KOauujer0F-9XOHEcCrqy9eMQ,36408
179
+ resqpy/unstructured/_pyramid_grid.py,sha256=dmukk_jlKktjfMEyfCMTpgG3hz3mZFo0O84vSWHxN-M,8138
180
+ resqpy/unstructured/_tetra_grid.py,sha256=awF9JKI3ws2VXKa_xPZkn8AXLdIsCWrM3HL7CeO6u_U,12729
181
+ resqpy/unstructured/_unstructured_grid.py,sha256=7DSsywdeTAkhM2Vl4_Yk6aMbb20sgEy5PUmqM5sSyVE,51808
182
182
  resqpy/weights_and_measures/__init__.py,sha256=Kp1pPZFH4rS5_PkCERZBEzGoat6n_dSS0y_KLhuIVBM,1135
183
183
  resqpy/weights_and_measures/nexus_units.py,sha256=pHqcFbe-8nyqozFgN5Ce-W-UvEnXQ6yiaX3dP1ONtAQ,5434
184
184
  resqpy/weights_and_measures/weights_and_measures.py,sha256=1WnrmhtcyCgY2crClNddmfwtf33JdVZy9wNhqPQIvuc,16210
185
185
  resqpy/well/__init__.py,sha256=v5_gd7sSPRM9q2KsLiLWaw3jbnXFZkou38qeB7_HSN4,990
186
- resqpy/well/_blocked_well.py,sha256=JIe65xusZUd4tpo2TZaUSynUoDExHG783VYApZ6nZtY,191992
187
- resqpy/well/_deviation_survey.py,sha256=d3u31JbBqMCsaz6MUrtZium90wrC3omtm46A755fvgk,23115
188
- resqpy/well/_md_datum.py,sha256=rRrDQckTJwZtIEh28dlgXj32kcBSu-ZvHFYZOiQsyqg,7154
189
- resqpy/well/_trajectory.py,sha256=tycBqo24z58As1tier64gobapDc60zVWhIVhRu_Viic,52484
190
- resqpy/well/_wellbore_frame.py,sha256=rzWsBnM-L2NbSpdk-6F5BKYeaqDWbwrIrlpkPjtt0kE,15192
186
+ resqpy/well/_blocked_well.py,sha256=Greo8r4AD_TRoclboIn5jO0_7v2rLN-GXYApPQ6ScOo,192741
187
+ resqpy/well/_deviation_survey.py,sha256=AsjTl56v8qa2lSxKAMn4vhEadqRTzwH98PmOObCBoe0,23086
188
+ resqpy/well/_md_datum.py,sha256=O_rPuKsITUi5JD8OzJsf4a6TpWNDCEmjDk8wpQFgJGQ,6709
189
+ resqpy/well/_trajectory.py,sha256=lt2_MXeRWjsXTMqZZ5n4-fAT0d41RatCG9QUoYopjOQ,52752
190
+ resqpy/well/_wellbore_frame.py,sha256=7pAJN-yjvyxg8rXzfRDSpHGoE31T7TaLxkyRiUcsm6o,15502
191
191
  resqpy/well/_wellbore_marker.py,sha256=ZqcZC5Xmta3IJOAaZXZAWAQX9iaS312WjhnJSge8yks,8403
192
192
  resqpy/well/_wellbore_marker_frame.py,sha256=xvYH2_2Ie3a18LReFymbUrZboOx7Rhv5DODEVO4-B-k,20933
193
- resqpy/well/blocked_well_frame.py,sha256=Lg7TgynfPv9WkklXTLt9VN6uBXWUqX1LI-Xmv_FBqYk,22555
194
- resqpy/well/well_object_funcs.py,sha256=LYTcC07ezlBxClfrug_B4iXXZUkXDPgsVufNzp361Wo,24703
195
- resqpy/well/well_utils.py,sha256=zwpYjT85nXAwWBhYB1Pygu2SgouZ-44k6hEOnpoMfBI,5969
196
- resqpy-4.14.2.dist-info/LICENSE,sha256=2duHPIkKQyESMdQ4hKjL8CYEsYRHXaYxt0YQkzsUYE4,1059
197
- resqpy-4.14.2.dist-info/METADATA,sha256=UkHVAuWTDpg1CL9bvaXPu3zyy8InFUbpMGtcoA9IvtE,4028
198
- resqpy-4.14.2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
199
- resqpy-4.14.2.dist-info/RECORD,,
193
+ resqpy/well/blocked_well_frame.py,sha256=Rx8jwkCjchseDZaTttPkA1-f6l7W6vRGrxWtDHlEPx8,22560
194
+ resqpy/well/well_object_funcs.py,sha256=1O4EVPuTn-kN3uT_V4TbSwehnMUMY0TX36XOUgasTcc,24689
195
+ resqpy/well/well_utils.py,sha256=-g_pg2v5XD9g4SQz9sk7KK-x2xEQZHzWehCQqiEGo6M,7627
196
+ resqpy-5.1.6.dist-info/LICENSE,sha256=2duHPIkKQyESMdQ4hKjL8CYEsYRHXaYxt0YQkzsUYE4,1059
197
+ resqpy-5.1.6.dist-info/METADATA,sha256=ixIzugCD9ZynPEJP_6VZiiUrn042oJmOx8HoilUgePw,3986
198
+ resqpy-5.1.6.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
199
+ resqpy-5.1.6.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.9.0
2
+ Generator: poetry-core 2.0.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,15 +0,0 @@
1
- """Submodule containing some general grid functions that have now been moved. This file will be deleted in a later release."""
2
-
3
- import warnings
4
-
5
- import resqpy.grid._points_functions as pf
6
- import resqpy.property.property_kind as pk
7
-
8
-
9
- def establish_zone_property_kind(model):
10
- """MOVED: Returns zone local property kind object, creating the xml and adding as part if not found in model."""
11
- warnings.warn(
12
- 'This function has been moved to property/property_kind. Please update your code to the new '
13
- 'location.', DeprecationWarning)
14
-
15
- return pk.establish_zone_property_kind(model)