ert 17.1.1__py3-none-any.whl → 17.1.3__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.
- ert/config/design_matrix.py +23 -16
- ert/config/ert_config.py +9 -0
- ert/config/gen_kw_config.py +2 -2
- ert/run_models/_create_run_path.py +22 -3
- ert/run_models/manual_update.py +2 -1
- ert/run_models/model_factory.py +1 -0
- ert/shared/version.py +3 -3
- {ert-17.1.1.dist-info → ert-17.1.3.dist-info}/METADATA +1 -1
- {ert-17.1.1.dist-info → ert-17.1.3.dist-info}/RECORD +13 -13
- {ert-17.1.1.dist-info → ert-17.1.3.dist-info}/WHEEL +0 -0
- {ert-17.1.1.dist-info → ert-17.1.3.dist-info}/entry_points.txt +0 -0
- {ert-17.1.1.dist-info → ert-17.1.3.dist-info}/licenses/COPYING +0 -0
- {ert-17.1.1.dist-info → ert-17.1.3.dist-info}/top_level.txt +0 -0
ert/config/design_matrix.py
CHANGED
|
@@ -171,26 +171,33 @@ class DesignMatrix:
|
|
|
171
171
|
|
|
172
172
|
for param_cfg in existing_parameters:
|
|
173
173
|
if isinstance(param_cfg, GenKwConfig) and param_cfg.name in design_cfgs:
|
|
174
|
-
param_cfg.
|
|
174
|
+
del design_cfgs[param_cfg.name]
|
|
175
|
+
input_source = DataSource(
|
|
175
176
|
self.parameter_priority.get(
|
|
176
177
|
param_cfg.name, DataSource.DESIGN_MATRIX.value
|
|
177
178
|
)
|
|
178
179
|
)
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
180
|
+
new_param_configs += [
|
|
181
|
+
GenKwConfig(
|
|
182
|
+
name=param_cfg.name,
|
|
183
|
+
update=(
|
|
184
|
+
input_source == DataSource.SAMPLED and param_cfg.update
|
|
185
|
+
),
|
|
186
|
+
distribution=(
|
|
187
|
+
RawSettings()
|
|
188
|
+
if input_source == DataSource.DESIGN_MATRIX
|
|
189
|
+
else param_cfg.distribution
|
|
190
|
+
),
|
|
191
|
+
group=(
|
|
192
|
+
DESIGN_MATRIX_GROUP
|
|
193
|
+
if input_source == DataSource.DESIGN_MATRIX
|
|
194
|
+
else param_cfg.group
|
|
195
|
+
),
|
|
196
|
+
input_source=input_source,
|
|
197
|
+
),
|
|
198
|
+
]
|
|
199
|
+
else:
|
|
200
|
+
new_param_configs += [param_cfg]
|
|
194
201
|
if design_cfgs.values():
|
|
195
202
|
new_param_configs += list(design_cfgs.values())
|
|
196
203
|
return new_param_configs
|
ert/config/ert_config.py
CHANGED
|
@@ -791,6 +791,15 @@ class ErtConfig(BaseModel):
|
|
|
791
791
|
)
|
|
792
792
|
return self
|
|
793
793
|
|
|
794
|
+
@model_validator(mode="after")
|
|
795
|
+
def log_ensemble_config_contents(self) -> Self:
|
|
796
|
+
all_parameters = self.parameter_configurations_with_design_matrix
|
|
797
|
+
parameter_type_count = Counter(parameter.type for parameter in all_parameters)
|
|
798
|
+
logger.info(
|
|
799
|
+
f"EnsembleConfig contains parameters of type {dict(parameter_type_count)}"
|
|
800
|
+
)
|
|
801
|
+
return self
|
|
802
|
+
|
|
794
803
|
def __eq__(self, other: object) -> bool:
|
|
795
804
|
if not isinstance(other, ErtConfig):
|
|
796
805
|
return False
|
ert/config/gen_kw_config.py
CHANGED
|
@@ -121,7 +121,7 @@ class GenKwConfig(ParameterConfig):
|
|
|
121
121
|
gen_kw_key = cast(str, config_list[0])
|
|
122
122
|
|
|
123
123
|
options = cast(dict[str, str], config_list[-1])
|
|
124
|
-
positional_args = cast(list[str], config_list[:-1])
|
|
124
|
+
positional_args = cast(list[str | list[str]], config_list[:-1])
|
|
125
125
|
errors = []
|
|
126
126
|
update_parameter = str_to_bool(options.get("UPDATE", "TRUE"))
|
|
127
127
|
if _get_abs_path(options.get("INIT_FILES")):
|
|
@@ -186,7 +186,7 @@ class GenKwConfig(ParameterConfig):
|
|
|
186
186
|
params[0], params[1], params[2:]
|
|
187
187
|
),
|
|
188
188
|
forward_init=False,
|
|
189
|
-
update=update_parameter,
|
|
189
|
+
update="CONST" not in params and update_parameter,
|
|
190
190
|
)
|
|
191
191
|
for params in distributions_spec
|
|
192
192
|
]
|
|
@@ -3,6 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
import json
|
|
4
4
|
import logging
|
|
5
5
|
import os
|
|
6
|
+
import time
|
|
6
7
|
from collections.abc import Iterable, Mapping
|
|
7
8
|
from datetime import UTC, datetime
|
|
8
9
|
from pathlib import Path
|
|
@@ -189,12 +190,18 @@ def create_run_path(
|
|
|
189
190
|
if context_env is None:
|
|
190
191
|
context_env = {}
|
|
191
192
|
runpaths.set_ert_ensemble(ensemble.name)
|
|
192
|
-
|
|
193
|
+
timings = {
|
|
194
|
+
"generate_parameter_files": 0.0,
|
|
195
|
+
"substitute_parameters": 0.0,
|
|
196
|
+
"substitute_real_iter": 0.0,
|
|
197
|
+
"result_file_to_target": 0.0,
|
|
198
|
+
}
|
|
193
199
|
substituter = Substitutions(substitutions)
|
|
194
200
|
for run_arg in run_args:
|
|
195
201
|
run_path = Path(run_arg.runpath)
|
|
196
202
|
if run_arg.active:
|
|
197
203
|
run_path.mkdir(parents=True, exist_ok=True)
|
|
204
|
+
start_time = time.perf_counter()
|
|
198
205
|
param_data = _generate_parameter_files(
|
|
199
206
|
ensemble.experiment.parameter_configuration.values(),
|
|
200
207
|
parameters_file,
|
|
@@ -203,10 +210,12 @@ def create_run_path(
|
|
|
203
210
|
ensemble,
|
|
204
211
|
ensemble.iteration,
|
|
205
212
|
)
|
|
213
|
+
timings["generate_parameter_files"] += time.perf_counter() - start_time
|
|
206
214
|
for (
|
|
207
215
|
source_file_content,
|
|
208
216
|
target_file,
|
|
209
217
|
) in ensemble.experiment.templates_configuration:
|
|
218
|
+
start_time = time.perf_counter()
|
|
210
219
|
target_file = substituter.substitute_real_iter(
|
|
211
220
|
target_file, run_arg.iens, ensemble.iteration
|
|
212
221
|
)
|
|
@@ -215,10 +224,14 @@ def create_run_path(
|
|
|
215
224
|
run_arg.iens,
|
|
216
225
|
ensemble.iteration,
|
|
217
226
|
)
|
|
227
|
+
timings["substitute_real_iter"] += time.perf_counter() - start_time
|
|
228
|
+
start_time = time.perf_counter()
|
|
218
229
|
result = substituter.substitute_parameters(
|
|
219
230
|
result,
|
|
220
231
|
param_data,
|
|
221
232
|
)
|
|
233
|
+
timings["substitute_parameters"] += time.perf_counter() - start_time
|
|
234
|
+
start_time = time.perf_counter()
|
|
222
235
|
target = run_path / target_file
|
|
223
236
|
if not target.parent.exists():
|
|
224
237
|
os.makedirs(
|
|
@@ -226,10 +239,13 @@ def create_run_path(
|
|
|
226
239
|
exist_ok=True,
|
|
227
240
|
)
|
|
228
241
|
target.write_text(result)
|
|
242
|
+
timings["result_file_to_target"] += time.perf_counter() - start_time
|
|
229
243
|
|
|
230
244
|
path = run_path / "jobs.json"
|
|
245
|
+
start_time = time.perf_counter()
|
|
231
246
|
_backup_if_existing(path)
|
|
232
|
-
|
|
247
|
+
timings["backup_if_existing"] = time.perf_counter() - start_time
|
|
248
|
+
start_time = time.perf_counter()
|
|
233
249
|
forward_model_output = create_forward_model_json(
|
|
234
250
|
context=substitutions,
|
|
235
251
|
forward_model_steps=forward_model_steps,
|
|
@@ -246,12 +262,15 @@ def create_run_path(
|
|
|
246
262
|
option=orjson.OPT_NON_STR_KEYS | orjson.OPT_INDENT_2,
|
|
247
263
|
)
|
|
248
264
|
)
|
|
265
|
+
timings["jobs_to_json"] = time.perf_counter() - start_time
|
|
249
266
|
# Write MANIFEST file to runpath use to avoid NFS sync issues
|
|
267
|
+
start_time = time.perf_counter()
|
|
250
268
|
data = _manifest_to_json(ensemble, run_arg.iens, run_arg.itr)
|
|
251
269
|
Path(run_path / "manifest.json").write_bytes(
|
|
252
270
|
orjson.dumps(data, option=orjson.OPT_NON_STR_KEYS | orjson.OPT_INDENT_2)
|
|
253
271
|
)
|
|
254
|
-
|
|
272
|
+
timings["manifest_to_json"] = time.perf_counter() - start_time
|
|
273
|
+
logger.info(f"_create_run_path durations: {timings}")
|
|
255
274
|
runpaths.write_runpath_list(
|
|
256
275
|
[ensemble.iteration], [real.iens for real in run_args if real.active]
|
|
257
276
|
)
|
ert/run_models/manual_update.py
CHANGED
|
@@ -19,6 +19,7 @@ logger = logging.getLogger(__name__)
|
|
|
19
19
|
|
|
20
20
|
class ManualUpdate(UpdateRunModel):
|
|
21
21
|
ensemble_id: str
|
|
22
|
+
ert_templates: list[tuple[str, str]]
|
|
22
23
|
|
|
23
24
|
_prior: Ensemble = PrivateAttr()
|
|
24
25
|
|
|
@@ -49,7 +50,7 @@ class ManualUpdate(UpdateRunModel):
|
|
|
49
50
|
observations=prior_experiment.observations,
|
|
50
51
|
simulation_arguments=prior_experiment.metadata,
|
|
51
52
|
name=f"Manual update of {self._prior.name}",
|
|
52
|
-
templates=self.
|
|
53
|
+
templates=self.ert_templates,
|
|
53
54
|
)
|
|
54
55
|
self.update(
|
|
55
56
|
self._prior,
|
ert/run_models/model_factory.py
CHANGED
ert/shared/version.py
CHANGED
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '17.1.
|
|
32
|
-
__version_tuple__ = version_tuple = (17, 1,
|
|
31
|
+
__version__ = version = '17.1.3'
|
|
32
|
+
__version_tuple__ = version_tuple = (17, 1, 3)
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'gd2561a7a0'
|
|
@@ -51,10 +51,10 @@ ert/config/_str_to_bool.py,sha256=AxNCJAuTtKF-562CRh7HgjQIyM7N-jjSlRJKvpCNk9I,85
|
|
|
51
51
|
ert/config/analysis_config.py,sha256=v-ZppIlP_NkmhtuYuxm31m2V3eA7YjvC3rDsMXm5qPk,8646
|
|
52
52
|
ert/config/analysis_module.py,sha256=TLluRobz_0NNMDSGFdM4L2t9agfvHyhoN-b1Rg8MAE4,2070
|
|
53
53
|
ert/config/capture_validation.py,sha256=8HGEbJ2z9FXeEaxSewejP7NtEh4LLomPwcdpC0CJlko,1252
|
|
54
|
-
ert/config/design_matrix.py,sha256=
|
|
54
|
+
ert/config/design_matrix.py,sha256=yyAFBppTwZXt4OeN6kxRmLk16jF8bntQWLHU_-rDQn4,17236
|
|
55
55
|
ert/config/distribution.py,sha256=MdLQEnWZqDaAwbKI1maXxlurYousirlZbA8AIk6GITw,12734
|
|
56
56
|
ert/config/ensemble_config.py,sha256=8IgQOdzhczslScJJuVYlWKzALw6_IsqvZzSvMkiE8go,7438
|
|
57
|
-
ert/config/ert_config.py,sha256=
|
|
57
|
+
ert/config/ert_config.py,sha256=at5T2E393aikjZMSswP2hp7LvS9VvKknF_9ip9eYTb8,54618
|
|
58
58
|
ert/config/ert_plugin.py,sha256=hENwrc9FfhqUYjVpFYcmy66jDLgU_gagOJFBcYjxe6A,458
|
|
59
59
|
ert/config/ert_script.py,sha256=64FZ-dMI8DZtRLHWReC19KY-ZOsBhdgYkwAe9ZWLc_I,8405
|
|
60
60
|
ert/config/everest_constraints_config.py,sha256=vlsoXHGyoCoESZ4eFdsKlFWL0aEctRR0caBFwcuF1xk,3099
|
|
@@ -64,7 +64,7 @@ ert/config/external_ert_script.py,sha256=7htQDv1P7ykoj4Bz51xOWIDbs7P4z7HIft67Bab
|
|
|
64
64
|
ert/config/field.py,sha256=BDaBni_aQ2y1GpG37KodrmlBcG17bXgZLOzR72Llxmo,12093
|
|
65
65
|
ert/config/forward_model_step.py,sha256=v35ieiGdE5OA764q1eri2MGSNDEUtOlweBp2Vx56EpI,9926
|
|
66
66
|
ert/config/gen_data_config.py,sha256=Vuh3wGPL_R2jktPhX_dAR_SjYu0LADdRQJjn1H7VVV8,8554
|
|
67
|
-
ert/config/gen_kw_config.py,sha256=
|
|
67
|
+
ert/config/gen_kw_config.py,sha256=5Dq6YhusvHgFBpDPNKanSghyE7oj2NFRU36J8Krnpv4,10621
|
|
68
68
|
ert/config/lint_file.py,sha256=DZv2j2OzhArtr7oDDUin6lJRwP6Ww620b7Yh-0SHUFc,671
|
|
69
69
|
ert/config/model_config.py,sha256=puFBesPfksWM9Yp1qKa1gu_y7r2drZf9etJUBqGspu4,5056
|
|
70
70
|
ert/config/parameter_config.py,sha256=pZz0PstN_Mm4e2w3S_CxuXHZK11KeNjLAUhJIUqMXYg,6035
|
|
@@ -367,7 +367,7 @@ ert/resources/workflows/jobs/shell/MOVE_DIRECTORY,sha256=Lh_u0-eCr5Usa8Xien44d6q
|
|
|
367
367
|
ert/resources/workflows/jobs/shell/MOVE_FILE,sha256=MET6aPtDTVaoEDiTZqKqx_hRayJP3Gn-yubdwrJqpjw,48
|
|
368
368
|
ert/resources/workflows/jobs/shell/SYMLINK,sha256=P6wYoLM6y7IqzJQE5ZWkKEj7ERfK9VTRJa6N1pKigeg,46
|
|
369
369
|
ert/run_models/__init__.py,sha256=MWZL_nWbAarzw8Ltuy1kU0LyZpxP07Nk86wGHwOQEv8,936
|
|
370
|
-
ert/run_models/_create_run_path.py,sha256=
|
|
370
|
+
ert/run_models/_create_run_path.py,sha256=MyIBDCm7lE_DGJioGhGWe58LeKwPsJlkv4vh-0pKLgM,10138
|
|
371
371
|
ert/run_models/ensemble_experiment.py,sha256=dUOSNh8a8jKNoBesirvQU0qUUvZ1jcaCTCS1T4s0KCY,2833
|
|
372
372
|
ert/run_models/ensemble_information_filter.py,sha256=CN-yX3DJlRI7qMaLcEdTgpJMptVjU8d4c7o9HX61PQ0,1039
|
|
373
373
|
ert/run_models/ensemble_smoother.py,sha256=CEdcGSAo_yW3Sfvh3OjQjnhGcwwErDkq7aFZBkKsNOo,3623
|
|
@@ -375,8 +375,8 @@ ert/run_models/evaluate_ensemble.py,sha256=OPpHzJCkh66exOUpvQLa7FSsPN0rE6Tw2A4DC
|
|
|
375
375
|
ert/run_models/event.py,sha256=s7Nij_M_OLcODSZ0ALg03fFin2lRCYalKMoJujTa6sg,3249
|
|
376
376
|
ert/run_models/everest_run_model.py,sha256=vkHezGoQ2n2wix3lufd-zgfUTb6BAEoyTh-1R7OrxJ4,44259
|
|
377
377
|
ert/run_models/initial_ensemble_run_model.py,sha256=Kjl7cSRNT_yiHcXw-0RhwGn9ggSlWs3zq2nQGIVwNDA,3720
|
|
378
|
-
ert/run_models/manual_update.py,sha256=
|
|
379
|
-
ert/run_models/model_factory.py,sha256=
|
|
378
|
+
ert/run_models/manual_update.py,sha256=r8UAJKgCf6RqTfcFwCbW7hDPHqpGW_m7YQGgzdmR-fY,2942
|
|
379
|
+
ert/run_models/model_factory.py,sha256=y5eOrnH3U6-c1yVfE0mcwbZXGYtAf0UaMoJvkyjAQyU,18632
|
|
380
380
|
ert/run_models/multiple_data_assimilation.py,sha256=pJa1X55dLBpDn13ukQR1W769qVPPQEiUAl1fjq6ArS4,8214
|
|
381
381
|
ert/run_models/run_model.py,sha256=ZhX1C2_NQRFe-i4wx7qaV4w8-BXmb6vHnz4p0ZhuFsQ,30234
|
|
382
382
|
ert/run_models/single_test_run.py,sha256=4MJeyZAN9uX5RdIni5vb3uymUexG3JtZBtERMUCjqPE,922
|
|
@@ -397,7 +397,7 @@ ert/services/storage_service.py,sha256=3hiQ5MVDD1ozFgndcy6HadK0qPVS1FAmL4P5p2LFf
|
|
|
397
397
|
ert/services/webviz_ert_service.py,sha256=J5vznqb_-DjlDMOze7tdvuBE4GWEPgJ5dIIXvRLKd0Y,650
|
|
398
398
|
ert/shared/__init__.py,sha256=OwgL-31MxA0fabETJ5Svw0tqJpHi569CZDRFHdHiqA0,644
|
|
399
399
|
ert/shared/net_utils.py,sha256=DDHIZLHdBnh7ZZ--1s-FUlsoNTSJJsfHmLQE44E2JqU,5324
|
|
400
|
-
ert/shared/version.py,sha256=
|
|
400
|
+
ert/shared/version.py,sha256=_zSQoyIoRuk0INbUivlXAy8q9dNiaMXxPHOdBzoCEBQ,714
|
|
401
401
|
ert/shared/_doc_utils/__init__.py,sha256=zSl-NUpWLF167PVTvfjn0T50gExjvyWPw5OGq5Bt2Dc,983
|
|
402
402
|
ert/shared/_doc_utils/ert_jobs.py,sha256=425Ol3pk-rIjyQxoopAijKV-YiAESJy3yyoukBQle4s,8116
|
|
403
403
|
ert/shared/_doc_utils/everest_jobs.py,sha256=uBDN7tIwlBJIZVZ6ZFL1tkewEJJGDLoeVrFIIrJznvM,2081
|
|
@@ -448,7 +448,7 @@ ert/validation/validation_status.py,sha256=f47_B7aS-9DEh6uaVzKxD97pXienkyTVVCqTy
|
|
|
448
448
|
ert/warnings/__init__.py,sha256=IBwQVkdD7Njaad9PAB-9K-kr15wnA4EBKboxyqgu9NA,214
|
|
449
449
|
ert/warnings/_warnings.py,sha256=7qhNZ0W4nnljzoOx6AXX7VlMv5pa34Ek5M5n1Ep0Kak,189
|
|
450
450
|
ert/warnings/specific_warning_handler.py,sha256=5dVXtOhzcMmtPBGx4AOddXNPfzTFOPA7RVtdH8hLv68,932
|
|
451
|
-
ert-17.1.
|
|
451
|
+
ert-17.1.3.dist-info/licenses/COPYING,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
|
|
452
452
|
everest/__init__.py,sha256=8_f50f6H3-onqaiuNCwC0Eiotdl9JuTxhwyF_54MVvU,306
|
|
453
453
|
everest/config_file_loader.py,sha256=7cOcT0nwsZ_bhqDkyZ60sIvh1kL2sG1gURqF3IHQ4hc,5287
|
|
454
454
|
everest/everest_storage.py,sha256=nfaTdab9kPlXZQiZWRR-Y7Zb-2kyQNhF0B914bU1IDQ,42269
|
|
@@ -515,8 +515,8 @@ everest/templates/well_drill.tmpl,sha256=9iLexmBHMsMQNXyyRK4GlmVuVpVIxRcCHpy1av5
|
|
|
515
515
|
everest/templates/well_order.tmpl,sha256=XJ1eVRkeyTdLu5sLsltJSSK6BDLN7rFOAqLdM3ZZy3w,75
|
|
516
516
|
everest/util/__init__.py,sha256=xEYLz6pUtgkH8VHer1RfoCwKiO70dBnuhHonsOPaOx0,1359
|
|
517
517
|
everest/util/forward_models.py,sha256=JPxHhLI6TrmQJwW50wwGBmw57TfRd8SG2svYhXFHrc8,1617
|
|
518
|
-
ert-17.1.
|
|
519
|
-
ert-17.1.
|
|
520
|
-
ert-17.1.
|
|
521
|
-
ert-17.1.
|
|
522
|
-
ert-17.1.
|
|
518
|
+
ert-17.1.3.dist-info/METADATA,sha256=Cvndc9K997C9xnMkhQjfIm3gyKV33dDzxMd48eK-UOo,10005
|
|
519
|
+
ert-17.1.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
520
|
+
ert-17.1.3.dist-info/entry_points.txt,sha256=ChZ7vn8Qy9v9rT8GM2JtAvWDN3NVoy4BIcvVRtU73CM,189
|
|
521
|
+
ert-17.1.3.dist-info/top_level.txt,sha256=LRh9GfdfyDWfAGmrQgp_XdoMHA4v6aotw8xgsy5YyHE,17
|
|
522
|
+
ert-17.1.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|