Skip to content

Commit fe61fd2

Browse files
committed
Remove derived_response from storage
All responses are now considered equal in the eyes of storage and general operations.
1 parent b2df1c2 commit fe61fd2

35 files changed

Lines changed: 257 additions & 115 deletions

File tree

src/ert/config/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
)
3232
from .gen_data_config import GenDataConfig
3333
from .gen_kw_config import DataSource, GenKwConfig, PriorDict
34-
from .known_derived_response_types import KnownDerivedResponseTypes
3534
from .known_response_types import KnownResponseTypes
3635
from .lint_file import lint_file
3736
from .model_config import ModelConfig
@@ -121,7 +120,6 @@
121120
"HookedWorkflowFixtures",
122121
"InvalidResponseFile",
123122
"InversionTypeES",
124-
"KnownDerivedResponseTypes",
125123
"KnownQueueOptions",
126124
"KnownQueueOptionsAdapter",
127125
"KnownResponseTypes",

src/ert/config/ensemble_config.py

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,30 +7,23 @@
77

88
from pydantic import BaseModel, Field, model_validator
99

10-
from .breakthrough_config import BreakthroughConfig
1110
from .everest_control import EverestControl
1211
from .field import Field as FieldConfig
1312
from .gen_kw_config import GenKwConfig
14-
from .known_derived_response_types import KnownDerivedResponseTypes
1513
from .known_response_types import (
1614
KNOWN_ERT_SIMULATION_RESPONSE_TYPES,
17-
KnownErtSimulationResponseTypes,
15+
KnownErtResponseTypes,
1816
)
1917
from .parameter_config import ParameterConfig
2018
from .parsing import ConfigDict, ConfigKeys, ConfigValidationError
21-
from .response_config import SimulationResponseConfig
19+
from .response_config import ResponseConfig
2220
from .surface_config import SurfaceConfig
2321

2422
logger = logging.getLogger(__name__)
2523

2624

2725
class EnsembleConfig(BaseModel):
28-
response_configs: dict[str, KnownErtSimulationResponseTypes] = Field(
29-
default_factory=dict
30-
)
31-
derived_response_configs: dict[str, KnownDerivedResponseTypes] = Field(
32-
default_factory=dict
33-
)
26+
response_configs: dict[str, KnownErtResponseTypes] = Field(default_factory=dict)
3427
parameter_configs: dict[
3528
str, GenKwConfig | FieldConfig | SurfaceConfig | EverestControl
3629
] = Field(default_factory=dict)
@@ -137,7 +130,7 @@ def make_field(field_list: list[str | dict[str, str]]) -> FieldConfig:
137130
+ [make_field(f) for f in field_list]
138131
)
139132
EnsembleConfig._check_for_duplicate_gen_kw_param_names(gen_kw_cfgs)
140-
response_configs: list[KnownErtSimulationResponseTypes] = []
133+
response_configs: list[KnownErtResponseTypes] = []
141134

142135
for config_cls in KNOWN_ERT_SIMULATION_RESPONSE_TYPES:
143136
instance = config_cls.from_config_dict(config_dict)
@@ -152,7 +145,7 @@ def make_field(field_list: list[str | dict[str, str]]) -> FieldConfig:
152145
},
153146
)
154147

155-
def __getitem__(self, key: str) -> ParameterConfig | SimulationResponseConfig:
148+
def __getitem__(self, key: str) -> ParameterConfig | ResponseConfig:
156149
if key in self.parameter_configs:
157150
return self.parameter_configs[key]
158151
if key in self.response_configs:
@@ -202,9 +195,5 @@ def parameter_configuration(self) -> list[ParameterConfig]:
202195
return list(self.parameter_configs.values())
203196

204197
@property
205-
def response_configuration(self) -> list[SimulationResponseConfig]:
198+
def response_configuration(self) -> list[ResponseConfig]:
206199
return list(self.response_configs.values())
207-
208-
@property
209-
def derived_response_configuration(self) -> list[BreakthroughConfig]:
210-
return list(self.derived_response_configs.values())

src/ert/config/ert_config.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1287,14 +1287,12 @@ def derive_breakthrough_response_input_from_observations(self) -> None:
12871287

12881288
bt_obs = [o for o in observations if isinstance(o, BreakthroughObservation)]
12891289

1290-
if "breakthrough" not in ensemble_config.derived_response_configs and bt_obs:
1291-
ensemble_config.derived_response_configs["breakthrough"] = (
1292-
BreakthroughConfig(
1293-
keys=[f"BREAKTHROUGH:{o.key}" for o in bt_obs],
1294-
summary_keys=[o.key for o in bt_obs],
1295-
thresholds=[o.threshold for o in bt_obs],
1296-
observed_dates=[o.date for o in bt_obs],
1297-
)
1290+
if "breakthrough" not in ensemble_config.response_configs and bt_obs:
1291+
ensemble_config.response_configs["breakthrough"] = BreakthroughConfig(
1292+
keys=[f"BREAKTHROUGH:{o.key}" for o in bt_obs],
1293+
summary_keys=[o.key for o in bt_obs],
1294+
thresholds=[o.threshold for o in bt_obs],
1295+
observed_dates=[o.date for o in bt_obs],
12981296
)
12991297

13001298
@classmethod

src/ert/config/known_derived_response_types.py

Lines changed: 0 additions & 4 deletions
This file was deleted.
Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from ert.config.seismic_config import SeismicConfig
22

3+
from .breakthrough_config import BreakthroughConfig
34
from .everest_response import EverestConstraintsConfig, EverestObjectivesConfig
45
from .gen_data_config import GenDataConfig
56
from .rft_config import RFTConfig
@@ -8,12 +9,18 @@
89
KnownErtSimulationResponseTypes = (
910
SummaryConfig | GenDataConfig | RFTConfig | SeismicConfig
1011
)
12+
KnownErtDerivedResponseTypes = BreakthroughConfig
13+
KnownErtResponseTypes = KnownErtSimulationResponseTypes | KnownErtDerivedResponseTypes
1114
KNOWN_ERT_SIMULATION_RESPONSE_TYPES = (
1215
SummaryConfig,
1316
GenDataConfig,
1417
RFTConfig,
1518
SeismicConfig,
1619
)
20+
KNOWN_ERT_DERIVED_RESPONSE_TYPES = (BreakthroughConfig,)
21+
KNOWN_ERT_RESPONSE_TYPES = (
22+
KNOWN_ERT_SIMULATION_RESPONSE_TYPES + KNOWN_ERT_DERIVED_RESPONSE_TYPES
23+
)
1724
KnownResponseTypes = (
18-
KnownErtSimulationResponseTypes | EverestConstraintsConfig | EverestObjectivesConfig
25+
KnownErtResponseTypes | EverestConstraintsConfig | EverestObjectivesConfig
1926
)

src/ert/dark_storage/endpoints/experiments.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,7 @@ def get_experiments(
3232
},
3333
responses={
3434
response_type: config.model_dump()
35-
for response_type, config in experiment.simulation_response_configuration.items() # noqa: E501
36-
},
37-
derived_responses={
38-
response_type: config.model_dump()
39-
for response_type, config in experiment.derived_response_configuration.items() # noqa: E501
35+
for response_type, config in experiment.response_configuration.items()
4036
},
4137
observations=experiment.response_key_to_observation_key,
4238
)

src/ert/dark_storage/json_schema/experiment.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,4 @@ class ExperimentOut(_Experiment):
2525
userdata: Mapping[str, Any]
2626
parameters: Mapping[str, dict[str, Any]]
2727
responses: Mapping[str, dict[str, Any]]
28-
derived_responses: Mapping[str, dict[str, Any]]
2928
observations: Mapping[str, dict[str, list[str]]]

src/ert/gui/plotting/plot_api.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@
1818
from resfo_utilities import history_key
1919

2020
from ert.config import ParameterConfig
21-
from ert.config.known_derived_response_types import KnownDerivedResponseTypes
22-
from ert.config.known_response_types import KnownResponseTypes
21+
from ert.config.known_response_types import (
22+
KnownResponseTypes,
23+
)
2324
from ert.config.response_config import ResponseConfig
2425
from ert.services import create_ertserver_client
2526
from ert.storage.local_experiment import _parameters_adapter as parameter_config_adapter
@@ -189,10 +190,8 @@ def update_keydef(plot_key_def: PlotApiKeyDefinition) -> None:
189190
key_defs[plot_key_def.key] = plot_key_def
190191

191192
for experiment in http_response.json():
192-
for response_type, metadata in (
193-
experiment["responses"] | experiment["derived_responses"]
194-
).items():
195-
response_config: KnownResponseTypes | KnownDerivedResponseTypes = (
193+
for response_type, metadata in experiment["responses"].items():
194+
response_config: KnownResponseTypes = (
196195
response_config_adapter.validate_python(metadata)
197196
)
198197
keys = response_config.response_keys()

src/ert/run_models/model_factory.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,6 @@ def _setup_single_test_run(
152152
design_matrix=design_matrix,
153153
parameter_configuration=parameter_configs,
154154
response_configuration=config.ensemble_config.response_configuration,
155-
derived_response_configuration=config.ensemble_config.derived_response_configuration,
156155
ert_templates=config.ert_templates,
157156
user_config_file=Path(config.user_config_file),
158157
env_vars=config.env_vars,
@@ -213,7 +212,6 @@ def _setup_ensemble_experiment(
213212
design_matrix=design_matrix,
214213
parameter_configuration=parameter_configs,
215214
response_configuration=config.ensemble_config.response_configuration,
216-
derived_response_configuration=config.ensemble_config.derived_response_configuration,
217215
ert_templates=config.ert_templates,
218216
user_config_file=Path(config.user_config_file),
219217
env_vars=config.env_vars,
@@ -349,7 +347,6 @@ def _setup_manual_update_enif(
349347
design_matrix=config.analysis_config.design_matrix,
350348
parameter_configuration=config.ensemble_config.parameter_configuration,
351349
response_configuration=config.ensemble_config.response_configuration,
352-
derived_response_configuration=config.ensemble_config.derived_response_configuration,
353350
ert_templates=config.ert_templates,
354351
user_config_file=Path(config.user_config_file),
355352
env_vars=config.env_vars,
@@ -397,7 +394,6 @@ def _setup_ensemble_smoother(
397394
design_matrix=design_matrix,
398395
parameter_configuration=parameter_configs,
399396
response_configuration=config.ensemble_config.response_configuration,
400-
derived_response_configuration=config.ensemble_config.derived_response_configuration,
401397
ert_templates=config.ert_templates,
402398
user_config_file=Path(config.user_config_file),
403399
env_vars=config.env_vars,
@@ -445,7 +441,6 @@ def _setup_ensemble_information_filter(
445441
design_matrix=design_matrix,
446442
parameter_configuration=parameter_configs,
447443
response_configuration=config.ensemble_config.response_configuration,
448-
derived_response_configuration=config.ensemble_config.derived_response_configuration,
449444
ert_templates=config.ert_templates,
450445
user_config_file=Path(config.user_config_file),
451446
env_vars=config.env_vars,
@@ -519,7 +514,6 @@ def _setup_multiple_data_assimilation(
519514
design_matrix=design_matrix,
520515
parameter_configuration=parameter_configs,
521516
response_configuration=config.ensemble_config.response_configuration,
522-
derived_response_configuration=config.ensemble_config.derived_response_configuration,
523517
ert_templates=config.ert_templates,
524518
user_config_file=Path(config.user_config_file),
525519
env_vars=config.env_vars,

src/ert/run_models/run_model_configs.py

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
GenDataConfig,
2020
GenKwConfig,
2121
HookRuntime,
22-
KnownDerivedResponseTypes,
2322
KnownResponseTypes,
2423
ModelConfig,
2524
Observation,
@@ -153,12 +152,6 @@ class InitialEnsembleRunModelConfig(RunModelConfig):
153152
Field(discriminator="type"),
154153
]
155154
]
156-
derived_response_configuration: list[
157-
Annotated[
158-
(KnownDerivedResponseTypes),
159-
Field(discriminator="type"),
160-
]
161-
]
162155
ert_templates: list[tuple[str, str]]
163156
observations: list[Observation] | None = None
164157
shape_registry: ShapeRegistry | None = None
@@ -172,10 +165,6 @@ def _initial_ensemble_experiment_config(self) -> ExperimentConfig:
172165
"response_configuration": [
173166
resp.model_dump(mode="json") for resp in self.response_configuration
174167
],
175-
"derived_response_configuration": [
176-
resp.model_dump(mode="json")
177-
for resp in self.derived_response_configuration
178-
],
179168
"experiment_name": self.experiment_name,
180169
}
181170

@@ -321,9 +310,6 @@ def to_experiment_config(
321310
"response_configuration": prior_experiment_config.get(
322311
"response_configuration", []
323312
),
324-
"derived_response_configuration": prior_experiment_config.get(
325-
"derived_response_configuration", []
326-
),
327313
"observations": prior_experiment_config.get("observations", []),
328314
**self._common_fields(),
329315
"experiment_type": ExperimentType.MANUAL_UPDATE,

0 commit comments

Comments
 (0)