xtgeo 4.10.1__cp312-cp312-macosx_10_13_x86_64.whl → 4.11.0__cp312-cp312-macosx_10_13_x86_64.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.

Potentially problematic release.


This version of xtgeo might be problematic. Click here for more details.

Binary file
xtgeo/common/version.py CHANGED
@@ -1,7 +1,14 @@
1
1
  # file generated by setuptools-scm
2
2
  # don't change, don't track in version control
3
3
 
4
- __all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
4
+ __all__ = [
5
+ "__version__",
6
+ "__version_tuple__",
7
+ "version",
8
+ "version_tuple",
9
+ "__commit_id__",
10
+ "commit_id",
11
+ ]
5
12
 
6
13
  TYPE_CHECKING = False
7
14
  if TYPE_CHECKING:
@@ -9,13 +16,19 @@ if TYPE_CHECKING:
9
16
  from typing import Union
10
17
 
11
18
  VERSION_TUPLE = Tuple[Union[int, str], ...]
19
+ COMMIT_ID = Union[str, None]
12
20
  else:
13
21
  VERSION_TUPLE = object
22
+ COMMIT_ID = object
14
23
 
15
24
  version: str
16
25
  __version__: str
17
26
  __version_tuple__: VERSION_TUPLE
18
27
  version_tuple: VERSION_TUPLE
28
+ commit_id: COMMIT_ID
29
+ __commit_id__: COMMIT_ID
19
30
 
20
- __version__ = version = '4.10.1'
21
- __version_tuple__ = version_tuple = (4, 10, 1)
31
+ __version__ = version = '4.11.0'
32
+ __version_tuple__ = version_tuple = (4, 11, 0)
33
+
34
+ __commit_id__ = commit_id = 'gee9361dd9'
@@ -63,6 +63,7 @@ class CubeAttrs:
63
63
  _upper: RegularSurface | None = None # upper surf, resampled to cube map resolution
64
64
  _lower: RegularSurface | None = None # lower surf, resampled to cube map resolution
65
65
  _min_thickness_mask: RegularSurface | None = None # mask for min. thickness trunc.
66
+ _mask_map_by_traceidcode: RegularSurface | None = None # mask for traceidcode 2
66
67
 
67
68
  _result_attr_maps: dict = field(default_factory=dict) # holds the resulting maps
68
69
 
@@ -94,6 +95,7 @@ class CubeAttrs:
94
95
  else self.lower_surface
95
96
  )
96
97
 
98
+ # the template surface is the topology that defines the resulting attribute maps
97
99
  self._template_surface = (
98
100
  upper
99
101
  if isinstance(self.upper_surface, (float, int))
@@ -184,7 +186,7 @@ class CubeAttrs:
184
186
  from xtgeo import Cube # avoid circular import by having this here
185
187
 
186
188
  cubev = self.cube.values.copy() # copy, so we don't change the input instance
187
- cubev[self.cube.traceidcodes == 2] = np.nan # set dead traces to nan
189
+ cubev[self.cube.traceidcodes == 2] = 0.0 # set traceidcode 2 to zero
188
190
 
189
191
  # Create a boolean mask based on the threshold
190
192
  mask = self._depth_array < self._outside_depth
@@ -311,13 +313,20 @@ class CubeAttrs:
311
313
  attr_map = self._upper.copy()
312
314
  attr_map.values = np.ma.masked_invalid(values)
313
315
 
316
+ # apply mask for the cube's dead traces (traceidcode 2)
317
+ attr_map.values = np.ma.masked_where(
318
+ self.cube.traceidcodes == 2, attr_map.values
319
+ )
320
+
314
321
  # now resample to the original input map
315
322
  attr_map_resampled = self._template_surface.copy()
316
323
  attr_map_resampled.resample(attr_map)
317
324
 
318
- attr_map_resampled.values = np.ma.masked_where(
319
- self.upper_surface.values.mask, attr_map_resampled.values
320
- )
325
+ # Use template_surface consistently for masking (it's already set correctly)
326
+ if hasattr(self._template_surface.values, "mask"):
327
+ attr_map_resampled.values = np.ma.masked_where(
328
+ self._template_surface.values.mask, attr_map_resampled.values
329
+ )
321
330
 
322
331
  self._result_attr_maps[attr_name] = attr_map_resampled
323
332
 
@@ -1053,13 +1053,18 @@ def inactivate_inside(
1053
1053
  raise RuntimeError("Problems with one or more polygons. Not closed?")
1054
1054
 
1055
1055
 
1056
- def collapse_inactive_cells(self: Grid) -> None:
1056
+ def collapse_inactive_cells(self: Grid, internal: bool = True) -> None:
1057
1057
  """Collapse inactive cells."""
1058
- self._set_xtgformat1()
1058
+ logger.debug("Collapsing inactive cells...")
1059
+ self._set_xtgformat2()
1059
1060
 
1060
- _cxtgeo.grd3d_collapse_inact(
1061
- self.ncol, self.nrow, self.nlay, self._zcornsv, self._actnumsv
1062
- )
1061
+ grid_cpp = _internal.grid3d.Grid(self)
1062
+ new_zcornsv = grid_cpp.collapse_inactive_cells(collapse_internal=internal)
1063
+
1064
+ if new_zcornsv is not None:
1065
+ self._zcornsv = new_zcornsv
1066
+
1067
+ logger.debug("Collapsing inactive cells done")
1063
1068
 
1064
1069
 
1065
1070
  def copy(self: Grid) -> Grid:
xtgeo/grid3d/grid.py CHANGED
@@ -2295,7 +2295,7 @@ class Grid(_Grid3D):
2295
2295
  * maxangle_topbase_proj (degrees) max angle projected (bird view)
2296
2296
  * minangle_sides (degress) minimum angle, all side surfaces
2297
2297
  * maxangle_sides (degress) maximum angle, all side surfaces
2298
- * collapsed (int) Integer, 1 of one or more corners are collpased in Z
2298
+ * collapsed (int) Integer, 1 of one or more corners are collapsed in Z
2299
2299
  * faulted (int) Integer, 1 if cell is faulted (one or more neighbours offset)
2300
2300
  * negative_thickness (int) Integer, 1 if cell has negative thickness
2301
2301
  * concave_proj (int) 1 if cell is concave seen from projected bird view
@@ -2332,7 +2332,7 @@ class Grid(_Grid3D):
2332
2332
  inside: bool = True,
2333
2333
  force_close: bool = False,
2334
2334
  ) -> None:
2335
- """Inacativate grid inside a polygon.
2335
+ """Inactivate grid inside a polygon.
2336
2336
 
2337
2337
  The Polygons instance may consist of several polygons. If a polygon
2338
2338
  is open, then the flag force_close will close any that are not open
@@ -2359,14 +2359,30 @@ class Grid(_Grid3D):
2359
2359
  layer_range: tuple[int, int] | None = None,
2360
2360
  force_close: bool = False,
2361
2361
  ) -> None:
2362
- """Inacativate grid outside a polygon."""
2362
+ """Inactivate grid outside a polygon."""
2363
2363
  self.inactivate_inside(
2364
2364
  poly, layer_range=layer_range, inside=False, force_close=force_close
2365
2365
  )
2366
2366
 
2367
- def collapse_inactive_cells(self) -> None:
2368
- """Collapse inactive layers where, for I J with other active cells."""
2369
- _grid_etc1.collapse_inactive_cells(self)
2367
+ def collapse_inactive_cells(self, internal: bool = True) -> None:
2368
+ """Collapse inactive layers per I J column (~vertically).
2369
+
2370
+ Seen by I,J column, the inactive cells are collapsed to the first active cell in
2371
+ the column. First transversed from top, then from bottom. If no active cells in
2372
+ the column, the (invisible) Z coordinates are averaged to one common location.
2373
+
2374
+ If `internal` is True (default), then also internal inactive cells (i.e.
2375
+ inactive "hole" surrounded by active cells) are collapsed. In this case the Z
2376
+ coordinates of the adjacent active cells are moved to fill the gap.
2377
+
2378
+ The current grid instance will be updated.
2379
+
2380
+ Args:
2381
+ internal: If True (default), then the internal collapse is also done.
2382
+
2383
+ .. versionchanged:: 4.11 Added ``internal option``, algorithm is improved
2384
+ """
2385
+ _grid_etc1.collapse_inactive_cells(self, internal=internal)
2370
2386
 
2371
2387
  def crop(
2372
2388
  self,
xtgeo/lib/libfmt.a CHANGED
Binary file
@@ -1,5 +1,5 @@
1
- prefix=/var/folders/vk/nx37ffx50hv5djclhltc26vw0000gn/T/tmp6eodi5c_/wheel/platlib/xtgeo
2
- exec_prefix=/var/folders/vk/nx37ffx50hv5djclhltc26vw0000gn/T/tmp6eodi5c_/wheel/platlib/xtgeo
1
+ prefix=/var/folders/vk/nx37ffx50hv5djclhltc26vw0000gn/T/tmp8mnjkb2n/wheel/platlib/xtgeo
2
+ exec_prefix=/var/folders/vk/nx37ffx50hv5djclhltc26vw0000gn/T/tmp8mnjkb2n/wheel/platlib/xtgeo
3
3
  libdir=${exec_prefix}/lib
4
4
  includedir=${prefix}/include
5
5
 
@@ -10,10 +10,17 @@ The metadata works through the various datatypes in XTGeo. For example::
10
10
 
11
11
  """
12
12
 
13
+ from __future__ import annotations
14
+
15
+ from typing import TYPE_CHECKING, Any
16
+
13
17
  import xtgeo
14
18
  from xtgeo.common.constants import UNDEF
15
19
  from xtgeo.common.log import null_logger
16
20
 
21
+ if TYPE_CHECKING:
22
+ from datetime import datetime
23
+
17
24
  logger = null_logger(__name__)
18
25
 
19
26
 
@@ -50,10 +57,10 @@ class _OptionalMetaData:
50
57
  self._name = "A Longer Descriptive Name e.g. from SMDA"
51
58
  self._shortname = "TheShortName"
52
59
  self._datatype = None
53
- self._md5sum = None
60
+ self._md5sum: str | None = None
54
61
  self._description = "Some description"
55
62
  self._crs = None
56
- self._datetime = None
63
+ self._datetime: datetime | None = None
57
64
  self._deltadatetime = None
58
65
  self._visuals = {"colortable": "rainbow", "lower": None, "upper": None}
59
66
  self._domain = "depth"
@@ -68,29 +75,29 @@ class _OptionalMetaData:
68
75
  self._source = "unknown"
69
76
 
70
77
  @property
71
- def name(self):
78
+ def name(self) -> str:
72
79
  return self._name
73
80
 
74
81
  @name.setter
75
- def name(self, newname):
82
+ def name(self, newname: str) -> None:
76
83
  # TODO: validation
77
84
  self._name = newname
78
85
 
79
86
  @property
80
- def datetime(self):
87
+ def datetime(self) -> datetime | None:
81
88
  return self._datetime
82
89
 
83
90
  @datetime.setter
84
- def datetime(self, newdate):
91
+ def datetime(self, newdate: datetime) -> None:
85
92
  # TODO: validation
86
93
  self._datetime = newdate
87
94
 
88
95
  @property
89
- def shortname(self):
96
+ def shortname(self) -> str:
90
97
  return self._shortname
91
98
 
92
99
  @shortname.setter
93
- def shortname(self, newname):
100
+ def shortname(self, newname: str) -> None:
94
101
  if not isinstance(newname, str):
95
102
  raise ValueError("The shortname must be a string.")
96
103
  if len(newname) >= 32:
@@ -99,11 +106,11 @@ class _OptionalMetaData:
99
106
  self._shortname = newname
100
107
 
101
108
  @property
102
- def description(self):
109
+ def description(self) -> str:
103
110
  return self._description
104
111
 
105
112
  @description.setter
106
- def description(self, newstr):
113
+ def description(self, newstr: str) -> None:
107
114
  if not isinstance(newstr, str):
108
115
  raise ValueError("The description must be a string.")
109
116
  if len(newstr) >= 64:
@@ -115,7 +122,7 @@ class _OptionalMetaData:
115
122
  self._description = newstr
116
123
 
117
124
  @property
118
- def md5sum(self):
125
+ def md5sum(self) -> str | None:
119
126
  """Set or get the md5 checksum of file content.
120
127
 
121
128
  See generate_hash() method in e.g. RegularSurface.
@@ -123,11 +130,11 @@ class _OptionalMetaData:
123
130
  return self._md5sum
124
131
 
125
132
  @md5sum.setter
126
- def md5sum(self, newhash):
133
+ def md5sum(self, newhash: str) -> None:
127
134
  # TODO: validation
128
135
  self._md5sum = newhash
129
136
 
130
- def get_meta(self):
137
+ def get_meta(self) -> dict[str, Any]:
131
138
  """Return metadata as an dict."""
132
139
  meta = {}
133
140
  for key in self.__slots__:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: xtgeo
3
- Version: 4.10.1
3
+ Version: 4.11.0
4
4
  Summary: XTGeo is a Python library for 3D grids, surfaces, wells, etc
5
5
  Keywords: grids,surfaces,wells,cubes
6
6
  Author-Email: Equinor <fg_fmu-atlas@equinor.com>
@@ -1,12 +1,8 @@
1
1
  cxtgeo.py,sha256=MjY_SfwNrahCXED08vVn7OsQPQPU7rsKwxSp2GY5WKI,33396
2
2
  cxtgeoPYTHON_wrap.c,sha256=jdx6wYGtLu7KKXcEHC9XqRTEMkYc4x4D07FPmYKSjPE,635145
3
- xtgeo-4.10.1.dist-info/RECORD,,
4
- xtgeo-4.10.1.dist-info/WHEEL,sha256=DWmrUFCsXMZPYMGq_fdkaEUtwRJnTAaH54ms5j7oUBw,143
5
- xtgeo-4.10.1.dist-info/METADATA,sha256=BgjBbVjXQOmIf5Rb2f9KsWqpP5CMTilfqnLgm5kLzqw,5789
6
- xtgeo-4.10.1.dist-info/licenses/LICENSE.md,sha256=46mU2C5kSwOnkqkw9XQAJlhBL2JAf1_uCD8lVcXyMRg,7652
7
3
  xtgeo/_cxtgeo.cpython-312-darwin.so,sha256=toHle_3XJJ1blpDI5388kum0aK61e-Br7cn1yemXKuY,444200
8
4
  xtgeo/__init__.py,sha256=-p6vKOv7EfAt1S-7CmWHfN8iHjFHQ--5UwhIysS_gRQ,5588
9
- xtgeo/_internal.cpython-312-darwin.so,sha256=0ppy1E_oCUetZoFupfgMyl3tiD_locNG4lE7X6xYvjQ,777792
5
+ xtgeo/_internal.cpython-312-darwin.so,sha256=Tc78jdl5mXpZ0uMSHB8n1PuIlObc7TQocbjjOTxF34k,828136
10
6
  xtgeo/well/_wells_utils.py,sha256=hjJEBdtILtK87sbCYWHJ7aEgqgKkak6ihfOcxSixNPo,4945
11
7
  xtgeo/well/_blockedwell_roxapi.py,sha256=G0IEChtCF7SPV_nXDIYsJ5L601HjA9QdWU7cNoyJyus,7489
12
8
  xtgeo/well/_well_io.py,sha256=CHvLfuIVNoX_4PQd7sCWg5xvyCd1L73J5dkmV2uaJqU,9821
@@ -36,7 +32,7 @@ xtgeo/include/fmt/std.h,sha256=ogzbgTUxCUFupDozCWAG0yMhWeiV6QtkEbaR0p9jR8A,22277
36
32
  xtgeo/include/fmt/base.h,sha256=E8jZU_stmNyVUondFmmZvSLbq_66f0hrNpPCxtnWJ9s,103990
37
33
  xtgeo/grid3d/_grid_import.py,sha256=T--Nk4CVKifCskc2i8y6cpFXV2LZdTmJC3iSxKXXiZE,2593
38
34
  xtgeo/grid3d/_roff_parameter.py,sha256=UNS2cngVP3GIAr5nVCoGQYJq062KtfvCAkFb0FEJY68,11073
39
- xtgeo/grid3d/grid.py,sha256=1zPBimDbI2X6zPSu7dDHPM3RbTvPxOFtYI0gJ-tvBTw,104960
35
+ xtgeo/grid3d/grid.py,sha256=8ImGx_fgKcbcsnV3GuxWX_9sPxK_iWe3cPWbAmI6bjA,105740
40
36
  xtgeo/grid3d/_grid_boundary.py,sha256=oxWmQdy9cG1PzAtOH-IcCqAQYfmIwTD87tc-c4VgTA8,2308
41
37
  xtgeo/grid3d/_grid_import_ecl.py,sha256=gIcX4uMnwg0UnYMXyUdJsFSNKV-yhLFtc88AL1fmx6Y,3453
42
38
  xtgeo/grid3d/_gridprop_roxapi.py,sha256=4asCcVUXF42TKyD3oXTavBdPkAcAjZsra9QI12I3has,6857
@@ -62,7 +58,7 @@ xtgeo/grid3d/_grdecl_format.py,sha256=qUxq4c4e4-HGccFshLoOoGkgwwpaZeMbnWi4PhxPA7
62
58
  xtgeo/grid3d/_grid_wellzone.py,sha256=cBLmO4YL62vHEVvltxFHyQScZIY2RQQcrIqq9Cx6euE,5786
63
59
  xtgeo/grid3d/_find_gridprop_in_eclrun.py,sha256=zUv1Fk5ouSICYd9SR7NpHbN78rFBcN7FBlURmeyaedk,21434
64
60
  xtgeo/grid3d/_gridprop_lowlevel.py,sha256=8aUDxj1mPu8yH0F9FVaxxumew1OdBOkwEQI5tjIZEQI,5086
65
- xtgeo/grid3d/_grid_etc1.py,sha256=Wj9YmfOW4LXo5rUC01j0V_LLb-uWb9kaeOB6jc7tTUA,42969
61
+ xtgeo/grid3d/_grid_etc1.py,sha256=54q91KLpkvtYweWHer7Fq18O0haA2nP-K-nikGPl-dI,43173
66
62
  xtgeo/grid3d/_gridprops_import_eclrun.py,sha256=kWzubpyeorvfUSEjIF-UdoGnzQYYsUePW2jUtgoTuf0,11438
67
63
  xtgeo/grid3d/_gridprop_import_roff.py,sha256=tXp_mMqwfblSEb5KUbMOcL-TgGVn--vEqzPeXAK1IuI,1523
68
64
  xtgeo/grid3d/_gridprop_export.py,sha256=J_EL1bfs2ZB0B-foQLRhYjCQ1lB40yVHUD_utrd3TlU,5456
@@ -76,7 +72,7 @@ xtgeo/grid3d/_gridprop_import_xtgcpprop.py,sha256=-9576pMYO78IZl4VgaI_dk-ArCh0LR
76
72
  xtgeo/grid3d/_gridprop_value_init.py,sha256=tN3LVziZsyIxbghkpGt6tCsHWFvGEm1e8ZpYpBgBdB8,4314
77
73
  xtgeo/cube/_cube_roxapi.py,sha256=mj9Nnug13t_Fsu0w4KKaJNEmrB_kYb0m133T6W-7wt0,4921
78
74
  xtgeo/cube/__init__.py,sha256=JJHhXXkXgFYRZTk5JDtqjxVzczDgLsHSLS-NPgCutIU,160
79
- xtgeo/cube/_cube_window_attributes.py,sha256=NSzfMioXxCCyl8fu3Kj3No4KK3pW2luxAjb1PdeQJ8Y,12095
75
+ xtgeo/cube/_cube_window_attributes.py,sha256=Ld4cGYQnN-jEu1m2CROWu6uCVbBIhr9TDv2G3pJSEFc,12607
80
76
  xtgeo/cube/_cube_utils.py,sha256=wTQZX2sNgmsYRRswjqr4h_NJp1CwbXVH1DWIejaIRbo,7440
81
77
  xtgeo/cube/_cube_import.py,sha256=7wgjUZHeXnP2KyW5zKQwX1X1k_t0RC6Rat7PL-m67PA,16782
82
78
  xtgeo/cube/_cube_export.py,sha256=G2e4ybxl7htjkGn1O-Eb9FrVf1o55esr_roNNubEknk,6445
@@ -113,7 +109,7 @@ xtgeo/surface/_regsurf_cube.py,sha256=xZXIE418guB3rG8iscI9xQ0deAtJ_auu1XDe3ml9GB
113
109
  xtgeo/surface/_regsurf_utils.py,sha256=P91jVmstYGe-bn6ut-9xfd8DiOw7QUCt2DLwbnlJwB4,2307
114
110
  xtgeo/surface/_regsurf_import.py,sha256=IXD1T4hLRk705RbixSfcOxyrBUilRRbUHYC_S_xZqZA,10396
115
111
  xtgeo/common/_xyz_enum.py,sha256=IiKRWhvIKKRhUH2QwpDttW4XqJ4f4StPrVt1vfVBTxM,1045
116
- xtgeo/common/version.py,sha256=vAiDsjske6vYWCo19AZtvfNbZxxZSZdkh63Bfib72AE,513
112
+ xtgeo/common/version.py,sha256=O12saSYjwbRCsG-uGD4_hG7qeZhWVDdXRNxpZkiz9TU,714
117
113
  xtgeo/common/log.py,sha256=3C_WdYpCMEr5ebIGoGmalXNP0O2IGvLuJdzeuR8Cd-o,2742
118
114
  xtgeo/common/xtgeo_dialog.py,sha256=AcT8DrIBViSZJltwZuEfrcRbmicQEFfbwlf_gV2-6k8,17129
119
115
  xtgeo/common/constants.py,sha256=vp6k7lkWKKxyvojQZ1yYhhwXRXGZlMCPK8WY9nG2yns,749
@@ -123,8 +119,8 @@ xtgeo/common/_angles.py,sha256=VuNLV9pTooF_V3thFTg9SmTMBnKkv6ZxyvOXw22vLE0,822
123
119
  xtgeo/common/calc.py,sha256=xrJIVqFlrPIjhORbMThQylbjD4xdMM_vtEqBu5vc7C8,10134
124
120
  xtgeo/common/exceptions.py,sha256=4BRCtzk74eyc4LeeapAWFLkNh-TT0ev5pDxKJlPaI7s,1175
125
121
  xtgeo/common/sys.py,sha256=NGxnVoPoAGx_lekTF9QPBEf-VF8ORp4buoBeh6jkZko,4978
126
- xtgeo/lib/libfmt.a,sha256=hXqReZxKfcURGV7a8VK3WFlcTtVNg9j1iO22ApZC7MI,170968
127
- xtgeo/lib/pkgconfig/fmt.pc,sha256=tuwV_V_B4oVwjvBK3Ra7hlFJgUgImkPfFJlODjKrSS0,353
122
+ xtgeo/lib/libfmt.a,sha256=gIOEl0V4zrWant9j0mS03T00Cb3rbG8XT5jybQ4mOXA,170968
123
+ xtgeo/lib/pkgconfig/fmt.pc,sha256=0Jo4sYI5Kuu1ZAcS1K61AxPoUYXRHOvwSlE7jEbw-C0,353
128
124
  xtgeo/lib/cmake/fmt/fmt-targets-release.cmake,sha256=0hurnnAYtVc8r8yvaxkXAS5Op01RPnwKE6SFNOL1nYA,807
129
125
  xtgeo/lib/cmake/fmt/fmt-config.cmake,sha256=Cd-Xn_HSZ-Lk5ZBDX8q49OQKSvnS0_k4r0-tb6G8LW4,999
130
126
  xtgeo/lib/cmake/fmt/fmt-config-version.cmake,sha256=p1j16l20z3aEnEsIu-cbcrqFT32K2IJNZl10B8Ww2pk,1862
@@ -133,5 +129,9 @@ xtgeo/roxutils/roxutils.py,sha256=BGvnWhYKvX2h7eU0ZXNUuDnHi8IM_2lLIzpq9lWZI6M,69
133
129
  xtgeo/roxutils/__init__.py,sha256=UJKTgNSIGdtRxaUAwot4D5sGCTdfITw6BRaOnGkk41k,92
134
130
  xtgeo/roxutils/_roxutils_etc.py,sha256=K1fJKFBinfj32GGYnauU5t1sIgJ0l7N2gkXvaxMpNS8,3730
135
131
  xtgeo/roxutils/_roxar_loader.py,sha256=R2yBt7su6_u87UP00lLaiDxW0QuSnFLkEJQgcTWhjZI,1904
136
- xtgeo/metadata/metadata.py,sha256=kvbXu6dzVtdt-rEHsiHK_wJ0MRHNQCCzopBsw53T2l8,12137
132
+ xtgeo/metadata/metadata.py,sha256=mGkjNYcU4Y11EoLKTzSNW6JYpJVvIYNCbQ8obKMv21g,12436
137
133
  xtgeo/metadata/__init__.py,sha256=WXmKZjBGV3kr-lmrPxr3Ph7CpI5KIn3WKlE23crBteA,320
134
+ xtgeo-4.11.0.dist-info/RECORD,,
135
+ xtgeo-4.11.0.dist-info/WHEEL,sha256=D4zkig7myRo-PtmsMRlUMig6nHYU2stCF2eBfj8l_6M,143
136
+ xtgeo-4.11.0.dist-info/METADATA,sha256=_ORJH3UT7GiS4VR4R8EJ5sw4uahZ_BjT6yugeM_76sU,5789
137
+ xtgeo-4.11.0.dist-info/licenses/LICENSE.md,sha256=46mU2C5kSwOnkqkw9XQAJlhBL2JAf1_uCD8lVcXyMRg,7652
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: scikit-build-core 0.11.4
2
+ Generator: scikit-build-core 0.11.5
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp312-cp312-macosx_10_13_x86_64
5
5
  Generator: delocate 0.13.0