xtgeo 4.7.0__cp39-cp39-win_amd64.whl → 4.8.0__cp39-cp39-win_amd64.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
Binary file
xtgeo/common/log.py CHANGED
@@ -39,6 +39,7 @@ def functimer(
39
39
  func: Optional[Callable] = None,
40
40
  *,
41
41
  output: Literal["debug", "info", "print"] = "debug",
42
+ comment: str = "",
42
43
  ) -> Callable:
43
44
  """A decorator function to measure the execution time of a function.
44
45
 
@@ -47,7 +48,7 @@ def functimer(
47
48
 
48
49
  Usage is simple, just add the decorator to the function you want to measure:
49
50
 
50
- @functimer(output="print")
51
+ @functimer(output="print", comment="My function took a while to run")
51
52
  def my_function():
52
53
  pass
53
54
 
@@ -61,7 +62,7 @@ def functimer(
61
62
  if func is None:
62
63
 
63
64
  def decorator(func: Callable) -> Callable:
64
- return functimer(func, output=output)
65
+ return functimer(func, output=output, comment=comment)
65
66
 
66
67
  return decorator
67
68
 
@@ -73,16 +74,20 @@ def functimer(
73
74
  result = func(*args, **kwargs) # Execute the function
74
75
  end_time = time.perf_counter() # End the timer
75
76
  elapsed_time = f"{end_time - start_time: .5f}"
77
+
78
+ # Build message with optional comment
79
+ message = f"Function {func.__name__} executed in {elapsed_time} seconds"
80
+ if comment:
81
+ message += f" - {comment}"
82
+
83
+ # Output according to specified method
76
84
  if output == "print":
77
- print(f"Function {func.__name__} executed in {elapsed_time} seconds")
85
+ print(message)
78
86
  elif output == "info":
79
- logger.info(
80
- "Function %s executed in %s seconds", func.__name__, elapsed_time
81
- )
87
+ logger.info(message)
82
88
  else:
83
- logger.debug(
84
- "Function %s executed in %s seconds", func.__name__, elapsed_time
85
- )
89
+ logger.debug(message)
90
+
86
91
  return result
87
92
 
88
93
  return wrapper
xtgeo/common/version.py CHANGED
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '4.7.0'
21
- __version_tuple__ = version_tuple = (4, 7, 0)
20
+ __version__ = version = '4.8.0'
21
+ __version_tuple__ = version_tuple = (4, 8, 0)
@@ -69,6 +69,7 @@ def create_box(
69
69
  )
70
70
 
71
71
  cubecpp = _internal.cube.Cube(cube)
72
+ logger.debug("Calling CPP internal 'create_grid_from_cube'...")
72
73
  coordsv, zcornsv, actnumsv = _internal.grid3d.create_grid_from_cube(
73
74
  cubecpp, oricenter, flip
74
75
  )
xtgeo/grid3d/grid.py CHANGED
@@ -1293,7 +1293,10 @@ class Grid(_Grid3D):
1293
1293
  for izone in range(minzone, maxzone + 1):
1294
1294
  mininzn = int(kval[zprval == izone].min()) # 1 base
1295
1295
  maxinzn = int(kval[zprval == izone].max()) # 1 base
1296
- newd["zone" + str(izone)] = range(mininzn, maxinzn + 1)
1296
+
1297
+ newd[zoneprop.codes.get(izone, "zone" + str(izone))] = range(
1298
+ mininzn, maxinzn + 1
1299
+ )
1297
1300
 
1298
1301
  self.subgrids = newd # type: ignore
1299
1302
 
@@ -71,8 +71,10 @@ def export_irap_ascii(self: RegularSurface, mfile: FileWrapper) -> None:
71
71
  # Find the nearest factorization
72
72
  for i in range(start, 1, -1):
73
73
  if size % i == 0:
74
- return (size // i, i)
75
- return (vals, 1)
74
+ return (int(size // i), int(i)) # Ensure integers are returned
75
+
76
+ # If we can't find a perfect divisor, return a valid shape
77
+ return (int(size), 1)
76
78
 
77
79
  buffer = io.StringIO()
78
80
 
xtgeo/well/_well_io.py CHANGED
@@ -196,7 +196,6 @@ def _check_special_logs(dfr, mdlogname, zonelogname, strict, wname):
196
196
 
197
197
  def export_rms_ascii(self, wfile, precision=4):
198
198
  """Export to RMS well format."""
199
-
200
199
  with open(wfile, "w", encoding="utf-8") as fwell:
201
200
  print("1.0", file=fwell)
202
201
  print("Unknown", file=fwell)
@@ -225,7 +224,7 @@ def export_rms_ascii(self, wfile, precision=4):
225
224
  # make the disc as is np.int
226
225
  for lname in self.wlogtypes:
227
226
  if self.wlogtypes[lname] == _AttrType.DISC.value:
228
- tmpdf[[lname]] = tmpdf[[lname]].astype(int)
227
+ tmpdf[[lname]] = tmpdf[[lname]].fillna(-999).astype(int)
229
228
 
230
229
  cformat = "%-." + str(precision) + "f"
231
230
  tmpdf.to_csv(
@@ -234,7 +233,7 @@ def export_rms_ascii(self, wfile, precision=4):
234
233
  header=False,
235
234
  index=False,
236
235
  float_format=cformat,
237
- escapechar=" ",
236
+ escapechar="\\",
238
237
  mode="a",
239
238
  )
240
239
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: xtgeo
3
- Version: 4.7.0
3
+ Version: 4.8.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>
@@ -18,6 +18,7 @@ Classifier: Programming Language :: Python :: 3.9
18
18
  Classifier: Programming Language :: Python :: 3.10
19
19
  Classifier: Programming Language :: Python :: 3.11
20
20
  Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
21
22
  Classifier: Topic :: Scientific/Engineering
22
23
  Classifier: Topic :: Scientific/Engineering :: Physics
23
24
  Classifier: Topic :: Software Development :: Libraries
@@ -1,18 +1,18 @@
1
1
  cxtgeo.py,sha256=opPeIg7PX9RbxankrAbw2ycZ3fxWOxa87rdJscQTnKg,34954
2
2
  cxtgeoPYTHON_wrap.c,sha256=yBRHvZLcTNwiImhStko5ahviRGu1taefRm0BHwb2XLg,672064
3
3
  xtgeo/__init__.py,sha256=edNCOXuPS5qjutDGX5-2Pz0T2Lpx1GoeG3IoeXUdBw8,5834
4
- xtgeo/_cxtgeo.cp39-win_amd64.pyd,sha256=z4OaClp8JxGTsOmNMMWFnLHqt-zDItxGlYnyYm95A1k,528384
5
- xtgeo/_internal.cp39-win_amd64.pyd,sha256=4yZIe5sXPMCXV7W1GpC5zFPfmSZcUtRY5Rq431LRJyM,297984
4
+ xtgeo/_cxtgeo.cp39-win_amd64.pyd,sha256=KWsf0-C5XNCIv9X2nZeSsHsHDMETHBR-dupfBDpOD3I,528384
5
+ xtgeo/_internal.cp39-win_amd64.pyd,sha256=22MuEwMosAGzUTNh5XEcetsTkyg4l3g_6Yrwq7vTl9g,421888
6
6
  xtgeo/common/__init__.py,sha256=6R_OizhLnAoJUmUoQtGqgNvGcn1HWc4udc6YvRRlxWQ,480
7
7
  xtgeo/common/_angles.py,sha256=fAX5FzgqIjjIDe9_C7gy6zPjdaSQuzMb8Z2XdKSx-6Y,851
8
8
  xtgeo/common/_xyz_enum.py,sha256=gb1PVOWMTRb4YGDq9Q0YVVkKqMyI_xBg1vUBvOLXlfs,1095
9
9
  xtgeo/common/calc.py,sha256=3By6HO_njSOj-WV3qodkVDHx_O67zIvzHubmrNDwfcQ,10530
10
10
  xtgeo/common/constants.py,sha256=Ug_Vk4daedpu3wooPNGUITBuK71gKDFTDVWcG3e74CI,779
11
11
  xtgeo/common/exceptions.py,sha256=OZyU9C8cS4NhCnjQyREfuoVy9mdvGCiccd4nC9yn_N4,1217
12
- xtgeo/common/log.py,sha256=A0tCGNR8RmQNm13DmJiv-erTgxTb1D7U__6ddcZQW-w,2742
12
+ xtgeo/common/log.py,sha256=8-wTrZd87UNr_ZEb_lZvR1khUeKmIO_UECMpV_Q_btM,2835
13
13
  xtgeo/common/sys.py,sha256=lvvmS4D7qaAVVg5UueNSt44WeEgpZcmyINEGKLHXctM,5144
14
14
  xtgeo/common/types.py,sha256=LanIGZh0HU2XXfJelZA-FC__J6fLB1DzuN7jj7hNSgU,362
15
- xtgeo/common/version.py,sha256=POrJu57bns0zn35etmXpuOqDrLqJ4s2ikAYVvABaahg,532
15
+ xtgeo/common/version.py,sha256=ye9ffrOKBgVeC9SOGaIK_EyHNMwBDSzSxcj5u4screQ,532
16
16
  xtgeo/common/xtgeo_dialog.py,sha256=XX445byFvdRjT2Eg9Mgd3ChRQ9d1Mj5MEdsBRYBSo8A,17733
17
17
  xtgeo/cube/__init__.py,sha256=5_F9Cefu4081jIwDqsyJGKTlrVLe1UfwI8wQXVRYPDM,169
18
18
  xtgeo/cube/_cube_export.py,sha256=YcU_0c_kFyh8T_ytY8XRR9Bmt8KK3J1taMLzo_w_m4c,6659
@@ -34,7 +34,7 @@ xtgeo/grid3d/_grid3d.py,sha256=rTqfhwK4dNX1A5M-xUC-9hWwfxrkX6_TVgwc79KCXCI,769
34
34
  xtgeo/grid3d/_grid3d_fence.py,sha256=LGxNMbmRq1BigXOVu2g_gNlfpMwbxd_F5UaahsCW-qs,6177
35
35
  xtgeo/grid3d/_grid3d_utils.py,sha256=VBbdzah_D8yeaMU4vMQRYTFRKq95QaGqPk4oXYBWdHw,7477
36
36
  xtgeo/grid3d/_grid_boundary.py,sha256=xNumtMeOfjmwS5vzv1Nl_yZpGiDEQXk896pXzugdUVs,2384
37
- xtgeo/grid3d/_grid_etc1.py,sha256=rZZFSwQkGA4yUUojDeVx_WVtfzJDE5s0nkyi5B8GoZM,44212
37
+ xtgeo/grid3d/_grid_etc1.py,sha256=pxyvb0dAAKDWPa7WSGTByLghY_b7R4Z9BzxhpEtWZyY,44281
38
38
  xtgeo/grid3d/_grid_export.py,sha256=MRnkVoq7zjj2QvfKeAwmWd75Jjv5KCuDgsROLcdQGQY,7383
39
39
  xtgeo/grid3d/_grid_hybrid.py,sha256=38ZAj4INR3i735ew7rNWoyn5ZrrzS_ZgBScVOWcu2x0,1662
40
40
  xtgeo/grid3d/_grid_import.py,sha256=Y11JDjf5tZkDth69aTtbkMfMjRbVvSnQbV3lt-jCuA8,2672
@@ -57,7 +57,7 @@ xtgeo/grid3d/_gridprops_import_eclrun.py,sha256=M7hvBazZPjYsKOYBL1SHCcYqztgonARu
57
57
  xtgeo/grid3d/_gridprops_import_roff.py,sha256=fCCMwa8OgLXk9zMvFpr4nfsKLkmBFKKLSfLwUHenyTA,2550
58
58
  xtgeo/grid3d/_roff_grid.py,sha256=rrovt4qDmbOIZrcoXYYf1HzYULxw6S-6PYpg2j0FpOk,17648
59
59
  xtgeo/grid3d/_roff_parameter.py,sha256=9gVlFMyT2QbwUvm_FCJG0hTvJPrK2Y86kbeljs2eCbc,11376
60
- xtgeo/grid3d/grid.py,sha256=mBcsAxpmpDW4BOPx3QNPMcnUdL7BM1oeKcIvBJ5TgR8,95007
60
+ xtgeo/grid3d/grid.py,sha256=JuILdUZzzbD-IrQqMuR1IbSiMADP355t7Q-q8rLAhRQ,95068
61
61
  xtgeo/grid3d/grid_properties.py,sha256=OlIyo1PXrTRFHGn8avXdBXNpFM5DJuLjVRB9koayKGQ,24993
62
62
  xtgeo/grid3d/grid_property.py,sha256=UIJog6ZWBjjOPsI1-ORsaLt4kWtH_MkhEBuW2yINbUE,46834
63
63
  xtgeo/grid3d/types.py,sha256=eaBHJL91zXV0ipaY30K_ZpEdUfjj681CoAbKfvNZ_5Q,290
@@ -75,7 +75,7 @@ xtgeo/surface/_regsurf_cube.py,sha256=k7ypQ-86fxQi3eaRZzaxH3e4Md1yizA_8mHs7JzYap
75
75
  xtgeo/surface/_regsurf_cube_window.py,sha256=Y52wkVEALEZarIOZYnYTAFme1H7dhTNM0fgpanVAU_Q,10728
76
76
  xtgeo/surface/_regsurf_cube_window_v2.py,sha256=whh9qqErjtg2vArJg5S3YkMbppSq4RJn7u5Zxzqwl1I,6462
77
77
  xtgeo/surface/_regsurf_cube_window_v3.py,sha256=E6eIFHv7B3IfLDjjq_u9fp8RmySuSkh7Bi7eV6OVAFs,11171
78
- xtgeo/surface/_regsurf_export.py,sha256=1nQ1YLZffkk80eeiMn5Fiy8o_3cEk7ExaWmqurT2ih4,10738
78
+ xtgeo/surface/_regsurf_export.py,sha256=udxqAlVRyW-dMscTtIGeFnqjpFpjZ3o69YlFGe2eGA4,10855
79
79
  xtgeo/surface/_regsurf_grid3d.py,sha256=1UhbHJoMZgs8FUKIYLFsbEVh-CZP8j4eYFxVjhJz9xw,9359
80
80
  xtgeo/surface/_regsurf_gridding.py,sha256=igldvuMznjPxPSNY8vBpKRhV5C4yLq4QrrtIu_fe9eY,10559
81
81
  xtgeo/surface/_regsurf_ijxyz_parser.py,sha256=7pyXWkYUoziDeDx4C2U1ywdXfX9-aa6Fw6OWDCbvN2o,10155
@@ -92,7 +92,7 @@ xtgeo/well/__init__.py,sha256=T3oOSJaUj3SwSG-YxeFM-oqppIYq2CZqPxBEB5khIys,615
92
92
  xtgeo/well/_blockedwell_roxapi.py,sha256=FQbbmUiUWVJeS_NvOny7ZIso6I0v6JlyG73SzeNfSyQ,7710
93
93
  xtgeo/well/_blockedwells_roxapi.py,sha256=fyyxfmUJ1JqS6EI9ALxoNxNGSvjl3YToK5h6sjJi_kY,2052
94
94
  xtgeo/well/_well_aux.py,sha256=t-36pZ24nbo64kpdRXFlQFsbfuWPgyu-XX59mjSDa-s,851
95
- xtgeo/well/_well_io.py,sha256=zc2puNVtaskoNwWbHISMUwWz6u1oJvSQ-elypEbg7xo,10136
95
+ xtgeo/well/_well_io.py,sha256=Omq7El3V9LJ0V9UO8QjW4Y3AuvaoEqRjP8fwcv1lY1s,10148
96
96
  xtgeo/well/_well_oper.py,sha256=pIYF98CwocPv4boBQEuLV51LCVSyWsXSe5cbZqOXTPc,19236
97
97
  xtgeo/well/_well_roxapi.py,sha256=92Oj_SOsU46iP4I_2gf7XW8DoGMWflpvcCSepAMeTjs,9734
98
98
  xtgeo/well/_wellmarkers.py,sha256=zpYgPrFF0dZV3sBz7FFBA5PMuGrkL6Sk3qE6PFUU__I,14608
@@ -111,7 +111,7 @@ xtgeo/xyz/_xyz_oper.py,sha256=_uCR-PYEsPQkBKh82oDvUsz7Y2vqsjqoiEdfmd8HIEU,20058
111
111
  xtgeo/xyz/_xyz_roxapi.py,sha256=NWgnPShA8amuHgSTqvy5_y21Qyx2s_6IWP1qPyHTPb8,26585
112
112
  xtgeo/xyz/points.py,sha256=r5-oC8HWO43vMHr1Jh4fM9JcwWbiz7FqwZNWU8l1w_0,22664
113
113
  xtgeo/xyz/polygons.py,sha256=-VUQ-6TUuN6b_cXyWzWWfTnJwYfyBwLRlqgw5ER_7OM,27978
114
- xtgeo-4.7.0.dist-info/METADATA,sha256=QY2qRWUakZjVOZcCgDW-wtQ-WmGi-X9SEA87nDND4i8,5714
115
- xtgeo-4.7.0.dist-info/WHEEL,sha256=k3r5zLv1t8z7JCqYC2-rKkfvrw2hvjPkH6-V2Jw00vI,104
116
- xtgeo-4.7.0.dist-info/licenses/LICENSE.md,sha256=fTqV5eBpeAZO0_jit8j4Ref9ikBSlHJ8xwj5TLg7gFk,7817
117
- xtgeo-4.7.0.dist-info/RECORD,,
114
+ xtgeo-4.8.0.dist-info/METADATA,sha256=NXRjNnj7ECi_X4xU1U6ZA4XyQ3ZyPfqRGT8iOrJoIak,5765
115
+ xtgeo-4.8.0.dist-info/WHEEL,sha256=k3r5zLv1t8z7JCqYC2-rKkfvrw2hvjPkH6-V2Jw00vI,104
116
+ xtgeo-4.8.0.dist-info/licenses/LICENSE.md,sha256=fTqV5eBpeAZO0_jit8j4Ref9ikBSlHJ8xwj5TLg7gFk,7817
117
+ xtgeo-4.8.0.dist-info/RECORD,,
File without changes