rock-physics-open 0.2.1__py3-none-any.whl → 0.3.0__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.

Potentially problematic release.


This version of rock-physics-open might be problematic. Click here for more details.

Files changed (43) hide show
  1. rock_physics_open/equinor_utilities/gen_utilities/dict_to_float.py +6 -1
  2. rock_physics_open/equinor_utilities/gen_utilities/dim_check_vector.py +35 -5
  3. rock_physics_open/equinor_utilities/gen_utilities/filter_input.py +11 -6
  4. rock_physics_open/equinor_utilities/gen_utilities/filter_output.py +29 -19
  5. rock_physics_open/equinor_utilities/machine_learning_utilities/__init__.py +18 -5
  6. rock_physics_open/equinor_utilities/machine_learning_utilities/base_pressure_model.py +172 -0
  7. rock_physics_open/equinor_utilities/machine_learning_utilities/exponential_model.py +100 -86
  8. rock_physics_open/equinor_utilities/machine_learning_utilities/friable_pressure_models.py +230 -0
  9. rock_physics_open/equinor_utilities/machine_learning_utilities/import_ml_models.py +23 -4
  10. rock_physics_open/equinor_utilities/machine_learning_utilities/patchy_cement_pressure_models.py +280 -0
  11. rock_physics_open/equinor_utilities/machine_learning_utilities/polynomial_model.py +128 -0
  12. rock_physics_open/equinor_utilities/machine_learning_utilities/sigmoidal_model.py +204 -155
  13. rock_physics_open/equinor_utilities/optimisation_utilities/__init__.py +19 -0
  14. rock_physics_open/equinor_utilities/snapshot_test_utilities/compare_snapshots.py +16 -8
  15. rock_physics_open/equinor_utilities/snapshot_test_utilities/snapshots.py +33 -10
  16. rock_physics_open/fluid_models/brine_model/brine_properties.py +70 -35
  17. rock_physics_open/fluid_models/gas_model/gas_properties.py +79 -37
  18. rock_physics_open/fluid_models/oil_model/dead_oil_density.py +21 -16
  19. rock_physics_open/fluid_models/oil_model/dead_oil_velocity.py +9 -7
  20. rock_physics_open/fluid_models/oil_model/live_oil_density.py +16 -13
  21. rock_physics_open/fluid_models/oil_model/live_oil_velocity.py +3 -3
  22. rock_physics_open/fluid_models/oil_model/oil_properties.py +59 -29
  23. rock_physics_open/sandstone_models/__init__.py +2 -0
  24. rock_physics_open/sandstone_models/constant_cement_optimisation.py +4 -1
  25. rock_physics_open/sandstone_models/friable_optimisation.py +4 -1
  26. rock_physics_open/sandstone_models/patchy_cement_model.py +89 -6
  27. rock_physics_open/sandstone_models/patchy_cement_optimisation.py +4 -1
  28. rock_physics_open/t_matrix_models/__init__.py +0 -10
  29. rock_physics_open/t_matrix_models/carbonate_pressure_substitution.py +1 -1
  30. rock_physics_open/t_matrix_models/curvefit_t_matrix_exp.py +1 -2
  31. rock_physics_open/t_matrix_models/t_matrix_opt_fluid_sub_exp.py +3 -3
  32. rock_physics_open/t_matrix_models/t_matrix_opt_fluid_sub_petec.py +5 -1
  33. rock_physics_open/t_matrix_models/t_matrix_opt_forward_model_exp.py +5 -1
  34. rock_physics_open/t_matrix_models/t_matrix_opt_forward_model_min.py +4 -1
  35. rock_physics_open/t_matrix_models/t_matrix_parameter_optimisation_exp.py +5 -1
  36. rock_physics_open/t_matrix_models/t_matrix_parameter_optimisation_min.py +4 -1
  37. rock_physics_open/version.py +16 -3
  38. {rock_physics_open-0.2.1.dist-info → rock_physics_open-0.3.0.dist-info}/METADATA +4 -8
  39. {rock_physics_open-0.2.1.dist-info → rock_physics_open-0.3.0.dist-info}/RECORD +43 -38
  40. /rock_physics_open/{t_matrix_models → equinor_utilities/optimisation_utilities}/opt_subst_utilities.py +0 -0
  41. {rock_physics_open-0.2.1.dist-info → rock_physics_open-0.3.0.dist-info}/WHEEL +0 -0
  42. {rock_physics_open-0.2.1.dist-info → rock_physics_open-0.3.0.dist-info}/licenses/LICENSE +0 -0
  43. {rock_physics_open-0.2.1.dist-info → rock_physics_open-0.3.0.dist-info}/top_level.txt +0 -0
@@ -17,13 +17,13 @@ def oil_properties(
17
17
  gas_gravity: np.ndarray | float,
18
18
  ) -> np.ndarray | float:
19
19
  """
20
- :param temperature: Temperature (Celsius) of oil.
21
- :param pressure: Pressure (Pa) of oil
20
+ :param temperature: Temperature [°C] of oil.
21
+ :param pressure: Pressure [Pa] of oil
22
22
  :param rho0: Density of the oil without dissolved gas at 15.6 degrees Celsius and
23
- atmospheric pressure. (kg/m^3)
23
+ atmospheric pressure. [kg/m^3]
24
24
  :param gas_oil_ratio: The volume ratio of gas to oil [l/l]
25
25
  :param gas_gravity: Gas Gravity, molar mass of gas relative to air molar mas.
26
- :return: vel_oil, den_oil, k_oil
26
+ :return: vel_oil [m/s], den_oil [kg/m^3], k_oil [Pa]
27
27
  """
28
28
  # Since live_oil with gas_oil_ratio=0.0 is not equal to dead oil
29
29
  # we use an apodization function to interpolate between the two
@@ -41,10 +41,11 @@ def oil_properties(
41
41
  window = np.clip((np.abs(x) - length / 2) / (length / 2), 0, 1)
42
42
  return 1 - window
43
43
 
44
- loil_den, loil_vel = live_oil(
45
- temperature, pressure, rho0, gas_oil_ratio, gas_gravity
46
- )
47
- doil_den, doil_vel = dead_oil(temperature, pressure, rho0)
44
+ (
45
+ loil_vel,
46
+ loil_den,
47
+ ) = live_oil(temperature, pressure, rho0, gas_oil_ratio, gas_gravity)
48
+ doil_vel, doil_den = dead_oil(temperature, pressure, rho0)
48
49
  window = triangular_window(gas_oil_ratio)
49
50
  den_oil = doil_den * window + (1 - window) * loil_den
50
51
  vel_oil = doil_vel * window + (1 - window) * loil_vel
@@ -59,20 +60,16 @@ def dead_oil(
59
60
  ) -> tuple[np.ndarray | float, np.ndarray | float]:
60
61
  """
61
62
  :param reference_density: Density of the oil without dissolved gas
62
- at 15.6 degrees Celsius and atmospheric pressure. kg/m3
63
+ at 15.6 degrees Celsius and atmospheric pressure. [kg/m^3]
63
64
  :param gas_oil_ratio: The volume ratio of gas to oil [l/l]
64
65
  :param gas_gravity: molar mass of gas relative to air molar mas.
65
- :param pressure: Pressure (Pa) of oil
66
- :param temperature: Temperature (Celsius) of oil.
67
- :return: dead_oil_density, dead_oil_velocity
66
+ :param pressure: Pressure [Pa] of oil
67
+ :param temperature: Temperature [°C] of oil.
68
+ :return: dead_oil_density [kg/m^3], dead_oil_velocity [m/s]
68
69
  """
69
- dead_oil_den = 1000 * dead_oil_density(
70
- temperature, pressure * 1e-6, reference_density / 1000
71
- )
72
- dead_oil_vel = dead_oil_velocity(
73
- temperature, pressure * 1e-6, reference_density / 1000
74
- )
75
- return dead_oil_den, dead_oil_vel
70
+ dead_oil_den = dead_oil_density(temperature, pressure, reference_density)
71
+ dead_oil_vel = dead_oil_velocity(temperature, pressure, reference_density)
72
+ return dead_oil_vel, dead_oil_den
76
73
 
77
74
 
78
75
  def live_oil(
@@ -84,12 +81,12 @@ def live_oil(
84
81
  ) -> tuple[np.ndarray | float, np.ndarray | float]:
85
82
  """
86
83
  :param reference_density: Density of the oil without dissolved gas
87
- at 15.6 degrees Celsius and atmospheric pressure. (kg/m^3)
84
+ at 15.6 degrees Celsius and atmospheric pressure. [kg/m^3]
88
85
  :param gas_oil_ratio: The volume ratio of gas to oil [l/l]
89
86
  :param gas_gravity: molar mass of gas relative to air molar mas.
90
- :param pressure: Pressure (Pa) of oil
91
- :param temperature: Temperature (Celsius) of oil.
92
- :return: live_oil_density, live_oil_velocity
87
+ :param pressure: Pressure [Pa] of oil
88
+ :param temperature: Temperature [°C] of oil.
89
+ :return: live_oil_density , live_oil_velocity
93
90
  """
94
91
  if np.any(
95
92
  pressure
@@ -99,18 +96,51 @@ def live_oil(
99
96
  "Pressure is below bubble point of oil, estimated elastic properties can be inaccurate",
100
97
  stacklevel=1,
101
98
  )
102
- live_oil_den = 1000 * live_oil_density(
99
+ live_oil_den = live_oil_density(
103
100
  temperature,
104
- pressure * 1e-6,
105
- reference_density / 1000,
101
+ pressure,
102
+ reference_density,
106
103
  gas_oil_ratio,
107
104
  gas_gravity,
108
105
  )
109
106
  live_oil_vel = live_oil_velocity(
110
107
  temperature,
111
- pressure * 1e-6,
112
- reference_density / 1000,
108
+ pressure,
109
+ reference_density,
113
110
  gas_oil_ratio,
114
111
  gas_gravity,
115
112
  )
116
- return live_oil_den, live_oil_vel
113
+ return (
114
+ live_oil_vel,
115
+ live_oil_den,
116
+ )
117
+
118
+
119
+ def oil_viscosity(
120
+ temperature: np.ndarray | float,
121
+ pressure: np.ndarray | float,
122
+ reference_density: np.ndarray | float,
123
+ ) -> np.ndarray | float:
124
+ """
125
+ Calculate dead oil viscosity. If dissolved gas is present in the oil, the reference density
126
+ should be substituted by live oil density.
127
+
128
+ Equations 25a, 25b, 26a & 26b in Batzle and Wang 1992
129
+
130
+ Based on Beggs and Robinson 1975
131
+
132
+ :param temperature: Temperature [°C] of oil
133
+ :param pressure: Pressure [Pa] of oil
134
+ :param reference_density: Density of the oil without dissolved gas
135
+ """
136
+ # Change unit in pressure to MPa
137
+ pressure_mpa = pressure / 1.0e6
138
+ # Change unit in density to g/cc
139
+ density_gcc = reference_density / 1000.0
140
+
141
+ y_factor = 10 ** (5.693 - 2.863 / density_gcc)
142
+ eta_t = -1.0 + 10 ** (0.505 * y_factor * (17.8 + temperature) ** -1.163)
143
+ i_factor = 10 ** (
144
+ 18.6 * (0.1 * np.log10(eta_t) + (np.log10(eta_t) + 2) ** -0.1 - 0.985)
145
+ )
146
+ return eta_t + 0.145 * pressure_mpa * i_factor
@@ -22,6 +22,7 @@ from .patchy_cement_fluid_substitution_model import (
22
22
  from .patchy_cement_model import (
23
23
  constant_cement_model_pcm,
24
24
  patchy_cement_model_cem_frac,
25
+ patchy_cement_model_dry,
25
26
  patchy_cement_model_weight,
26
27
  )
27
28
  from .patchy_cement_optimisation import (
@@ -48,6 +49,7 @@ __all__ = [
48
49
  "friable_shaly_sand_sandy_shale_model",
49
50
  "patchy_cement_pressure_fluid_substitution",
50
51
  "constant_cement_model_pcm",
52
+ "patchy_cement_model_dry",
51
53
  "patchy_cement_model_cem_frac",
52
54
  "patchy_cement_model_weight",
53
55
  "patchy_cement_model_optimisation",
@@ -1,7 +1,10 @@
1
1
  import numpy as np
2
2
 
3
3
  from rock_physics_open.equinor_utilities import gen_utilities
4
- from rock_physics_open.t_matrix_models import gen_opt_routine, save_opt_params
4
+ from rock_physics_open.equinor_utilities.optimisation_utilities import (
5
+ gen_opt_routine,
6
+ save_opt_params,
7
+ )
5
8
 
6
9
  from .curvefit_sandstone_models import curvefit_constant_cement
7
10
 
@@ -1,7 +1,10 @@
1
1
  import numpy as np
2
2
 
3
3
  from rock_physics_open.equinor_utilities import gen_utilities
4
- from rock_physics_open.t_matrix_models import gen_opt_routine, save_opt_params
4
+ from rock_physics_open.equinor_utilities.optimisation_utilities import (
5
+ gen_opt_routine,
6
+ save_opt_params,
7
+ )
5
8
 
6
9
  from .curvefit_sandstone_models import curvefit_friable
7
10
 
@@ -213,6 +213,93 @@ def patchy_cement_model_cem_frac(
213
213
  vpvs : Saturated rock velocity ratio [ratio].
214
214
  """
215
215
 
216
+ k_dry, mu, _ = patchy_cement_model_dry(
217
+ k_min,
218
+ mu_min,
219
+ rho_min,
220
+ k_cem,
221
+ mu_cem,
222
+ rho_cem,
223
+ phi,
224
+ p_eff,
225
+ frac_cem,
226
+ phi_c,
227
+ coord_num_func,
228
+ n,
229
+ shear_red,
230
+ )
231
+ k_zero, mu_zero = std_functions.hashin_shtrikman_walpole(
232
+ k_cem, mu_cem, k_min, mu_min, FRAC_CEM_UP, bound="lower"
233
+ )
234
+
235
+ k = std_functions.gassmann(k_dry, phi, k_fl, k_zero)
236
+
237
+ rhob = phi * rho_fl + (1 - phi - frac_cem) * rho_min + frac_cem * rho_cem
238
+
239
+ vp, vs, ai, vpvs = std_functions.velocity(k, mu, rhob)
240
+
241
+ return vp, vs, rhob, ai, vpvs
242
+
243
+
244
+ def patchy_cement_model_dry(
245
+ k_min,
246
+ mu_min,
247
+ rho_min,
248
+ k_cem,
249
+ mu_cem,
250
+ rho_cem,
251
+ phi,
252
+ p_eff,
253
+ frac_cem,
254
+ phi_c,
255
+ coord_num_func,
256
+ n,
257
+ shear_red,
258
+ ):
259
+ """
260
+ Patchy cement model for sands that are a combination of friable model and constant cement model. No fluid or
261
+ pressure substitution. In this implementation of the patchy cement model the given cement fraction for the constant
262
+ cement model defines the upper bound, and the effective pressure for the friable model defines the lower bound
263
+
264
+ Parameters
265
+ ----------
266
+ k_min : np.ndarray
267
+ Mineral bulk modulus [Pa].
268
+ mu_min : np.ndarray
269
+ Mineral shear modulus [Pa].
270
+ rho_min : np.ndarray
271
+ Mineral bulk density [kg/m^3].
272
+ k_cem : np.ndarray
273
+ Sandstone cement bulk modulus [Pa].
274
+ mu_cem : np.ndarray
275
+ Sandstone cement shear modulus [Pa].
276
+ rho_cem : np.ndarray
277
+ Cement bulk density [kg/m^3].
278
+ phi : np.ndarray
279
+ Total porosity [fraction].
280
+ p_eff : np.ndarray
281
+ Effective pressure [Pa].
282
+ frac_cem : float
283
+ Upper bound cement volume fraction [fraction].
284
+ shear_red : float
285
+ Shear reduction factor for sandstone [fraction].
286
+ phi_c : float
287
+ Critical porosity [fraction].
288
+ n : float
289
+ Coordination number [unitless].
290
+ coord_num_func : str
291
+ Indication if coordination number should be calculated from porosity or kept constant, either "ConstVal" or
292
+ "PoreBased" [default]
293
+
294
+ Returns
295
+ -------
296
+ tuple
297
+ k:dry, mu, rho_dry : (np.ndarray, np.ndarray, np.ndarray).
298
+ k_dry: dry rock bulk modulus [Pa],
299
+ mu : dry rock shear modulus [Pa],
300
+ rho_dry : dry rock density [kg/m3].,
301
+ """
302
+
216
303
  k_zero, mu_zero = std_functions.hashin_shtrikman_walpole(
217
304
  k_cem, mu_cem, k_min, mu_min, FRAC_CEM_UP, bound="lower"
218
305
  )
@@ -277,10 +364,6 @@ def patchy_cement_model_cem_frac(
277
364
  k_dry = k_fri + weight_k * (k_up - k_fri)
278
365
  mu = mu_fri + weight_mu * (mu_up - mu_fri)
279
366
 
280
- k = std_functions.gassmann(k_dry, phi, k_fl, k_zero)
281
-
282
- rhob = phi * rho_fl + (1 - phi - frac_cem) * rho_min + frac_cem * rho_cem
367
+ rho_dry = (1 - phi - frac_cem) * rho_min + frac_cem * rho_cem
283
368
 
284
- vp, vs, ai, vpvs = std_functions.velocity(k, mu, rhob)
285
-
286
- return vp, vs, rhob, ai, vpvs
369
+ return k_dry, mu, rho_dry
@@ -1,7 +1,10 @@
1
1
  import numpy as np
2
2
 
3
3
  from rock_physics_open.equinor_utilities import gen_utilities
4
- from rock_physics_open.t_matrix_models import gen_opt_routine, save_opt_params
4
+ from rock_physics_open.equinor_utilities.optimisation_utilities import (
5
+ gen_opt_routine,
6
+ save_opt_params,
7
+ )
5
8
 
6
9
  from .curvefit_sandstone_models import (
7
10
  curvefit_patchy_cement,
@@ -1,10 +1,4 @@
1
1
  from .carbonate_pressure_substitution import carbonate_pressure_model
2
- from .opt_subst_utilities import (
3
- gen_opt_routine,
4
- opt_param_info,
5
- opt_param_to_ascii,
6
- save_opt_params,
7
- )
8
2
  from .parse_t_matrix_inputs import parse_t_matrix_inputs
9
3
  from .run_t_matrix import run_t_matrix
10
4
  from .t_matrix_C import t_matrix_porosity_c_alpha_v
@@ -26,10 +20,6 @@ from .t_matrix_vector import (
26
20
 
27
21
  __all__ = [
28
22
  "carbonate_pressure_model",
29
- "gen_opt_routine",
30
- "opt_param_info",
31
- "opt_param_to_ascii",
32
- "save_opt_params",
33
23
  "parse_t_matrix_inputs",
34
24
  "run_t_matrix",
35
25
  "t_matrix_porosity_c_alpha_v",
@@ -1,6 +1,6 @@
1
1
  import pandas as pd
2
2
 
3
- from rock_physics_open.equinor_utilities.machine_learning_utilities import (
3
+ from rock_physics_open.equinor_utilities.machine_learning_utilities.run_regression import (
4
4
  run_regression,
5
5
  )
6
6
 
@@ -1,11 +1,10 @@
1
1
  import numpy as np
2
2
 
3
3
  from rock_physics_open.equinor_utilities.gen_utilities import dim_check_vector
4
+ from rock_physics_open.equinor_utilities.optimisation_utilities import opt_param_info
4
5
  from rock_physics_open.equinor_utilities.std_functions import hashin_shtrikman_average
5
6
  from rock_physics_open.t_matrix_models import t_matrix_porosity_c_alpha_v
6
7
 
7
- from .opt_subst_utilities import opt_param_info
8
-
9
8
 
10
9
  def curvefit_t_matrix_exp(
11
10
  x_data,
@@ -1,15 +1,15 @@
1
1
  import numpy as np
2
2
 
3
3
  from rock_physics_open.equinor_utilities import gen_utilities
4
-
5
- from .curvefit_t_matrix_exp import curvefit_t_matrix_exp
6
- from .opt_subst_utilities import (
4
+ from rock_physics_open.equinor_utilities.optimisation_utilities import (
7
5
  gen_mod_routine,
8
6
  gen_sub_routine,
9
7
  load_opt_params,
10
8
  opt_param_info,
11
9
  )
12
10
 
11
+ from .curvefit_t_matrix_exp import curvefit_t_matrix_exp
12
+
13
13
 
14
14
  def run_t_matrix_with_opt_params_exp(
15
15
  fl_k_orig,
@@ -1,9 +1,13 @@
1
1
  import numpy as np
2
2
 
3
3
  from rock_physics_open.equinor_utilities import gen_utilities
4
+ from rock_physics_open.equinor_utilities.optimisation_utilities import (
5
+ gen_mod_routine,
6
+ gen_sub_routine,
7
+ load_opt_params,
8
+ )
4
9
 
5
10
  from .curvefit_t_matrix_min import curve_fit_2_inclusion_sets
6
- from .opt_subst_utilities import gen_mod_routine, gen_sub_routine, load_opt_params
7
11
 
8
12
 
9
13
  def run_t_matrix_with_opt_params_petec(
@@ -1,9 +1,13 @@
1
1
  import numpy as np
2
2
 
3
3
  from rock_physics_open.equinor_utilities import gen_utilities
4
+ from rock_physics_open.equinor_utilities.optimisation_utilities import (
5
+ gen_mod_routine,
6
+ load_opt_params,
7
+ opt_param_info,
8
+ )
4
9
 
5
10
  from .curvefit_t_matrix_exp import curvefit_t_matrix_exp
6
- from .opt_subst_utilities import gen_mod_routine, load_opt_params, opt_param_info
7
11
 
8
12
 
9
13
  def run_t_matrix_forward_model_with_opt_params_exp(
@@ -1,9 +1,12 @@
1
1
  import numpy as np
2
2
 
3
3
  from rock_physics_open.equinor_utilities import gen_utilities
4
+ from rock_physics_open.equinor_utilities.optimisation_utilities import (
5
+ gen_mod_routine,
6
+ load_opt_params,
7
+ )
4
8
 
5
9
  from .curvefit_t_matrix_min import curve_fit_2_inclusion_sets
6
- from .opt_subst_utilities import gen_mod_routine, load_opt_params
7
10
 
8
11
 
9
12
  def run_t_matrix_forward_model_with_opt_params_petec(
@@ -1,9 +1,13 @@
1
1
  import numpy as np
2
2
 
3
3
  from rock_physics_open.equinor_utilities import gen_utilities
4
+ from rock_physics_open.equinor_utilities.optimisation_utilities import (
5
+ gen_opt_routine,
6
+ opt_param_info,
7
+ save_opt_params,
8
+ )
4
9
 
5
10
  from .curvefit_t_matrix_exp import curvefit_t_matrix_exp
6
- from .opt_subst_utilities import gen_opt_routine, opt_param_info, save_opt_params
7
11
  from .t_matrix_parameter_optimisation_min import DEF_VP_VS_RATIO
8
12
 
9
13
 
@@ -1,9 +1,12 @@
1
1
  import numpy as np
2
2
 
3
3
  from rock_physics_open.equinor_utilities import gen_utilities
4
+ from rock_physics_open.equinor_utilities.optimisation_utilities import (
5
+ gen_opt_routine,
6
+ save_opt_params,
7
+ )
4
8
 
5
9
  from .curvefit_t_matrix_min import curve_fit_2_inclusion_sets
6
- from .opt_subst_utilities import gen_opt_routine, save_opt_params
7
10
 
8
11
  # Trade-off between calcite, dolomite and quartz, vs is weighted by this in order to make it count as much as vp
9
12
  # in the optimisation
@@ -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 = '0.2.1'
21
- __version_tuple__ = version_tuple = (0, 2, 1)
31
+ __version__ = version = '0.3.0'
32
+ __version_tuple__ = version_tuple = (0, 3, 0)
33
+
34
+ __commit_id__ = commit_id = None
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rock_physics_open
3
- Version: 0.2.1
3
+ Version: 0.3.0
4
4
  Summary: Equinor Rock Physics Module
5
5
  Author-email: Harald Flesche <hfle@equinor.com>, Eivind Jahren <ejah@equinor.com>, Jimmy Zurcher <jiz@equinor.com>
6
- Maintainer-email: Harald Flesche <hfle@equinor.com>, Eirik Ola Aksnes <eoaksnes@equinor.com>, Christopher Collin Løkken <chcl@equinor.com>, Sivert Utne <sutn@equinor.com>
6
+ Maintainer-email: Harald Flesche <hfle@equinor.com>, Eirik Ola Aksnes <eoaksnes@equinor.com>, Sivert Utne <sutn@equinor.com>, Einar Wigum Arbo <earb@equinor.com>
7
7
  Project-URL: Repository, https://github.com/equinor/rock-physics-open
8
8
  Project-URL: Homepage, https://github.com/equinor/rock-physics-open
9
9
  Project-URL: Changelog, https://github.com/equinor/rock-physics-open/blob/main/CHANGELOG.md
@@ -16,6 +16,7 @@ Classifier: Topic :: Utilities
16
16
  Classifier: Operating System :: POSIX :: Linux
17
17
  Classifier: Programming Language :: Python :: 3.11
18
18
  Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
19
20
  Classifier: Natural Language :: English
20
21
  Requires-Python: >=3.11
21
22
  Description-Content-Type: text/markdown
@@ -27,11 +28,6 @@ Requires-Dist: scipy<2,>=1.10.1
27
28
  Requires-Dist: scikit-learn>=1.2.2
28
29
  Requires-Dist: sympy>=1.13.3
29
30
  Requires-Dist: tmatrix>=1.0.0
30
- Provides-Extra: tests
31
- Requires-Dist: pytest>=8.3.5; extra == "tests"
32
- Requires-Dist: pytest-cov>=6.1.1; extra == "tests"
33
- Requires-Dist: ruff>=0.11.6; extra == "tests"
34
- Requires-Dist: pre-commit>=4.2.0; extra == "tests"
35
31
  Dynamic: license-file
36
32
 
37
33
  <div align="center">
@@ -80,7 +76,7 @@ Alternatively, you can update the dependencies in your `pyproject.toml` file:
80
76
  <!-- x-release-please-start-version -->
81
77
  ```toml
82
78
  dependencies = [
83
- "rock-physics-open == 0.2.1",
79
+ "rock-physics-open == 0.3.0",
84
80
  ]
85
81
  ```
86
82
  <!-- x-release-please-end-version -->