ert 17.1.2__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/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
@@ -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.2'
32
- __version_tuple__ = version_tuple = (17, 1, 2)
31
+ __version__ = version = '17.1.3'
32
+ __version_tuple__ = version_tuple = (17, 1, 3)
33
33
 
34
- __commit_id__ = commit_id = 'g4c690f780'
34
+ __commit_id__ = commit_id = 'gd2561a7a0'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ert
3
- Version: 17.1.2
3
+ Version: 17.1.3
4
4
  Summary: Ensemble based Reservoir Tool (ERT)
5
5
  Author-email: Equinor ASA <fg_sib-scout@equinor.com>
6
6
  License: GPL-3.0
@@ -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=pYi1qywb95rtA1Kro-hoDHOucrUJCvSWiPTnAAmArt0,54231
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
@@ -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=5CJNFaBbsCnfzb9eoXGWdgFpuJiBXiPTsaHdyJcXbHQ,9007
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=FrOrZzjSr6KlmP_m0mSZTW8SI5nzZcbiwmFrSIvO214,714
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.2.dist-info/licenses/COPYING,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
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.2.dist-info/METADATA,sha256=e_zcH4INp_TK5ruZi2X-i8MuCUa8OhFvPXJaxvNoh4g,10005
519
- ert-17.1.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
520
- ert-17.1.2.dist-info/entry_points.txt,sha256=ChZ7vn8Qy9v9rT8GM2JtAvWDN3NVoy4BIcvVRtU73CM,189
521
- ert-17.1.2.dist-info/top_level.txt,sha256=LRh9GfdfyDWfAGmrQgp_XdoMHA4v6aotw8xgsy5YyHE,17
522
- ert-17.1.2.dist-info/RECORD,,
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