def __init__(self): SimulationConfigPanel.__init__(self, IteratedEnsembleSmoother) layout = QFormLayout() case_selector = CaseSelector() layout.addRow("Current case:", case_selector) run_path_label = QLabel("<b>%s</b>" % getRunPath()) addHelpToWidget(run_path_label, "config/simulation/runpath") layout.addRow("Runpath:", run_path_label) number_of_realizations_label = QLabel("<b>%d</b>" % getRealizationCount()) addHelpToWidget(number_of_realizations_label, "config/ensemble/num_realizations") layout.addRow(QLabel("Number of realizations:"), number_of_realizations_label) # The num_iterations_spinner does not track any external changes (will that ever happen?) num_iterations_spinner = QSpinBox() num_iterations_spinner.setMinimum(1) num_iterations_spinner.setMaximum(100) num_iterations_spinner.setValue(getNumberOfIterations()) addHelpToWidget(num_iterations_spinner, "config/simulation/number_of_iterations") num_iterations_spinner.valueChanged[int].connect(setNumberOfIterations) layout.addRow("Number of iterations:", num_iterations_spinner) self._iterated_target_case_format_model = TargetCaseModel( format_mode=True) self._iterated_target_case_format_field = StringBox( self._iterated_target_case_format_model, "config/simulation/iterated_target_case_format", ) self._iterated_target_case_format_field.setValidator( ProperNameFormatArgument()) layout.addRow("Target case format:", self._iterated_target_case_format_field) self._analysis_module_selector = AnalysisModuleSelector( iterable=True, help_link="config/analysis/analysis_module") layout.addRow("Analysis Module:", self._analysis_module_selector) self._active_realizations_model = ActiveRealizationsModel() self._active_realizations_field = StringBox( self._active_realizations_model, "config/simulation/active_realizations") self._active_realizations_field.setValidator( RangeStringArgument(getRealizationCount())) layout.addRow("Active realizations", self._active_realizations_field) self._iterated_target_case_format_field.getValidationSupport( ).validationChanged.connect(self.simulationConfigurationChanged) self._active_realizations_field.getValidationSupport( ).validationChanged.connect(self.simulationConfigurationChanged) self.setLayout(layout)
def __init__(self): SimulationConfigPanel.__init__(self, MultipleDataAssimilation) layout = QFormLayout() case_selector = CaseSelector() layout.addRow("Current case:", case_selector) run_path_label = QLabel("<b>%s</b>" % getRunPath()) addHelpToWidget(run_path_label, "config/simulation/runpath") layout.addRow("Runpath:", run_path_label) number_of_realizations_label = QLabel("<b>%d</b>" % getRealizationCount()) addHelpToWidget(number_of_realizations_label, "config/ensemble/num_realizations") layout.addRow(QLabel("Number of realizations:"), number_of_realizations_label) self._target_case_format_model = TargetCaseModel(format_mode=True) self._target_case_format_field = StringBox( self._target_case_format_model, "config/simulation/target_case_format") self._target_case_format_field.setValidator(ProperNameFormatArgument()) layout.addRow("Target case format:", self._target_case_format_field) self.weights = MultipleDataAssimilation.default_weights self._createInputForWeights(layout) self._iter_field = StringBox( IterValueModel(), "config/simulation/iter_num", ) self._iter_field.setValidator(IntegerArgument(from_value=0), ) layout.addRow("Start iteration:", self._iter_field) self._analysis_module_selector = AnalysisModuleSelector( iterable=False, help_link="config/analysis/analysis_module") layout.addRow("Analysis Module:", self._analysis_module_selector) self._active_realizations_model = ActiveRealizationsModel() self._active_realizations_field = StringBox( self._active_realizations_model, "config/simulation/active_realizations") self._active_realizations_field.setValidator( RangeStringArgument(getRealizationCount())) layout.addRow("Active realizations:", self._active_realizations_field) self._target_case_format_field.getValidationSupport( ).validationChanged.connect(self.simulationConfigurationChanged) self._active_realizations_field.getValidationSupport( ).validationChanged.connect(self.simulationConfigurationChanged) self._relative_iteration_weights_box.getValidationSupport( ).validationChanged.connect(self.simulationConfigurationChanged) self.setLayout(layout)
def test_proper_name_format_argument(self): argument = ProperNameFormatArgument() self.assertTrue(argument.validate("NAME%d")) self.assertTrue(argument.validate("__NA%dME__")) self.assertTrue(argument.validate("<NAME>%d")) self.assertTrue(argument.validate("%d-NAME-")) self.assertFalse(argument.validate("-%dNA ME-")) self.assertFalse(argument.validate("NAME*%d"))
def __init__(self, facade: LibresFacade, notifier: ErtNotifier): SimulationConfigPanel.__init__(self, MultipleDataAssimilation) layout = QFormLayout() case_selector = CaseSelector(facade, notifier) layout.addRow("Current case:", case_selector) run_path_label = QLabel(f"<b>{facade.run_path}</b>") addHelpToWidget(run_path_label, "config/simulation/runpath") layout.addRow("Runpath:", run_path_label) number_of_realizations_label = QLabel( f"<b>{facade.get_ensemble_size()}</b>") addHelpToWidget(number_of_realizations_label, "config/ensemble/num_realizations") layout.addRow(QLabel("Number of realizations:"), number_of_realizations_label) self._target_case_format_model = TargetCaseModel(facade, notifier, format_mode=True) self._target_case_format_field = StringBox( self._target_case_format_model, "config/simulation/target_case_format") self._target_case_format_field.setValidator(ProperNameFormatArgument()) layout.addRow("Target case format:", self._target_case_format_field) self.weights = MultipleDataAssimilation.default_weights self._createInputForWeights(layout) self._iter_field = StringBox( IterValueModel(notifier), "config/simulation/iter_num", ) self._iter_field.setValidator(IntegerArgument(from_value=0), ) layout.addRow("Start iteration:", self._iter_field) self._analysis_module_edit = AnalysisModuleEdit( facade, module_name=MultipleDataAssimilationPanel.analysis_module_name, help_link="config/analysis/analysis_module", ) layout.addRow("Analysis module:", self._analysis_module_edit) self._active_realizations_model = ActiveRealizationsModel(facade) self._active_realizations_field = StringBox( self._active_realizations_model, "config/simulation/active_realizations") self._active_realizations_field.setValidator( RangeStringArgument(facade.get_ensemble_size())) layout.addRow("Active realizations:", self._active_realizations_field) self._target_case_format_field.getValidationSupport( ).validationChanged.connect( # noqa self.simulationConfigurationChanged) self._active_realizations_field.getValidationSupport( ).validationChanged.connect( # noqa self.simulationConfigurationChanged) self._relative_iteration_weights_box.getValidationSupport( ).validationChanged.connect( # noqa self.simulationConfigurationChanged) self.setLayout(layout)
def valid_name_format(user_input): validator = ProperNameFormatArgument() validated = validator.validate(user_input) if validated.failed(): strip_error_message_and_raise_exception(validated) return user_input
def __init__(self, facade: LibresFacade, notifier: ErtNotifier): self.facade = facade self.notifier = notifier SimulationConfigPanel.__init__(self, IteratedEnsembleSmoother) layout = QFormLayout() case_selector = CaseSelector(self.facade, notifier) layout.addRow("Current case:", case_selector) run_path_label = QLabel(f"<b>{self.facade.run_path}</b>") addHelpToWidget(run_path_label, "config/simulation/runpath") layout.addRow("Runpath:", run_path_label) number_of_realizations_label = QLabel( f"<b>{self.facade.get_ensemble_size()}</b>") addHelpToWidget(number_of_realizations_label, "config/ensemble/num_realizations") layout.addRow(QLabel("Number of realizations:"), number_of_realizations_label) # The num_iterations_spinner does not track any external changes (will # that ever happen?) self._num_iterations_spinner = QSpinBox() self._num_iterations_spinner.setMinimum(1) self._num_iterations_spinner.setMaximum(100) self._num_iterations_spinner.setValue( self.facade.get_number_of_iterations()) addHelpToWidget(self._num_iterations_spinner, "config/simulation/number_of_iterations") self._num_iterations_spinner.valueChanged[int].connect( self.setNumberIterations) layout.addRow("Number of iterations:", self._num_iterations_spinner) self._iterated_target_case_format_model = TargetCaseModel( self.facade, notifier, format_mode=True) self._iterated_target_case_format_field = StringBox( self._iterated_target_case_format_model, "config/simulation/iterated_target_case_format", ) self._iterated_target_case_format_field.setValidator( ProperNameFormatArgument()) layout.addRow("Target case format:", self._iterated_target_case_format_field) self._analysis_module_edit = AnalysisModuleEdit( self.facade, module_name=IteratedEnsembleSmootherPanel.analysis_module_name, help_link="config/analysis/analysis_module", ) layout.addRow("Analysis module:", self._analysis_module_edit) self._active_realizations_model = ActiveRealizationsModel(self.facade) self._active_realizations_field = StringBox( self._active_realizations_model, "config/simulation/active_realizations") self._active_realizations_field.setValidator( RangeStringArgument(self.facade.get_ensemble_size())) layout.addRow("Active realizations", self._active_realizations_field) self._iterated_target_case_format_field.getValidationSupport( ).validationChanged.connect( # noqa self.simulationConfigurationChanged) self._active_realizations_field.getValidationSupport( ).validationChanged.connect( # noqa self.simulationConfigurationChanged) self.setLayout(layout)