ert 19.0.0rc2__py3-none-any.whl → 19.0.0rc3__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.
@@ -1,5 +1,4 @@
1
1
  import os
2
- from collections import Counter
3
2
  from collections.abc import Sequence
4
3
  from dataclasses import dataclass
5
4
  from enum import StrEnum
@@ -324,25 +323,9 @@ def make_observations(
324
323
  if error_list:
325
324
  raise ObservationConfigError.from_collected(error_list)
326
325
 
327
- _validate_unique_names(result)
328
326
  return result
329
327
 
330
328
 
331
- def _validate_unique_names(
332
- observations: Sequence[Observation],
333
- ) -> None:
334
- names_counter = Counter(d.name for d in observations)
335
- duplicate_names = [n for n, c in names_counter.items() if c > 1]
336
- errors = [
337
- ErrorInfo(
338
- f"Duplicate observation name {n}",
339
- ).set_context(n)
340
- for n in duplicate_names
341
- ]
342
- if errors:
343
- raise ObservationConfigError.from_collected(errors)
344
-
345
-
346
329
  def _validate_segment_dict(name_token: str, inp: dict[str, Any]) -> Segment:
347
330
  start = None
348
331
  stop = None
ert/config/ert_config.py CHANGED
@@ -688,6 +688,14 @@ def log_observation_keys(
688
688
  if key not in {"name", "type"}
689
689
  )
690
690
 
691
+ if "HISTORY_OBSERVATION" in observation_type_counts:
692
+ msg = (
693
+ "HISTORY_OBSERVATION is deprecated and will be removed. "
694
+ "Please use SUMMARY_OBSERVATION instead."
695
+ )
696
+ ConfigWarning.warn(msg)
697
+ logger.warning(msg)
698
+
691
699
  logger.info(
692
700
  f"Count of observation types:\n\t{dict(observation_type_counts)}\n"
693
701
  f"Count of observation keywords:\n\t{dict(observation_keyword_counts)}"
@@ -84,6 +84,7 @@ async def get_observations_for_response(
84
84
  ensemble.experiment,
85
85
  obs_keys,
86
86
  json.loads(filter_on) if filter_on is not None else None,
87
+ requested_response_type=response_type,
87
88
  )
88
89
  if not obss:
89
90
  return []
@@ -107,10 +108,17 @@ def _get_observations(
107
108
  experiment: Experiment,
108
109
  observation_keys: list[str] | None = None,
109
110
  filter_on: dict[str, Any] | None = None,
111
+ requested_response_type: str | None = None,
110
112
  ) -> list[dict[str, Any]]:
111
113
  observations = []
112
114
 
113
- for response_type, df in experiment.observations.items():
115
+ for stored_response_type, df in experiment.observations.items():
116
+ if (
117
+ requested_response_type is not None
118
+ and stored_response_type != requested_response_type
119
+ ):
120
+ continue
121
+
114
122
  if observation_keys is not None:
115
123
  df = df.filter(pl.col("observation_key").is_in(observation_keys))
116
124
 
@@ -127,7 +135,7 @@ def _get_observations(
127
135
  if df.is_empty():
128
136
  continue
129
137
 
130
- x_axis_fn = response_to_pandas_x_axis_fns[response_type]
138
+ x_axis_fn = response_to_pandas_x_axis_fns[stored_response_type]
131
139
  df = df.rename(
132
140
  {
133
141
  "observation_key": "name",
@@ -223,9 +223,12 @@ class _EnsembleWidget(QWidget):
223
223
  return
224
224
 
225
225
  observation_key = selected.data(1, Qt.ItemDataRole.DisplayRole)
226
- if not observation_key:
226
+ parent = selected.parent()
227
+
228
+ if not observation_key or not parent:
227
229
  return
228
230
 
231
+ response_type = parent.data(0, Qt.ItemDataRole.UserRole)
229
232
  observation_label = selected.data(0, Qt.ItemDataRole.DisplayRole)
230
233
  assert self._ensemble is not None
231
234
  observations_dict = self._ensemble.experiment.observations
@@ -235,17 +238,7 @@ class _EnsembleWidget(QWidget):
235
238
  ax.set_title(observation_key)
236
239
  ax.grid(True)
237
240
 
238
- response_type, obs_for_type = next(
239
- (
240
- (response_type, df)
241
- for response_type, df in observations_dict.items()
242
- if observation_key in df["observation_key"]
243
- ),
244
- (None, None),
245
- )
246
-
247
- assert response_type is not None
248
- assert obs_for_type is not None
241
+ obs_for_type = observations_dict[response_type]
249
242
 
250
243
  response_config = self._ensemble.experiment.response_configuration[
251
244
  response_type
@@ -377,14 +370,23 @@ class _EnsembleWidget(QWidget):
377
370
  .to_numpy()
378
371
  ):
379
372
  match_list = self._observations_tree_widget.findItems(
380
- response_key, Qt.MatchFlag.MatchExactly
373
+ response_key, Qt.MatchFlag.MatchExactly, 0
381
374
  )
382
- if len(match_list) == 0:
375
+
376
+ root = next(
377
+ (
378
+ item
379
+ for item in match_list
380
+ if item.data(0, Qt.ItemDataRole.UserRole) == response_type
381
+ ),
382
+ None,
383
+ )
384
+
385
+ if root is None:
383
386
  root = QTreeWidgetItem(
384
387
  self._observations_tree_widget, [response_key]
385
388
  )
386
- else:
387
- root = match_list[0]
389
+ root.setData(0, Qt.ItemDataRole.UserRole, response_type)
388
390
 
389
391
  obs_ds = obs_ds_for_type.filter(
390
392
  pl.col("observation_key").eq(obs_key)
@@ -400,9 +402,7 @@ class _EnsembleWidget(QWidget):
400
402
  ],
401
403
  )
402
404
 
403
- self._observations_tree_widget.sortItems(
404
- 0, Qt.SortOrder.AscendingOrder
405
- )
405
+ self._observations_tree_widget.sortItems(0, Qt.SortOrder.AscendingOrder)
406
406
 
407
407
  for i in range(self._observations_tree_widget.topLevelItemCount()):
408
408
  item = self._observations_tree_widget.topLevelItem(i)
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 = '19.0.0rc2'
32
- __version_tuple__ = version_tuple = (19, 0, 0, 'rc2')
31
+ __version__ = version = '19.0.0rc3'
32
+ __version_tuple__ = version_tuple = (19, 0, 0, 'rc3')
33
33
 
34
- __commit_id__ = commit_id = 'g0135983dc'
34
+ __commit_id__ = commit_id = 'g40bbd3ce0'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ert
3
- Version: 19.0.0rc2
3
+ Version: 19.0.0rc3
4
4
  Summary: Ensemble based Reservoir Tool (ERT)
5
5
  Author-email: Equinor ASA <fg_sib-scout@equinor.com>
6
6
  License-Expression: GPL-3.0-only
@@ -45,7 +45,7 @@ ert/config/__init__.py,sha256=RVLt_v8nF9xjG51smLK9OXZT6yAH5KEmSgnFYYvVogU,4310
45
45
  ert/config/_create_observation_dataframes.py,sha256=P-cyJlushUR4Em58rRAsmK3jw3PoYhbqsT5qsHrpL7c,19717
46
46
  ert/config/_design_matrix_validator.py,sha256=_eEk07L4c7sv8WwTYYGHc_rT1HEOZDqLrgla0r9rpj0,1308
47
47
  ert/config/_get_num_cpu.py,sha256=IXOEHkGJEz7kEOysc29q-jpaXqbWeu-Y4FlQvGp0ryM,7684
48
- ert/config/_observations.py,sha256=EUWQCEMqEpJgmQYvGrvyOIF25nu6w566XV-vw7QPqjU,14814
48
+ ert/config/_observations.py,sha256=wByDMhvJau9iqimyVPcfY10ALlVJFP7nKoaMyON2r1A,14318
49
49
  ert/config/_read_summary.py,sha256=_1f6iZV2tBDRtPn5C_29cyjN7suA5hh1HnLKyF9L4jY,7500
50
50
  ert/config/_str_to_bool.py,sha256=AxNCJAuTtKF-562CRh7HgjQIyM7N-jjSlRJKvpCNk9I,852
51
51
  ert/config/analysis_config.py,sha256=v-ZppIlP_NkmhtuYuxm31m2V3eA7YjvC3rDsMXm5qPk,8646
@@ -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=rzpO-U8c2ptsj1KlfUw6n_CRaj-e1cvzVvasR0t5sZI,12728
56
56
  ert/config/ensemble_config.py,sha256=b0KuQ_y85kr4AOPPX_qieYKgnDGZ4_87bSjYpVZuOlM,7322
57
- ert/config/ert_config.py,sha256=_UXsCXU_aV_IBqfQEuDGOT9ylopjpWrThDaYVwIWweA,57147
57
+ ert/config/ert_config.py,sha256=jLiqGYLA-lBlnHoh6tmWa1kZE6LT11gwoSZD-eLEYCs,57415
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_control.py,sha256=-bwFEb_GpdodQ3N_BscQdcKatMlWBs8UVSCDURV8Q3s,8072
@@ -122,7 +122,7 @@ ert/dark_storage/endpoints/__init__.py,sha256=o093-GLgw8br7PDKhHna0LviXeJQdC5P1R
122
122
  ert/dark_storage/endpoints/ensembles.py,sha256=22M358HTAjiNuKaRYp9FZ3SZvkWL3v9wMDD0DGwLF8M,1363
123
123
  ert/dark_storage/endpoints/experiment_server.py,sha256=snaCwRXayGn6_SIqH49Qmi4u1ZILiH2ynFZL6L4YsxQ,14118
124
124
  ert/dark_storage/endpoints/experiments.py,sha256=_tY95HzW6ibJy7N9C-1XICFHSOrKdz4vM3bv7ePRvY8,3413
125
- ert/dark_storage/endpoints/observations.py,sha256=EpetZi7cjlrexfU9VPdiTJV1PT6k0ZNx366WGlfKZM4,4574
125
+ ert/dark_storage/endpoints/observations.py,sha256=gnww5S1B9G8vAw7AwcR1fgW_vFgyf5WlU1gOSUXW1i4,4841
126
126
  ert/dark_storage/endpoints/parameters.py,sha256=LERil7H-L3ZsPGGFm97kvy3XeIqpceyBe5aSFLkSVEY,4406
127
127
  ert/dark_storage/endpoints/responses.py,sha256=tFEdgqP1vcOuRPmr4YpE9okEpxowXMoYjYdUq2wljZ8,6195
128
128
  ert/dark_storage/endpoints/updates.py,sha256=BWEh2XUTqdsPPEtiSE8bJtXcFVzw-GlbKIK3vvc_Cu8,142
@@ -263,7 +263,7 @@ ert/gui/tools/load_results/load_results_tool.py,sha256=deP__dGX8z5iycPMYv3cYyOta
263
263
  ert/gui/tools/manage_experiments/__init__.py,sha256=MAB41GPqlpALPYRvFFpKCcr2Sz3cya7Grd88jLxUj2A,99
264
264
  ert/gui/tools/manage_experiments/export_dialog.py,sha256=tWtttCLqr4T0HK9uEtM8JUubBLvytn_A2cZRZBvJ1AI,4485
265
265
  ert/gui/tools/manage_experiments/manage_experiments_panel.py,sha256=EUGOo68g8E9f4oG3K4MFRCu8a7rm7ojOF6jUvz_dqic,5680
266
- ert/gui/tools/manage_experiments/storage_info_widget.py,sha256=UBlnF8sqCTliV-FeNILBBKtwXJGY3PjPIaaM8xAptFM,19861
266
+ ert/gui/tools/manage_experiments/storage_info_widget.py,sha256=J3Xm59mQ6VIYTrwCkhKzZqojrBtncxgEI_f_nLfbFF4,19940
267
267
  ert/gui/tools/manage_experiments/storage_model.py,sha256=wf5JPqvbFWLI9ZcVTc4gpZh3hUPDNwOxRdbdcRtjKCc,6802
268
268
  ert/gui/tools/manage_experiments/storage_widget.py,sha256=pe5mWOgw-uNGXaZYhl1JsF5--Krz1W4n3Ut4sRcx6uc,6692
269
269
  ert/gui/tools/plot/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -397,7 +397,7 @@ ert/services/ert_server.py,sha256=qIzqugIHcxwKuzjkItiMt3jah3hNI7x3NQ3p_WBBf_o,10
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=Wp9Qyd5wWNHPU0Myh1GCbUONu0a-akYEdJ07MjQJt4I,6130
400
- ert/shared/version.py,sha256=a08nnfTcfo2JoiO9C_qp7fS-7EAD96k6QDqcATgTKd4,724
400
+ ert/shared/version.py,sha256=l535qCMHPX_OouidXmZZfWhYSl0-tdcRVCWcfczt7-0,724
401
401
  ert/shared/_doc_utils/__init__.py,sha256=09KMJxjza26BXouUy6yJmMiSuYFGSI6c8nZ-1_qXh90,995
402
402
  ert/shared/_doc_utils/ert_jobs.py,sha256=uHP8ozhKwCHG6BkyhAgCGoy59JEFb102pHKot-5ZEys,8054
403
403
  ert/shared/_doc_utils/everest_jobs.py,sha256=uBDN7tIwlBJIZVZ6ZFL1tkewEJJGDLoeVrFIIrJznvM,2081
@@ -453,7 +453,7 @@ ert/validation/validation_status.py,sha256=f47_B7aS-9DEh6uaVzKxD97pXienkyTVVCqTy
453
453
  ert/warnings/__init__.py,sha256=IBwQVkdD7Njaad9PAB-9K-kr15wnA4EBKboxyqgu9NA,214
454
454
  ert/warnings/_warnings.py,sha256=7qhNZ0W4nnljzoOx6AXX7VlMv5pa34Ek5M5n1Ep0Kak,189
455
455
  ert/warnings/specific_warning_handler.py,sha256=5dVXtOhzcMmtPBGx4AOddXNPfzTFOPA7RVtdH8hLv68,932
456
- ert-19.0.0rc2.dist-info/licenses/COPYING,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
456
+ ert-19.0.0rc3.dist-info/licenses/COPYING,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
457
457
  everest/__init__.py,sha256=8_f50f6H3-onqaiuNCwC0Eiotdl9JuTxhwyF_54MVvU,306
458
458
  everest/config_file_loader.py,sha256=rOHYvB4ayB2MaKdaAynvJVtbCOqi_z25EdwEqJ02-DQ,5675
459
459
  everest/everest_storage.py,sha256=c3sgU7-3BDSRXxJfCR_4F58rWEaoII1wygz6VvM-GGI,42025
@@ -517,8 +517,8 @@ everest/templates/well_drill.tmpl,sha256=9iLexmBHMsMQNXyyRK4GlmVuVpVIxRcCHpy1av5
517
517
  everest/templates/well_order.tmpl,sha256=XJ1eVRkeyTdLu5sLsltJSSK6BDLN7rFOAqLdM3ZZy3w,75
518
518
  everest/util/__init__.py,sha256=xEYLz6pUtgkH8VHer1RfoCwKiO70dBnuhHonsOPaOx0,1359
519
519
  everest/util/forward_models.py,sha256=JPxHhLI6TrmQJwW50wwGBmw57TfRd8SG2svYhXFHrc8,1617
520
- ert-19.0.0rc2.dist-info/METADATA,sha256=QR91Z6CbWwTQrNCHBDThQE71MzA8wXXFkUS9Fct4eJ0,10015
521
- ert-19.0.0rc2.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
522
- ert-19.0.0rc2.dist-info/entry_points.txt,sha256=ChZ7vn8Qy9v9rT8GM2JtAvWDN3NVoy4BIcvVRtU73CM,189
523
- ert-19.0.0rc2.dist-info/top_level.txt,sha256=LRh9GfdfyDWfAGmrQgp_XdoMHA4v6aotw8xgsy5YyHE,17
524
- ert-19.0.0rc2.dist-info/RECORD,,
520
+ ert-19.0.0rc3.dist-info/METADATA,sha256=SRYfiXI2kEriVA505ALyGhUxZSM7zaUzkO4BnCdBwoY,10015
521
+ ert-19.0.0rc3.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
522
+ ert-19.0.0rc3.dist-info/entry_points.txt,sha256=ChZ7vn8Qy9v9rT8GM2JtAvWDN3NVoy4BIcvVRtU73CM,189
523
+ ert-19.0.0rc3.dist-info/top_level.txt,sha256=LRh9GfdfyDWfAGmrQgp_XdoMHA4v6aotw8xgsy5YyHE,17
524
+ ert-19.0.0rc3.dist-info/RECORD,,