ert 17.1.2__py3-none-any.whl → 17.1.4__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/ert_config.py +9 -0
- ert/config/parsing/config_schema_deprecations.py +0 -11
- ert/run_models/_create_run_path.py +22 -3
- ert/shared/version.py +3 -3
- {ert-17.1.2.dist-info → ert-17.1.4.dist-info}/METADATA +1 -1
- {ert-17.1.2.dist-info → ert-17.1.4.dist-info}/RECORD +10 -10
- {ert-17.1.2.dist-info → ert-17.1.4.dist-info}/WHEEL +0 -0
- {ert-17.1.2.dist-info → ert-17.1.4.dist-info}/entry_points.txt +0 -0
- {ert-17.1.2.dist-info → ert-17.1.4.dist-info}/licenses/COPYING +0 -0
- {ert-17.1.2.dist-info → ert-17.1.4.dist-info}/top_level.txt +0 -0
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
|
|
@@ -217,15 +217,4 @@ deprecated_keywords_list = [
|
|
|
217
217
|
),
|
|
218
218
|
check=lambda line: line[0] == "DESIGN2PARAMS",
|
|
219
219
|
),
|
|
220
|
-
DeprecationInfo(
|
|
221
|
-
keyword="FORWARD_MODEL",
|
|
222
|
-
message=(
|
|
223
|
-
"FORWARD_MODEL DESIGN_KW will be replaced with RUN_TEMPLATE. "
|
|
224
|
-
"DESIGN2PARAMS has been replaced by DESIGN_MATRIX, so the "
|
|
225
|
-
"parameters are already available for magic string replacement "
|
|
226
|
-
"with the RUN_TEMPLATE keyword. Please use this format: "
|
|
227
|
-
"'RUN_TEMPLATE my_text_file_template.txt my_text_output_file.txt'"
|
|
228
|
-
),
|
|
229
|
-
check=lambda line: line[0] == "DESIGN_KW",
|
|
230
|
-
),
|
|
231
220
|
]
|
|
@@ -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/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.4'
|
|
32
|
+
__version_tuple__ = version_tuple = (17, 1, 4)
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'gd56631884'
|
|
@@ -54,7 +54,7 @@ ert/config/capture_validation.py,sha256=8HGEbJ2z9FXeEaxSewejP7NtEh4LLomPwcdpC0CJ
|
|
|
54
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
|
|
@@ -87,7 +87,7 @@ ert/config/parsing/config_dict.py,sha256=yyBb-NeaFnIjENrcziVA11Bq43uGguUiPECcKWL
|
|
|
87
87
|
ert/config/parsing/config_errors.py,sha256=p3lAcRPXTm4okupdVyLwRCVWJ_86a7rgCohkDaLRM10,4806
|
|
88
88
|
ert/config/parsing/config_keywords.py,sha256=_7HD031veniS3BdqHD9i7Xpox-2vLdbtLCC180uWKJI,1844
|
|
89
89
|
ert/config/parsing/config_schema.py,sha256=zvLbAABCsRfvf1uJFouFnH7jb6BKY48tyM4wB5tSNb0,9376
|
|
90
|
-
ert/config/parsing/config_schema_deprecations.py,sha256=
|
|
90
|
+
ert/config/parsing/config_schema_deprecations.py,sha256=xUkbe-_UA8UawNcUF58YwHHpHTAfC6XO2ZBN97jchKc,8611
|
|
91
91
|
ert/config/parsing/config_schema_item.py,sha256=-MkDmiQeltB20P7liQMapeQoDu_NNbLhfBdorksjaY8,14169
|
|
92
92
|
ert/config/parsing/context_values.py,sha256=S_j_BKuwqSm8RZNnw6Ki2ZQ4jz0VFXXmh0MZA2OstmQ,2288
|
|
93
93
|
ert/config/parsing/deprecation_info.py,sha256=E31LBTiG1qNeqACU8lTxp54bESIeuuVHgFim8j8uVjg,663
|
|
@@ -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
|
|
@@ -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=isUZ_ViJUyBoDsaeAMe7r5mrKT0U9dTQd2rKd6nBqnI,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.4.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.4.dist-info/METADATA,sha256=p3TYlziT9SNYQ3K0u7HJK2NR3UbupPWAhtIGVh0EUgs,10005
|
|
519
|
+
ert-17.1.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
520
|
+
ert-17.1.4.dist-info/entry_points.txt,sha256=ChZ7vn8Qy9v9rT8GM2JtAvWDN3NVoy4BIcvVRtU73CM,189
|
|
521
|
+
ert-17.1.4.dist-info/top_level.txt,sha256=LRh9GfdfyDWfAGmrQgp_XdoMHA4v6aotw8xgsy5YyHE,17
|
|
522
|
+
ert-17.1.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|