diff --git a/src/ert/config/ert_config.py b/src/ert/config/ert_config.py index 47b3c91fc69..d440ac04d1b 100644 --- a/src/ert/config/ert_config.py +++ b/src/ert/config/ert_config.py @@ -27,7 +27,7 @@ from typing_extensions import Self from ert.plugins import ErtPluginManager -from ert.substitution_list import SubstitutionList +from ert.substitutions import Substitutions from ._get_num_cpu import get_num_cpu_from_data_file from .analysis_config import AnalysisConfig @@ -89,7 +89,7 @@ class ErtConfig: DEFAULT_RUNPATH_FILE: ClassVar[str] = ".ert_runpath_list" PREINSTALLED_FORWARD_MODEL_STEPS: ClassVar[Dict[str, ForwardModelStep]] = {} - substitution_list: SubstitutionList = field(default_factory=SubstitutionList) + substitutions: Substitutions = field(default_factory=Substitutions) ensemble_config: EnsembleConfig = field(default_factory=EnsembleConfig) ens_path: str = DEFAULT_ENSPATH env_vars: Dict[str, str] = field(default_factory=dict) @@ -233,13 +233,13 @@ def from_file_contents( @classmethod def from_dict(cls, config_dict) -> Self: - substitution_list = _substitution_list_from_dict(config_dict) + substitutions = _substitutions_from_dict(config_dict) runpath_file = config_dict.get( ConfigKeys.RUNPATH_FILE, ErtConfig.DEFAULT_RUNPATH_FILE ) - substitution_list[""] = runpath_file - config_dir = substitution_list.get("", "") - config_file = substitution_list.get("", "no_config") + substitutions[""] = runpath_file + config_dir = substitutions.get("", "") + config_file = substitutions.get("", "no_config") config_file_path = path.join(config_dir, config_file) errors = cls._validate_dict(config_dict, config_file) @@ -257,9 +257,9 @@ def from_dict(cls, config_dict) -> Self: model_config = ModelConfig.from_dict(config_dict) runpath = model_config.runpath_format_string eclbase = model_config.eclbase_format_string - substitution_list[""] = runpath - substitution_list[""] = eclbase - substitution_list[""] = eclbase + substitutions[""] = runpath + substitutions[""] = eclbase + substitutions[""] = eclbase except ConfigValidationError as e: errors.append(e) except PydanticValidationError as err: @@ -270,7 +270,7 @@ def from_dict(cls, config_dict) -> Self: try: workflow_jobs, workflows, hooked_workflows = cls._workflows_from_dict( - config_dict, substitution_list + config_dict, substitutions ) except ConfigValidationError as e: errors.append(e) @@ -340,7 +340,7 @@ def from_dict(cls, config_dict) -> Self: env_vars[key] = val return cls( - substitution_list=substitution_list, + substitutions=substitutions, ensemble_config=ensemble_config, ens_path=config_dict.get(ConfigKeys.ENSPATH, ErtConfig.DEFAULT_ENSPATH), env_vars=env_vars, @@ -355,7 +355,7 @@ def from_dict(cls, config_dict) -> Self: installed_forward_model_steps=installed_forward_model_steps, forward_model_steps=cls._create_list_of_forward_model_steps_to_run( installed_forward_model_steps, - substitution_list, + substitutions, config_dict, ), model_config=model_config, @@ -551,7 +551,7 @@ def _validate_dict( def _create_list_of_forward_model_steps_to_run( cls, installed_steps: Dict[str, ForwardModelStep], - substitution_list: SubstitutionList, + substitutions: Substitutions, config_dict, ) -> List[ForwardModelStep]: errors = [] @@ -562,7 +562,7 @@ def _create_list_of_forward_model_steps_to_run( else: unsubstituted_step_name = fm_step_description[0] args = [] - fm_step_name = substitution_list.substitute(unsubstituted_step_name) + fm_step_name = substitutions.substitute(unsubstituted_step_name) try: fm_step = copy.deepcopy(installed_steps[fm_step_name]) @@ -577,7 +577,7 @@ def _create_list_of_forward_model_steps_to_run( ) ) continue - fm_step.private_args = SubstitutionList() + fm_step.private_args = Substitutions() for key, val in args: fm_step.private_args[key] = val @@ -617,7 +617,7 @@ def _create_list_of_forward_model_steps_to_run( try: substituted_json = cls._create_forward_model_json( run_id=None, - context=substitution_list, + context=substitutions, forward_model_steps=[fm_step], skip_pre_experiment_validation=True, ) @@ -654,7 +654,7 @@ def forward_model_data_to_json( if context_env is not None: self.env_vars.update(context_env) return self._create_forward_model_json( - context=self.substitution_list, + context=self.substitutions, forward_model_steps=self.forward_model_steps, user_config_file=self.user_config_file, env_vars=self.env_vars, @@ -666,7 +666,7 @@ def forward_model_data_to_json( @classmethod def _create_forward_model_json( cls, - context: SubstitutionList, + context: Substitutions, forward_model_steps: List[ForwardModelStep], run_id: Optional[str], iens: int = 0, @@ -688,7 +688,7 @@ def __init__(self, fm_step): f"parsing forward model step `FORWARD_MODEL {fm_step_description}` - " "reconstructed, with defines applied during parsing" ) - self.copy_private_args = SubstitutionList() + self.copy_private_args = Substitutions() for key, val in fm_step.private_args.items(): self.copy_private_args[key] = context.substitute_real_iter( val, iens, itr @@ -805,7 +805,7 @@ def handle_default(fm_step: ForwardModelStep, arg: str) -> str: def _workflows_from_dict( cls, content_dict, - substitution_list, + substitutions, ): workflow_job_info = content_dict.get(ConfigKeys.LOAD_WORKFLOW_JOB, []) workflow_job_dir_info = content_dict.get(ConfigKeys.WORKFLOW_JOB_DIRECTORY, []) @@ -875,7 +875,7 @@ def _workflows_from_dict( existed = filename in workflows workflow = Workflow.from_file( work[0], - substitution_list, + substitutions, workflow_jobs, ) for job, args in workflow: @@ -967,7 +967,7 @@ def _installed_forward_model_steps_from_dict( @property def preferred_num_cpu(self) -> int: - return int(self.substitution_list.get(f"<{ConfigKeys.NUM_CPU}>", 1)) + return int(self.substitutions.get(f"<{ConfigKeys.NUM_CPU}>", 1)) def _create_observations( self, @@ -1057,8 +1057,8 @@ def _get_files_in_directory(job_path, errors): return files -def _substitution_list_from_dict(config_dict) -> SubstitutionList: - subst_list = SubstitutionList() +def _substitutions_from_dict(config_dict) -> Substitutions: + subst_list = Substitutions() for key, val in config_dict.get("DEFINE", []): subst_list[key] = val diff --git a/src/ert/config/forward_model_step.py b/src/ert/config/forward_model_step.py index 9ea4b8232cb..8e5026e7805 100644 --- a/src/ert/config/forward_model_step.py +++ b/src/ert/config/forward_model_step.py @@ -14,7 +14,7 @@ from typing_extensions import NotRequired, Unpack from ert.config.parsing.config_errors import ConfigWarning -from ert.substitution_list import SubstitutionList +from ert.substitutions import Substitutions from .parsing import ( SchemaItemType, @@ -164,7 +164,7 @@ class ForwardModelStep: environment: dict[str, Union[int, str]] = field(default_factory=dict) exec_env: dict[str, Union[int, str]] = field(default_factory=dict) default_mapping: dict[str, Union[int, str]] = field(default_factory=dict) - private_args: SubstitutionList = field(default_factory=SubstitutionList) + private_args: Substitutions = field(default_factory=Substitutions) default_env: ClassVar[dict[str, str]] = { "_ERT_ITERATION_NUMBER": "", @@ -251,7 +251,7 @@ def __init__( environment=environment, exec_env=exec_env, default_mapping=default_mapping, - private_args=SubstitutionList(), + private_args=Substitutions(), ) @staticmethod diff --git a/src/ert/config/workflow.py b/src/ert/config/workflow.py index 7da7d7c5aed..9016401a8b9 100644 --- a/src/ert/config/workflow.py +++ b/src/ert/config/workflow.py @@ -6,7 +6,7 @@ from .parsing import ConfigValidationError, ErrorInfo, init_workflow_schema, parse if TYPE_CHECKING: - from ert.substitution_list import SubstitutionList + from ert.substitutions import Substitutions from .workflow_job import WorkflowJob @@ -89,7 +89,7 @@ def _parse_command_list( def from_file( cls, src_file: str, - context: Optional[SubstitutionList], + context: Optional[Substitutions], job_dict: Dict[str, WorkflowJob], ) -> "Workflow": if not os.path.exists(src_file): diff --git a/src/ert/enkf_main.py b/src/ert/enkf_main.py index b139c294146..c2fd4d3bbcf 100644 --- a/src/ert/enkf_main.py +++ b/src/ert/enkf_main.py @@ -190,14 +190,14 @@ def create_run_path( if context_env is None: context_env = {} t = time.perf_counter() - substitution_list = ert_config.substitution_list + substitutions = ert_config.substitutions runpaths.set_ert_ensemble(ensemble.name) for run_arg in run_args: run_path = Path(run_arg.runpath) if run_arg.active: run_path.mkdir(parents=True, exist_ok=True) for source_file, target_file in ert_config.ert_templates: - target_file = substitution_list.substitute_real_iter( + target_file = substitutions.substitute_real_iter( target_file, run_arg.iens, ensemble.iteration ) try: @@ -207,7 +207,7 @@ def create_run_path( f"Unsupported non UTF-8 character found in file: {source_file}" ) from e - result = substitution_list.substitute_real_iter( + result = substitutions.substitute_real_iter( file_content, run_arg.iens, ensemble.iteration, diff --git a/src/ert/gui/tools/export/export_panel.py b/src/ert/gui/tools/export/export_panel.py index 442c78dbacd..71638fa76a7 100644 --- a/src/ert/gui/tools/export/export_panel.py +++ b/src/ert/gui/tools/export/export_panel.py @@ -28,7 +28,7 @@ def __init__( description = "The CSV export requires some information before it starts:" super().__init__("export", description, parent) - subs_list = ert_config.substitution_list + subs_list = ert_config.substitutions default_csv_output_path = subs_list.get("", "output.csv") self.output_path_model = PathModel(default_csv_output_path) output_path_chooser = PathChooser(self.output_path_model) diff --git a/src/ert/libres_facade.py b/src/ert/libres_facade.py index d508d0c9716..c4bb0aec4b7 100644 --- a/src/ert/libres_facade.py +++ b/src/ert/libres_facade.py @@ -140,7 +140,7 @@ def load_from_forward_model( jobname_format=self.config.model_config.jobname_format_string, runpath_format=self.config.model_config.runpath_format_string, filename=str(self.config.runpath_file), - substitution_list=self.config.substitution_list, + substitutions=self.config.substitutions, eclbase=self.config.model_config.eclbase_format_string, ), realisations, diff --git a/src/ert/plugins/hook_implementations/workflows/export_runpath.py b/src/ert/plugins/hook_implementations/workflows/export_runpath.py index c6e20557242..d9accae187e 100644 --- a/src/ert/plugins/hook_implementations/workflows/export_runpath.py +++ b/src/ert/plugins/hook_implementations/workflows/export_runpath.py @@ -39,7 +39,7 @@ def run(self, ert_config: ErtConfig, workflow_args: List[Any]) -> None: jobname_format=ert_config.model_config.jobname_format_string, runpath_format=ert_config.model_config.runpath_format_string, filename=str(ert_config.runpath_file), - substitution_list=ert_config.substitution_list, + substitutions=ert_config.substitutions, eclbase=ert_config.model_config.eclbase_format_string, ) run_paths.write_runpath_list( diff --git a/src/ert/run_models/base_run_model.py b/src/ert/run_models/base_run_model.py index 7bda0744d9d..fb7b0757462 100644 --- a/src/ert/run_models/base_run_model.py +++ b/src/ert/run_models/base_run_model.py @@ -171,13 +171,13 @@ def __init__( self._context_env: Dict[str, str] = {} self.random_seed: int = _seed_sequence(random_seed) self.rng = np.random.default_rng(self.random_seed) - self.substitution_list = config.substitution_list + self.substitutions = config.substitutions self.run_paths = Runpaths( jobname_format=config.model_config.jobname_format_string, runpath_format=config.model_config.runpath_format_string, filename=str(config.runpath_file), - substitution_list=self.substitution_list, + substitutions=self.substitutions, eclbase=config.model_config.eclbase_format_string, ) self._iter_snapshot: Dict[int, EnsembleSnapshot] = {} @@ -198,7 +198,7 @@ def log_at_startup(self) -> None: "ert_config", "rng", "run_paths", - "substitution_list", + "substitutions", ] settings_dict = { key: value diff --git a/src/ert/runpaths.py b/src/ert/runpaths.py index 557dc5a4ab1..eb78ed44d82 100644 --- a/src/ert/runpaths.py +++ b/src/ert/runpaths.py @@ -1,7 +1,7 @@ from pathlib import Path from typing import Iterable, List, Optional, Union -from ert.substitution_list import SubstitutionList +from ert.substitutions import Substitutions class Runpaths: @@ -33,22 +33,22 @@ def __init__( jobname_format: str, runpath_format: str, filename: Union[str, Path] = ".ert_runpath_list", - substitution_list: Optional[SubstitutionList] = None, + substitutions: Optional[Substitutions] = None, eclbase: Optional[str] = None, ): self._jobname_format = jobname_format self.runpath_list_filename = Path(filename) self._runpath_format = str(Path(runpath_format).resolve()) - self._substitution_list = substitution_list or SubstitutionList() + self._substitutions = substitutions or Substitutions() self._eclbase = eclbase def set_ert_ensemble(self, ensemble_name: str) -> None: - self._substitution_list[""] = ensemble_name - self._substitution_list[""] = ensemble_name + self._substitutions[""] = ensemble_name + self._substitutions[""] = ensemble_name def get_paths(self, realizations: Iterable[int], iteration: int) -> List[str]: return [ - self._substitution_list.substitute_real_iter( + self._substitutions.substitute_real_iter( self._runpath_format, realization, iteration ) for realization in realizations @@ -56,7 +56,7 @@ def get_paths(self, realizations: Iterable[int], iteration: int) -> List[str]: def get_jobnames(self, realizations: Iterable[int], iteration: int) -> List[str]: return [ - self._substitution_list.substitute_real_iter( + self._substitutions.substitute_real_iter( self._jobname_format, realization, iteration ) for realization in realizations @@ -90,12 +90,12 @@ def write_runpath_list( with open(self.runpath_list_filename, "w", encoding="utf-8") as filehandle: for iteration in iteration_numbers: for realization in realization_numbers: - job_name_or_eclbase = self._substitution_list.substitute_real_iter( + job_name_or_eclbase = self._substitutions.substitute_real_iter( self._eclbase if self._eclbase else self._jobname_format, realization, iteration, ) - runpath = self._substitution_list.substitute_real_iter( + runpath = self._substitutions.substitute_real_iter( self._runpath_format, realization, iteration ) diff --git a/src/ert/simulator/batch_simulator_context.py b/src/ert/simulator/batch_simulator_context.py index 07696a040ea..4924f4cabdc 100644 --- a/src/ert/simulator/batch_simulator_context.py +++ b/src/ert/simulator/batch_simulator_context.py @@ -128,7 +128,7 @@ def __post_init__(self) -> None: driver, max_running=self.ert_config.queue_config.max_running ) # fill in the missing geo_id data - global_substitutions = self.ert_config.substitution_list + global_substitutions = self.ert_config.substitutions global_substitutions[""] = _slug(self.ensemble.name) for sim_id, (geo_id, _) in enumerate(self.case_data): if self.mask[sim_id]: @@ -138,7 +138,7 @@ def __post_init__(self) -> None: jobname_format=ert_config.model_config.jobname_format_string, runpath_format=ert_config.model_config.runpath_format_string, filename=str(ert_config.runpath_file), - substitution_list=global_substitutions, + substitutions=global_substitutions, eclbase=ert_config.model_config.eclbase_format_string, ) self.run_args = create_run_arguments( diff --git a/src/ert/substitution_list.py b/src/ert/substitutions.py similarity index 91% rename from src/ert/substitution_list.py rename to src/ert/substitutions.py index 01c5b38e789..d8c3fc3a802 100644 --- a/src/ert/substitution_list.py +++ b/src/ert/substitutions.py @@ -20,7 +20,7 @@ from collections import UserDict as _UserDict -class SubstitutionList(_UserDict): +class Substitutions(_UserDict): def substitute( self, to_substitute: str, @@ -71,13 +71,13 @@ def _concise_representation(self) -> str: ) def __repr__(self) -> str: - return f"" + return f"" def __str__(self) -> str: - return f"SubstitutionList({self._concise_representation()})" + return f"Substitutions({self._concise_representation()})" -def _replace_strings(subst_list: SubstitutionList, string: str) -> Optional[str]: +def _replace_strings(subst_list: Substitutions, string: str) -> Optional[str]: start = 0 parts = [] for match in _PATTERN.finditer(string): diff --git a/tests/ert/unit_tests/config/test_ert_config.py b/tests/ert/unit_tests/config/test_ert_config.py index 5f3bd02a150..f6d5a32a605 100644 --- a/tests/ert/unit_tests/config/test_ert_config.py +++ b/tests/ert/unit_tests/config/test_ert_config.py @@ -61,7 +61,7 @@ def test_init(minimum_case): assert ert_config.config_path == os.getcwd() - assert ert_config.substitution_list[""] == os.getcwd() + assert ert_config.substitutions[""] == os.getcwd() def test_runpath_file(monkeypatch, tmp_path): @@ -425,7 +425,7 @@ def test_that_subst_list_is_given_default_runpath_file(): with open(test_config_file_name, "w", encoding="utf-8") as fh: fh.write(test_config_contents) ert_config = ErtConfig.from_file(test_config_file_name) - assert ert_config.substitution_list[""] == os.path.abspath( + assert ert_config.substitutions[""] == os.path.abspath( ErtConfig.DEFAULT_RUNPATH_FILE ) @@ -944,8 +944,8 @@ def test_that_define_statements_with_more_than_one_argument(): """ ) ) - assert ert_config.substitution_list.get("") == "111 222 333" - assert ert_config.substitution_list.get("") == "111 222 333 444 555" + assert ert_config.substitutions.get("") == "111 222 333" + assert ert_config.substitutions.get("") == "111 222 333 444 555" @pytest.mark.usefixtures("use_tmpdir") @@ -982,7 +982,7 @@ def test_that_define_string_quotes_are_removed(): """ ) ) - assert ert_Config.substitution_list.get("") == "A" + assert ert_Config.substitutions.get("") == "A" @pytest.mark.usefixtures("use_tmpdir") diff --git a/tests/ert/unit_tests/config/test_forward_model.py b/tests/ert/unit_tests/config/test_forward_model.py index d77c51925ca..3e2f05e1690 100644 --- a/tests/ert/unit_tests/config/test_forward_model.py +++ b/tests/ert/unit_tests/config/test_forward_model.py @@ -18,7 +18,7 @@ ForwardModelStepValidationError, ) from ert.config.parsing import SchemaItemType -from ert.substitution_list import SubstitutionList +from ert.substitutions import Substitutions from .config_dict_generator import config_generators @@ -694,7 +694,7 @@ def validate_pre_realization_run( }, "exec_env": {}, "default_mapping": {}, - "private_args": SubstitutionList( + "private_args": Substitutions( { "": "hello", "": "world", diff --git a/tests/ert/unit_tests/config/test_forward_model_data_to_json.py b/tests/ert/unit_tests/config/test_forward_model_data_to_json.py index 9ada593f041..6b35219cdcd 100644 --- a/tests/ert/unit_tests/config/test_forward_model_data_to_json.py +++ b/tests/ert/unit_tests/config/test_forward_model_data_to_json.py @@ -14,12 +14,12 @@ from ert.config.ert_config import _forward_model_step_from_config_file from ert.constant_filenames import JOBS_FILE from ert.simulator.forward_model_status import ForwardModelStatus -from ert.substitution_list import SubstitutionList +from ert.substitutions import Substitutions @pytest.fixture() def context(): - return SubstitutionList({"": "./"}) + return Substitutions({"": "./"}) @pytest.fixture @@ -294,7 +294,7 @@ def test_config_path_and_file(context): steps_json = ErtConfig( forward_model_steps=set_up_forward_model([]), - substitution_list=context, + substitutions=context, user_config_file="path_to_config_file/config.ert", ).forward_model_data_to_json( run_id, @@ -311,7 +311,7 @@ def test_no_steps(context): data = ErtConfig( forward_model_steps=set_up_forward_model([]), - substitution_list=context, + substitutions=context, user_config_file="path_to_config_file/config.ert", ).forward_model_data_to_json( run_id, @@ -327,7 +327,7 @@ def test_one_step(fm_step_list, context): data = ErtConfig( forward_model_steps=set_up_forward_model([step]), - substitution_list=context, + substitutions=context, ).forward_model_data_to_json(run_id) verify_json_dump(fm_step_list, data, [i], run_id) @@ -336,7 +336,7 @@ def run_all(fm_steplist, context): run_id = "run_all" data = ErtConfig( forward_model_steps=set_up_forward_model(fm_steplist), - substitution_list=context, + substitutions=context, ).forward_model_data_to_json(run_id) verify_json_dump(fm_steplist, data, range(len(fm_steplist)), run_id) @@ -371,7 +371,7 @@ def test_status_file(fm_step_list, context): json.dump( ErtConfig( forward_model_steps=set_up_forward_model(fm_step_list), - substitution_list=context, + substitutions=context, ).forward_model_data_to_json(run_id), fp, ) @@ -410,7 +410,7 @@ def test_that_values_with_brackets_are_ommitted(caplog, fm_step_list, context): run_id = "test_no_jobs_id" data = ErtConfig( - forward_model_steps=forward_model_list, substitution_list=context + forward_model_steps=forward_model_list, substitutions=context ).forward_model_data_to_json(run_id) assert "Environment variable ENV_VAR skipped due to" in caplog.text diff --git a/tests/ert/unit_tests/conftest.py b/tests/ert/unit_tests/conftest.py index 0bc4c9dac6a..accbc117075 100644 --- a/tests/ert/unit_tests/conftest.py +++ b/tests/ert/unit_tests/conftest.py @@ -41,7 +41,7 @@ def func(ert_config: ErtConfig): jobname_format=ert_config.model_config.jobname_format_string, runpath_format=ert_config.model_config.runpath_format_string, filename=str(ert_config.runpath_file), - substitution_list=ert_config.substitution_list, + substitutions=ert_config.substitutions, ) yield func diff --git a/tests/ert/unit_tests/forward_model_runner/test_forward_model_runner.py b/tests/ert/unit_tests/forward_model_runner/test_forward_model_runner.py index 14835cf25f0..b1616d971c2 100644 --- a/tests/ert/unit_tests/forward_model_runner/test_forward_model_runner.py +++ b/tests/ert/unit_tests/forward_model_runner/test_forward_model_runner.py @@ -10,7 +10,7 @@ from _ert.forward_model_runner.runner import ForwardModelRunner from ert.config import ErtConfig, ForwardModelStep from ert.config.ert_config import _forward_model_step_from_config_file -from ert.substitution_list import SubstitutionList +from ert.substitutions import Substitutions # Test data generated by ForwardModel JSON_STRING = """ @@ -309,7 +309,7 @@ def test_default_env_variables_available_inside_fm_step_context(): json.dump( ErtConfig( forward_model_steps=[step], - substitution_list=SubstitutionList({"": "./"}), + substitutions=Substitutions({"": "./"}), ).forward_model_data_to_json( "run_id", ), diff --git a/tests/ert/unit_tests/run_models/test_base_run_model.py b/tests/ert/unit_tests/run_models/test_base_run_model.py index 94b0c5d02cc..e1b7c36246d 100644 --- a/tests/ert/unit_tests/run_models/test_base_run_model.py +++ b/tests/ert/unit_tests/run_models/test_base_run_model.py @@ -9,7 +9,7 @@ from ert.config import ErtConfig, ModelConfig from ert.run_models import BaseRunModel from ert.storage import Storage -from ert.substitution_list import SubstitutionList +from ert.substitutions import Substitutions @pytest.fixture(autouse=True) @@ -90,10 +90,10 @@ def test_check_if_runpath_exists( expected: bool, ): model_config = ModelConfig(runpath_format_string=run_path) - subs_list = SubstitutionList() + subs_list = Substitutions() config = MagicMock() config.model_config = model_config - config.substitution_list = subs_list + config.substitutions = subs_list brm = BaseRunModel( config, @@ -122,10 +122,10 @@ def test_get_number_of_existing_runpaths( ): run_path = "out/realization-%d/iter-%d" model_config = ModelConfig(runpath_format_string=run_path) - subs_list = SubstitutionList() + subs_list = Substitutions() config = MagicMock() config.model_config = model_config - config.substitution_list = subs_list + config.substitutions = subs_list brm = BaseRunModel( config=config, @@ -163,10 +163,10 @@ def test_delete_run_path(run_path_format, active_realizations): share_path = Path("share") os.makedirs(share_path) model_config = ModelConfig(runpath_format_string=run_path_format) - subs_list = SubstitutionList({"": "0", "": "Case_Name"}) + subs_list = Substitutions({"": "0", "": "Case_Name"}) config = MagicMock() config.model_config = model_config - config.substitution_list = subs_list + config.substitutions = subs_list brm = BaseRunModel( config, MagicMock(), MagicMock(), MagicMock(), active_realizations diff --git a/tests/ert/unit_tests/storage/create_runpath.py b/tests/ert/unit_tests/storage/create_runpath.py index 860d377097f..ca936faf058 100644 --- a/tests/ert/unit_tests/storage/create_runpath.py +++ b/tests/ert/unit_tests/storage/create_runpath.py @@ -35,7 +35,7 @@ def create_runpath( jobname_format=ert_config.model_config.jobname_format_string, runpath_format=ert_config.model_config.runpath_format_string, filename=str(ert_config.runpath_file), - substitution_list=ert_config.substitution_list, + substitutions=ert_config.substitutions, ) run_args = create_run_arguments(runpaths, active_mask, ensemble) diff --git a/tests/ert/unit_tests/test_enkf_main.py b/tests/ert/unit_tests/test_enkf_main.py index d714019cc90..f65d1b7de07 100644 --- a/tests/ert/unit_tests/test_enkf_main.py +++ b/tests/ert/unit_tests/test_enkf_main.py @@ -30,7 +30,7 @@ def test_create_run_args(prior_ensemble, config_dict, run_paths): f"name{i}" for i in range(ensemble_size) ] - substitutions = config.substitution_list + substitutions = config.substitutions assert "" in substitutions assert substitutions.get("") == "name" assert substitutions.get("") == "name" @@ -51,7 +51,7 @@ def test_create_run_args_separate_base_and_name(prior_ensemble, run_paths): f"name{i}" for i in range(ensemble_size) ] - substitutions = config.substitution_list + substitutions = config.substitutions assert "" in substitutions assert substitutions.get("") == "base" assert substitutions.get("") == "base" @@ -110,6 +110,6 @@ def test_ert_context(): with open("config_file.ert", "w", encoding="utf-8") as fout: fout.write("NUM_REALIZATIONS 1\nDEFINE ") ert_config = ErtConfig.from_file("config_file.ert") - context = ert_config.substitution_list + context = ert_config.substitutions my_path = context[""] assert my_path == os.getcwd() diff --git a/tests/ert/unit_tests/test_run_path_creation.py b/tests/ert/unit_tests/test_run_path_creation.py index a9b64bbeb89..d571f366e70 100644 --- a/tests/ert/unit_tests/test_run_path_creation.py +++ b/tests/ert/unit_tests/test_run_path_creation.py @@ -358,7 +358,7 @@ def test_that_data_file_sets_num_cpu(eclipse_data, expected_cpus): Path("config.ert").write_text(config_text, encoding="utf-8") ert_config = ErtConfig.from_file("config.ert") - assert int(ert_config.substitution_list[""]) == expected_cpus + assert int(ert_config.substitutions[""]) == expected_cpus @pytest.mark.filterwarnings( @@ -417,14 +417,14 @@ def test_write_snakeoil_runpath_file(snake_oil_case, storage, itr): "magic-real-/magic-iter-" ) jobname_fmt = "SNAKE_OIL_%d" - global_substitutions = ert_config.substitution_list + global_substitutions = ert_config.substitutions for i in range(num_realizations): global_substitutions[f""] = str(10 * i) run_paths = Runpaths( jobname_format=jobname_fmt, runpath_format=runpath_fmt, filename=str("a_file_name"), - substitution_list=global_substitutions, + substitutions=global_substitutions, ) sample_prior(prior_ensemble, [i for i, active in enumerate(mask) if active]) run_args = create_run_arguments( @@ -508,7 +508,7 @@ def _create_runpath(ert_config: ErtConfig, storage: Storage) -> None: jobname_format=ert_config.model_config.jobname_format_string, runpath_format=ert_config.model_config.runpath_format_string, filename=str(ert_config.runpath_file), - substitution_list=ert_config.substitution_list, + substitutions=ert_config.substitutions, ) create_run_path( create_run_arguments(run_paths, [True] * ensemble.ensemble_size, ensemble), @@ -654,7 +654,7 @@ def test_crete_runpath_adds_manifest_to_runpath(snake_oil_case, storage, itr): "simulations//realization-/iter-/" "magic-real-/magic-iter-" ) - global_substitutions = ert_config.substitution_list + global_substitutions = ert_config.substitutions for i in range(num_realizations): global_substitutions[f""] = str(10 * i) @@ -662,7 +662,7 @@ def test_crete_runpath_adds_manifest_to_runpath(snake_oil_case, storage, itr): jobname_format="SNAKE_OIL_%d", runpath_format=runpath_fmt, filename="a_file_name", - substitution_list=global_substitutions, + substitutions=global_substitutions, ) sample_prior(prior_ensemble, range(num_realizations)) diff --git a/tests/ert/unit_tests/test_runpaths.py b/tests/ert/unit_tests/test_runpaths.py index e5f11e522ea..70d031bae85 100644 --- a/tests/ert/unit_tests/test_runpaths.py +++ b/tests/ert/unit_tests/test_runpaths.py @@ -1,7 +1,7 @@ import pytest from ert.runpaths import Runpaths -from ert.substitution_list import SubstitutionList +from ert.substitutions import Substitutions @pytest.mark.parametrize( @@ -53,7 +53,7 @@ def test_runpath_file(tmp_path, job_format, runpath_format, expected_contents): runpath_file = tmp_path / "runpath_file" assert not runpath_file.exists() - context = SubstitutionList() + context = Substitutions() runpaths = Runpaths( job_format, runpath_format, @@ -68,7 +68,7 @@ def test_runpath_file(tmp_path, job_format, runpath_format, expected_contents): def test_runpath_file_writer_substitution(tmp_path): runpath_file = tmp_path / "runpath_file" - context = SubstitutionList() + context = Substitutions() context[""] = "my_case" runpaths = Runpaths( "_job", @@ -88,7 +88,7 @@ def test_runpath_file_writer_substitution(tmp_path): def test_runpath_file_writes_eclbase_when_present(tmp_path): runpath_file = tmp_path / "runpath_file" - context = SubstitutionList() + context = Substitutions() context[""] = "my_case" runpaths = Runpaths( "_job", diff --git a/tests/ert/unit_tests/test_substitution_list.py b/tests/ert/unit_tests/test_substitution_list.py index 8c75a053e75..bc67cd5c344 100644 --- a/tests/ert/unit_tests/test_substitution_list.py +++ b/tests/ert/unit_tests/test_substitution_list.py @@ -5,7 +5,7 @@ from ert.config import ErtConfig from ert.config.parsing import ConfigKeys -from ert.substitution_list import SubstitutionList +from ert.substitutions import Substitutions from .config.config_dict_generator import config_generators @@ -23,15 +23,15 @@ def test_different_defines_give_different_subst_lists( with config_generator2(tmp_path_factory) as config_values2: assume(config_values1.define != config_values2.define) assert ( - ert_config1.substitution_list + ert_config1.substitutions != ErtConfig.from_dict( config_values2.to_config_dict("test.ert", os.getcwd()) - ).substitution_list + ).substitutions ) def test_subst_list_reads_correct_values(): - substitution_list = ErtConfig.from_dict( + substitutions = ErtConfig.from_dict( { ConfigKeys.NUM_REALIZATIONS: 1, ConfigKeys.DEFINE: [ @@ -41,15 +41,15 @@ def test_subst_list_reads_correct_values(): ConfigKeys.DATA_KW: [("keyC", "valC"), ("keyD", "valD")], ConfigKeys.ENSPATH: "test", } - ).substitution_list - assert substitution_list["keyA"] == "valA" - assert substitution_list["keyB"] == "valB" - assert substitution_list["keyC"] == "valC" - assert substitution_list["keyD"] == "valD" + ).substitutions + assert substitutions["keyA"] == "valA" + assert substitutions["keyB"] == "valB" + assert substitutions["keyC"] == "valC" + assert substitutions["keyD"] == "valD" -def test_substitution_list(): - subst_list = SubstitutionList() +def test_substitutions(): + subst_list = Substitutions() subst_list[""] = "Value" @@ -65,7 +65,7 @@ def test_substitution_list(): assert list(subst_list.keys()) == ["", ""] str_repr = repr(subst_list) - assert "SubstitutionList" in str_repr + assert "Substitutions" in str_repr assert ", Value2" in str_repr assert ", Value" in str_repr diff --git a/tests/ert/unit_tests/workflow_runner/test_workflow.py b/tests/ert/unit_tests/workflow_runner/test_workflow.py index 347dafc3a97..547ca2f2eaf 100644 --- a/tests/ert/unit_tests/workflow_runner/test_workflow.py +++ b/tests/ert/unit_tests/workflow_runner/test_workflow.py @@ -5,7 +5,7 @@ from hypothesis import given, strategies from ert.config import ConfigValidationError, Workflow, WorkflowJob -from ert.substitution_list import SubstitutionList +from ert.substitutions import Substitutions from ert.workflow_runner import WorkflowRunner from .workflow_common import WorkflowCommon @@ -50,7 +50,7 @@ def test_workflow_run(): dump_job = WorkflowJob.from_file("dump_job", name="DUMP") - context = SubstitutionList() + context = Substitutions() context[""] = "text" workflow = Workflow.from_file("dump_workflow", context, {"DUMP": dump_job}) @@ -87,7 +87,7 @@ def test_that_failure_in_parsing_workflow_gives_config_validation_error(): def test_that_substitution_happens_in_workflow(): with open("workflow", "w", encoding="utf-8") as f: f.write("JOB \n") - substlist = SubstitutionList() + substlist = Substitutions() substlist[""] = "a" substlist[""] = "b" job = WorkflowJob( diff --git a/tests/ert/unit_tests/workflow_runner/test_workflow_runner.py b/tests/ert/unit_tests/workflow_runner/test_workflow_runner.py index ba1c81cab50..a4d486c46a3 100644 --- a/tests/ert/unit_tests/workflow_runner/test_workflow_runner.py +++ b/tests/ert/unit_tests/workflow_runner/test_workflow_runner.py @@ -5,7 +5,7 @@ from ert import WorkflowRunner from ert.config import Workflow, WorkflowJob -from ert.substitution_list import SubstitutionList +from ert.substitutions import Substitutions from tests.ert.utils import wait_until from .workflow_common import WorkflowCommon @@ -18,9 +18,7 @@ def test_workflow_thread_cancel_ert_script(): wait_job = WorkflowJob.from_file("wait_job", name="WAIT") - workflow = Workflow.from_file( - "wait_workflow", SubstitutionList(), {"WAIT": wait_job} - ) + workflow = Workflow.from_file("wait_workflow", Substitutions(), {"WAIT": wait_job}) assert len(workflow) == 3 @@ -58,9 +56,7 @@ def test_workflow_thread_cancel_external(): name="WAIT", config_file="wait_job", ) - workflow = Workflow.from_file( - "wait_workflow", SubstitutionList(), {"WAIT": wait_job} - ) + workflow = Workflow.from_file("wait_workflow", Substitutions(), {"WAIT": wait_job}) assert len(workflow) == 3 @@ -90,9 +86,7 @@ def test_workflow_failed_job(): name="DUMP", config_file="dump_job", ) - workflow = Workflow.from_file( - "dump_workflow", SubstitutionList(), {"DUMP": dump_job} - ) + workflow = Workflow.from_file("dump_workflow", Substitutions(), {"DUMP": dump_job}) assert len(workflow) == 2 workflow_runner = WorkflowRunner(workflow) @@ -119,7 +113,7 @@ def test_workflow_success(): ) workflow = Workflow.from_file( "fast_wait_workflow", - SubstitutionList(), + Substitutions(), {"WAIT": wait_job, "EXTERNAL_WAIT": external_job}, ) @@ -155,7 +149,7 @@ def test_workflow_stops_with_stopping_job(): workflow = Workflow.from_file( src_file="dump_failing_workflow", - context=SubstitutionList(), + context=Substitutions(), job_dict={"DUMP": job_failing_dump}, ) @@ -170,7 +164,7 @@ def test_workflow_stops_with_stopping_job(): assert not job_successful_dump.stop_on_fail workflow = Workflow.from_file( src_file="dump_failing_workflow", - context=SubstitutionList(), + context=Substitutions(), job_dict={"DUMP": job_successful_dump}, )