Example #1
0
    def __init__(self, parent):
        ConfigPanel.__init__(self, parent)

        eclipse.createEclipsePage(self, parent)
        analysis.createAnalysisPage(self, parent)
        queuesystem.createQueueSystemPage(self, parent)
        systemenv.createSystemPage(self, parent)
        ensemble.createEnsemblePage(self, parent)
        observations.createObservationsPage(self, parent)
        simulation.createSimulationsPage(self, parent)
        plot.createPlotPage(self, parent)
Example #2
0
def createSystemPage(configPanel, parent):
    configPanel.startPage("System")

    # Should call enkf_main_get_site_config_file() to get the name of
    # the site configuration file; this should only be a label - not
    # user editable.
    r = configPanel.addRow(ActiveLabel(None, "Site Config", "", "Not specified."))
    r.initialize = lambda ert: [ert.prototype("char* enkf_main_get_site_config_file(long)")]
    r.getter = lambda ert : ert.enkf.enkf_main_get_site_config_file(ert.main)
    r.modelConnect("casesUpdated()", r.fetchContent)
    


    r = configPanel.addRow(PathChooser(parent, "Job script", "config/systemenv/job_script", True))
    r.initialize = lambda ert : [ert.prototype("char* site_config_get_job_script(long)"),
                                 ert.prototype("void site_config_set_job_script(long, char*)")]
    r.getter = lambda ert : ert.enkf.site_config_get_job_script(ert.site_config)
    r.setter = lambda ert, value : ert.enkf.site_config_set_job_script(ert.site_config, str(value))

    internalPanel = ConfigPanel(parent)
    internalPanel.startPage("setenv")

    r = internalPanel.addRow(KeywordTable(parent, "", "config/systemenv/setenv"))
    r.initialize = lambda ert : [ert.prototype("long site_config_get_env_hash(long)"),
                                 ert.prototype("void site_config_clear_env(long)"),
                                 ert.prototype("void site_config_setenv(long, char*, char*)")]
    r.getter = lambda ert : ert.getHash(ert.enkf.site_config_get_env_hash(ert.site_config))

    def setenv(ert, value):
        ert.enkf.site_config_clear_env(ert.site_config)
        for env in value:
            ert.enkf.site_config_setenv(ert.site_config, env[0], env[1])

    r.setter = setenv

    internalPanel.endPage()

    internalPanel.startPage("Update path")

    r = internalPanel.addRow(KeywordTable(parent, "", "config/systemenv/update_path"))
    r.initialize = lambda ert : [ert.prototype("long site_config_get_path_variables(long)"),
                                 ert.prototype("long site_config_get_path_values(long)"),
                                 ert.prototype("void site_config_clear_pathvar(long)"),
                                 ert.prototype("void site_config_update_pathvar(long, char*, char*)")]
    def get_update_path(ert):
        paths = ert.getStringList(ert.enkf.site_config_get_path_variables(ert.site_config))
        values =  ert.getStringList(ert.enkf.site_config_get_path_values(ert.site_config))

        return [[p, v] for p, v in zip(paths, values)]

    r.getter = get_update_path

    def update_pathvar(ert, value):
        ert.enkf.site_config_clear_pathvar(ert.site_config)

        for pathvar in value:
            ert.enkf.site_config_update_pathvar(ert.site_config, pathvar[0], pathvar[1])

    r.setter = update_pathvar

    internalPanel.endPage()


    internalPanel.startPage("Jobs")

    r = internalPanel.addRow(JobsPanel(parent))
    r.initialize = lambda ert : [ert.prototype("long site_config_get_installed_jobs(long)"),
                                 ert.prototype("char* site_config_get_license_root_path(long)"),
                                 ert.prototype("int ext_job_is_private(long)", lib=ert.job_queue),
                                 ert.prototype("char* ext_job_get_config_file(long)", lib=ert.job_queue),
                                 ert.prototype("void ext_job_set_config_file(long, char*)", lib=ert.job_queue),
                                 ert.prototype("long ext_job_alloc(char*, char*, int)", lib=ert.job_queue),
                                 ert.prototype("long ext_job_fscanf_alloc(char*, char*, int, char*)", lib=ert.job_queue),
                                 ert.prototype("long ext_joblist_get_job(long, char*)", lib=ert.job_queue),
                                 ert.prototype("int ext_joblist_del_job(long, char*)", lib=ert.job_queue),
                                 ert.prototype("int ext_joblist_has_job(long, char*)", lib=ert.job_queue),
                                 ert.prototype("void ext_joblist_add_job(long, char*, long)", lib=ert.job_queue),
                                 ert.prototype("long ext_joblist_get_jobs(long)", lib=ert.job_queue)]
    def get_jobs(ert):
        jl = ert.enkf.site_config_get_installed_jobs(ert.site_config)
        h  = ert.job_queue.ext_joblist_get_jobs(jl)

        jobs = ert.getHash(h, return_type="long")

        private_jobs = []
        for k, v in jobs:
            v = int(v)
            path = ert.job_queue.ext_job_get_config_file(v)
            if ert.job_queue.ext_job_is_private(v):
                private_jobs.append(Job(k, path))

        return private_jobs

    def update_job(ert, value):
        jl = ert.enkf.site_config_get_installed_jobs(ert.site_config)

        if os.path.exists(value.path):
            license = ert.enkf.site_config_get_license_root_path(ert.site_config)
            job = ert.job_queue.ext_job_fscanf_alloc(value.name, license, True, value.path)
            ert.job_queue.ext_joblist_add_job(jl, value.name, job)
        else:
            job = ert.job_queue.ext_joblist_get_job(jl, value.name)
            ert.job_queue.ext_job_set_config_file(job, value.path)


    def add_job(ert, value):
        jl = ert.enkf.site_config_get_installed_jobs(ert.site_config)
        if not ert.job_queue.ext_joblist_has_job(jl, value.name):
            license = ert.enkf.site_config_get_license_root_path(ert.site_config)
            if os.path.exists(value.path):
                job = ert.job_queue.ext_job_fscanf_alloc(value.name, license, True, value.path)
                ert.job_queue.ext_joblist_add_job(jl, value.name, job)
            else:
                job = ert.job_queue.ext_job_alloc(value.name, license, True)
                ert.job_queue.ext_job_set_config_file(job, value.path)
                ert.job_queue.ext_joblist_add_job(jl, value.name, job)
            return True

        return False

    def remove_job(ert, value):
        jl = ert.enkf.site_config_get_installed_jobs(ert.site_config)
        success = ert.job_queue.ext_joblist_del_job(jl, value.name)

        if not success:
            QtGui.QMessageBox.question(parent, "Failed", "Unable to delete job!", QtGui.QMessageBox.Ok)
            return False
        return True


    r.getter = get_jobs
    r.setter = update_job
    r.insert = add_job
    r.remove = remove_job



    internalPanel.endPage()
    configPanel.addRow(internalPanel)

    r = configPanel.addRow(PathChooser(parent, "Log file", "config/systemenv/log_file", True))
    r.initialize = lambda ert : [ert.prototype("char* log_get_filename(long)", lib=ert.util),
                                 ert.prototype("void log_reset_filename(long, char*)", lib=ert.util)]
    r.getter = lambda ert : ert.util.log_get_filename(ert.logh)
    r.setter = lambda ert, value : ert.util.log_reset_filename(ert.logh, value)

    r = configPanel.addRow(ert_gui.widgets.spinnerwidgets.IntegerSpinner(parent, "Log level", "config/systemenv/log_level", 0, 1000))
    r.initialize = lambda ert : [ert.prototype("int log_get_level(long)", lib=ert.util),
                                 ert.prototype("void log_set_level(long, int)", lib=ert.util)]
    r.getter = lambda ert : ert.util.log_get_level(ert.logh)
    r.setter = lambda ert, value : ert.util.log_set_level(ert.logh, value)

    configPanel.endPage()
Example #3
0
def createQueueSystemPage(configPanel, parent):
    configPanel.startPage("Queue System")

    r = configPanel.addRow(ComboChoice(parent, ["LSF", "RSH", "LOCAL"], "Queue system", "config/queue_system/queue_system"))
    r.initialize = lambda ert : ert.main.site_config.get_queue_name
    r.getter = lambda ert : ert.main.site_config.get_queue_name
    r.setter = lambda ert, value : ert.main.site_config.set_job_queue(str(value))

    internalPanel = ConfigPanel(parent)

    internalPanel.startPage("LSF")

    r = internalPanel.addRow(StringBox(parent, "LSF Queue", "config/queue_system/lsf_queue"))
    r.initialize = lambda ert : ert.main.site_config.get_lsf_queue
    r.getter = lambda ert : ert.main.site_config.get_lsf_queue
    r.setter = lambda ert, value : ert.main.site_config.set_lsf_queue( str(value))

    r = internalPanel.addRow(IntegerSpinner(parent, "Max running", "config/queue_system/max_running_lsf", 1, 1000))
    r.initialize = lambda ert : ert.main.site_config.get_max_running_lsf
    r.getter = lambda ert : ert.main.site_config.get_max_running_lsf
    r.setter = lambda ert, value : ert.main.site_config.set_max_running_lsf( value)

    r = internalPanel.addRow(StringBox(parent, "Resources", "config/queue_system/lsf_resources"))
    r.initialize = lambda ert : ert.main.site_config.get_lsf_request
    r.getter = lambda ert : ert.main.site_config.get_lsf_request
    r.setter = lambda ert, value : ert.main.site_config.set_lsf_request(str(value))

    internalPanel.endPage()


    internalPanel.startPage("RSH")

    r = internalPanel.addRow(PathChooser(parent, "Command", "config/queue_system/rsh_command", show_files=True, must_exist=True, is_executable_file=True))
    r.initialize = lambda ert : ert.main.site_config.get_rsh_command
    r.getter = lambda ert : ert.main.site_config.get_rsh_command
    r.setter = lambda ert, value : ert.main.site_config.set_rsh_command(str(value))

    r = internalPanel.addRow(IntegerSpinner(parent, "Max running", "config/queue_system/max_running_rsh", 1, 1000))
    r.initialize = lambda ert : ert.main.site_config.get_max_running_rsh
    r.getter = lambda ert : ert.main.site_config.get_max_running_rsh
    r.setter = lambda ert, value : ert.main.site_config.set_max_running_rsh( value)


    r = internalPanel.addRow(KeywordTable(parent, "Host List", "config/queue_system/rsh_host_list", "Host", "Number of jobs"))
    r.initialize = lambda ert : ert.getHash(ert.main.site_config.get_rsh_host_list, True)
    r.getter = lambda ert : ert.getHash(ert.main.site_config.get_rsh_host_list, True)

    def add_rsh_host(ert, listOfKeywords):
        ert.main.site_config.clear_rsh_host_list

        for keyword in listOfKeywords:
            if keyword[1].strip() == "":
                max_running = 1
            else:
                max_running = int(keyword[1])

            ert.main.site_config.add_rsh_host( keyword[0], max_running)

    r.setter = add_rsh_host


    internalPanel.endPage()

    internalPanel.startPage("LOCAL")

    r = internalPanel.addRow(IntegerSpinner(parent, "Max running", "config/queue_system/max_running_local", 1, 1000))
    r.initialize = lambda ert : ert.main.site_config.get_max_running_local
    r.getter = lambda ert : ert.main.site_config.get_max_running_local
    r.setter = lambda ert, value : ert.main.site_config.set_max_running_local(value)

    internalPanel.endPage()
    configPanel.addRow(internalPanel)

    configPanel.endPage()
Example #4
0
def createSimulationsPage(configPanel, parent):
    configPanel.startPage("Simulations")


    r = configPanel.addRow(IntegerSpinner(parent, "Max submit", "config/simulation/max_submit", 1, 10000))
    r.getter = lambda ert : ert.enkf.site_config_get_max_submit(ert.site_config)
    r.setter = lambda ert, value : ert.enkf.site_config_set_max_submit(ert.site_config, value)

    r = configPanel.addRow(IntegerSpinner(parent, "Max resample", "config/simulation/max_resample", 1, 10000))
    r.getter = lambda ert : ert.enkf.model_config_get_max_resample(ert.model_config)
    r.setter = lambda ert, value : ert.enkf.model_config_set_max_resample(ert.model_config, value)



    r = configPanel.addRow(ForwardModelPanel(parent))


    def get_forward_model(ert):
        site_config = ert.site_config
        installed_jobs_pointer = ert.enkf.site_config_get_installed_jobs(site_config)
        installed_jobs_stringlist_pointer = ert.job_queue.ext_joblist_alloc_list(installed_jobs_pointer)
        available_jobs = ert.getStringList(installed_jobs_stringlist_pointer , free_after_use=True)

        result = {'available_jobs': available_jobs}

        model_config = ert.model_config
        forward_model = ert.enkf.model_config_get_forward_model(model_config)
        name_string_list = ert.job_queue.forward_model_alloc_joblist(forward_model)
        job_names = ert.getStringList(name_string_list, free_after_use=True)

        forward_model_jobs = []

        count = 0
        for name in job_names:
            ext_job = ert.job_queue.forward_model_iget_job(forward_model, count)
            arg_string = ert.job_queue.ext_job_get_private_args_as_string(ext_job)
            help_text = ert.job_queue.ext_job_get_help_text(ext_job)
            forward_model_jobs.append((name, arg_string, help_text))
            count+=1

        result['forward_model'] = forward_model_jobs

        return result

    r.getter = get_forward_model

    def update_forward_model(ert, forward_model):
        forward_model_pointer = ert.enkf.model_config_get_forward_model(ert.model_config)
        ert.job_queue.forward_model_clear(forward_model_pointer)

        for job in forward_model:
            name = job[0]
            args = job[1]
            ext_job = ert.job_queue.forward_model_add_job(forward_model_pointer, name)
            ert.job_queue.ext_job_set_private_args_from_string(ext_job, args)

    r.setter = update_forward_model



    r = configPanel.addRow(PathChooser(parent, "Case table", "config/simulation/case_table"))


    def get_case_table(ert):
        return ert.enkf.model_config_get_case_table_file(ert.model_config)
    r.getter = get_case_table

    def set_case_table(ert, value):
        if os.path.exists(value):
            ert.enkf.enkf_main_set_case_table(ert.model_config, ert.nonify(value))
    r.setter = set_case_table

    
    r = configPanel.addRow(PathChooser(parent, "License path", "config/simulation/license_path"))
    r.getter = lambda ert : ert.enkf.site_config_get_license_root_path(ert.site_config)

    def ls(string):
        if string is None:
            return ""
        else:
            return string

    r.setter = lambda ert, value : ert.enkf.site_config_set_license_root_path(ert.site_config, ls(value))



    internalPanel = ConfigPanel(parent)

    internalPanel.startPage("Runpath")

    r = internalPanel.addRow(PathChooser(parent, "Runpath", "config/simulation/runpath", path_format=True))

    r.getter = lambda ert : ert.enkf.model_config_get_runpath_as_char(ert.model_config)
    r.setter = lambda ert, value : ert.enkf.model_config_set_runpath_fmt(ert.model_config, str(value))
    parent.connect(r, QtCore.SIGNAL("contentsChanged()"), lambda : r.modelEmit("runpathChanged()"))


    r = internalPanel.addRow(CheckBox(parent, "Pre clear", "config/simulation/pre_clear_runpath", "Perform pre clear"))

    r.getter = lambda ert : ert.enkf.enkf_main_get_pre_clear_runpath(ert.main)
    r.setter = lambda ert, value : ert.enkf.enkf_main_set_pre_clear_runpath(ert.main, value)


    r = internalPanel.addRow(RunpathMemberPanel(widgetLabel="Retain runpath", helpLabel="config/simulation/runpath_retain"))
    def get_runpath_retain_state(ert):
        ensemble_size = ert.enkf.enkf_main_get_ensemble_size(ert.main)

        result = []
        for index in range(ensemble_size):
            state = ert.enkf.enkf_main_iget_keep_runpath(ert.main, index)
            result.append((index, keep_runpath_type.resolveValue(state)))
            
        return result

    r.getter = get_runpath_retain_state

    def set_runpath_retain_state(ert, items):
        for item in items:
            ert.enkf.enkf_main_iset_keep_runpath(ert.main, item.member, item.runpath_state.value())

    r.setter = set_runpath_retain_state


    internalPanel.endPage()

    internalPanel.startPage("Run Template")

    r = internalPanel.addRow(RunTemplatePanel(parent))

    def get_run_templates(ert):
        templates = ert.enkf.enkf_main_get_templates(ert.main)
        template_list = ert.enkf.ert_template_alloc_list(templates)

        template_names = ert.getStringList(template_list, free_after_use=True)
        result = []
        for name in template_names:
            template = ert.enkf.ert_template_get_template(templates, name)
            template_file = ert.enkf.ert_template_get_template_file(template)
            target_file = ert.enkf.ert_template_get_target_file(template)
            arguments = ert.enkf.ert_template_get_args_as_string(template)
            result.append((name, template_file, target_file, arguments))
        return result

    r.getter = get_run_templates

    def set_run_templates(ert, template_list):
        templates_pointer = ert.enkf.enkf_main_get_templates(ert.main)
        ert.enkf.ert_template_clear(templates_pointer)

        for template in template_list:
            ert.enkf.ert_template_add_template(templates_pointer, template[0], template[1], template[2], template[3])

    r.setter = set_run_templates  
    
#    r = internalPanel.addRow(MultiColumnTable(parent, "", "run_template", ["Template", "Target file", "Arguments"]))
#    r.getter = lambda ert : ert.getAttribute("run_template")
#    r.setter = lambda ert, value : ert.setAttribute("run_template", value)

    internalPanel.endPage()
    configPanel.addRow(internalPanel)


    configPanel.endPage()
Example #5
0
    def __init__(self, parent=None):
        ConfigPanel.__init__(self, parent)

        self.initialized = False

        layout = QtGui.QFormLayout()
        layout.setLabelAlignment(QtCore.Qt.AlignRight)

        def jid(ert):
            """Returns the pointer to the current job (self.job)"""
            jl = ert.enkf.site_config_get_installed_jobs(ert.site_config)
            return ert.job_queue.ext_joblist_get_job(jl, self.job.name)

        self.stdin = PathChooser(self,
                                 "",
                                 "config/systemenv/install_job_stdin",
                                 show_files=True,
                                 must_be_set=False,
                                 must_exist=True)
        self.stdin.setter = lambda ert, value: ert.job_queue.ext_job_set_stdin_file(
            jid(ert), value)
        self.stdin.getter = lambda ert: ert.job_queue.ext_job_get_stdin_file(
            jid(ert))

        self.stdout = PathChooser(self,
                                  "",
                                  "config/systemenv/install_job_stdout",
                                  show_files=True,
                                  must_be_set=True,
                                  must_exist=False)
        self.stdout.setter = lambda ert, value: ert.job_queue.ext_job_set_stdout_file(
            jid(ert), value)
        self.stdout.getter = lambda ert: ert.job_queue.ext_job_get_stdout_file(
            jid(ert))

        self.stderr = PathChooser(self,
                                  "",
                                  "config/systemenv/install_job_stderr",
                                  show_files=True,
                                  must_be_set=True,
                                  must_exist=False)
        self.stderr.setter = lambda ert, value: ert.job_queue.ext_job_set_stderr_file(
            jid(ert), value)
        self.stderr.getter = lambda ert: ert.job_queue.ext_job_get_stderr_file(
            jid(ert))

        self.target_file = PathChooser(
            self,
            "",
            "config/systemenv/install_job_target_file",
            show_files=True,
            must_be_set=False,
            must_exist=False)
        self.target_file.setter = lambda ert, value: ert.job_queue.ext_job_set_target_file(
            jid(ert), value)
        self.target_file.getter = lambda ert: ert.job_queue.ext_job_get_target_file(
            jid(ert))

        self.executable = PathChooser(
            self,
            "",
            "config/systemenv/install_job_executable",
            show_files=True,
            must_be_set=True,
            must_exist=True,
            is_executable_file=True)
        self.executable.setter = lambda ert, value: ert.job_queue.ext_job_set_executable(
            jid(ert), value)
        self.executable.getter = lambda ert: ert.job_queue.ext_job_get_executable(
            jid(ert))

        def setEnv(ert, value):
            job = jid(ert)
            ert.job_queue.ext_job_clear_environment(job)

            for env in value:
                ert.job_queue.ext_job_add_environment(job, env[0], env[1])

        self.env = KeywordTable(self,
                                "",
                                "config/systemenv/install_job_env",
                                colHead1="Variable",
                                colHead2="Value")
        self.env.setter = setEnv
        self.env.getter = lambda ert: ert.getHash(
            ert.job_queue.ext_job_get_environment(jid(ert)))

        self.arglist = StringBox(self, "",
                                 "config/systemenv/install_job_arglist")
        self.arglist.setter = lambda ert, value: ert.job_queue.ext_job_set_private_args_from_string(
            jid(ert), value)
        self.arglist.getter = lambda ert: ert.job_queue.ext_job_get_private_args_as_string(
            jid(ert))

        self.max_running = IntegerSpinner(
            self, "", "config/systemenv/install_job_max_running", 0, 10000)
        self.max_running.setter = lambda ert, value: ert.job_queue.ext_job_set_max_running(
            jid(ert), value)
        self.max_running.getter = lambda ert: ert.job_queue.ext_job_get_max_running(
            jid(ert))

        self.max_running_minutes = IntegerSpinner(
            self, "", "config/systemenv/install_job_max_running_minutes", 0,
            10000)
        self.max_running_minutes.setter = lambda ert, value: ert.job_queue.ext_job_set_max_running_minutes(
            jid(ert), value)
        self.max_running_minutes.getter = lambda ert: ert.job_queue.ext_job_get_max_running_minutes(
            jid(ert))

        self.startPage("Standard")
        self.add("Executable.:", self.executable)
        self.add("Stdout:", self.stdout)
        self.add("Stderr:", self.stderr)
        self.add("Target file:", self.target_file)
        self.add("Arglist.:", self.arglist)
        self.endPage()

        self.startPage("Advanced")
        self.add("Stdin:", self.stdin)
        self.add("Max running:", self.max_running)
        self.max_running.setInfo("(0=unlimited)")
        self.add("Max running minutes:", self.max_running_minutes)
        self.max_running_minutes.setInfo("(0=unlimited)")
        self.add("Env.:", self.env)
        self.endPage()
Example #6
0
def createSimulationsPage(configPanel, parent):
    configPanel.startPage("Simulations")


    r = configPanel.addRow(IntegerSpinner(parent, "Max submit", "config/simulation/max_submit", 1, 10000))
    r.initialize = lambda ert : ert.main.site_config.get_max_submit
    r.getter = lambda ert : ert.main.site_config.get_max_submit
    r.setter = lambda ert, value : ert.main.site_config.set_max_submit( value)

    r = configPanel.addRow(IntegerSpinner(parent, "Max internal submit", "config/simulation/max_resample", 1, 10000))
    r.initialize = lambda ert : ert.main.model_config.get_max_internal_submit
    r.getter = lambda ert : ert.main.model_config.get_max_internal_submit
    r.setter = lambda ert, value : ert.main.model_config.set_max_internal_submit( value)



    r = configPanel.addRow(ForwardModelPanel(parent))


    def get_forward_model(ert):
        site_config = ert.main.site_config
        installed_jobs = ert.main.site_config.get_installed_jobs
        available_jobs = installed_jobs.alloc_list

        result = {'available_jobs': available_jobs}

        model_config = ert.main.model_config
        forward_model = model_config.get_forward_model
        job_names = forward_model.alloc_joblist
        
        forward_model_jobs = []

        count = 0
        for name in job_names:
            ext_job    = forward_model.iget_job( count)
            arg_string = ext_job.get_private_args_as_string
            help_text  = ext_job.get_help_text
            forward_model_jobs.append((name, arg_string, help_text))
            count+=1

        result['forward_model'] = forward_model_jobs

        return result

    r.getter = get_forward_model
    r.initialize = get_forward_model

    def update_forward_model(ert, forward_model):
        forward_model_object = ert.main.model_config.get_forward_model
        forward_model_object.clear

        for job in forward_model:
            name = job[0]
            args = job[1]
            ext_job = forward_model.add_job( name)
            ext_job.set_private_args_from_string( args)

    r.setter = update_forward_model



    r = configPanel.addRow(PathChooser(parent, "Case table", "config/simulation/case_table"))


    def get_case_table(ert):
        return ert.main.model_config.get_case_table_file
    r.getter = get_case_table
    r.initialize = get_case_table
    
    def set_case_table(ert, value):
        if os.path.exists(value):
            ert.main.set_case_table( ert.nonify(value))
    r.setter = set_case_table

    
    r = configPanel.addRow(PathChooser(parent, "License path", "config/simulation/license_path"))
    r.getter = lambda ert : ert.main.site_config.get_license_root_path
    r.initialize = lambda ert : ert.main.site_config.get_license_root_path

    def ls(string):
        if string is None:
            return ""
        else:
            return string

    r.setter = lambda ert, value : ert.main.site_config.set_license_root_path( ls(value))



    internalPanel = ConfigPanel(parent)

    internalPanel.startPage("Runpath")

    r = internalPanel.addRow(PathChooser(parent, "Runpath", "config/simulation/runpath", path_format=True))

    r.getter = lambda ert : ert.main.model_config.get_runpath_as_char
    r.initialize = lambda ert : ert.main.model_config.get_runpath_as_char
    r.setter = lambda ert, value : ert.main.model_config.select_runpath( str(value))
    parent.connect(r, QtCore.SIGNAL("contentsChanged()"), lambda : r.modelEmit("runpathChanged()"))


    r = internalPanel.addRow(CheckBox(parent, "Pre clear", "config/simulation/pre_clear_runpath", "Perform pre clear"))

    r.getter = lambda ert : ert.main.get_pre_clear_runpath
    r.initialize = lambda ert : ert.main.get_pre_clear_runpath
    r.setter = lambda ert, value : ert.main.set_pre_clear_runpath( value)


    r = internalPanel.addRow(RunpathMemberPanel(widgetLabel="Retain runpath", helpLabel="config/simulation/runpath_retain"))
    def get_runpath_retain_state(ert):
        ensemble_size = ert.main.ens_size

        result = []
        for index in range(ensemble_size):
            state = ert.main.iget_keep_runpath( index)
            result.append((index, keep_runpath_type.resolveValue(state)))
            
        return result

    r.getter = get_runpath_retain_state
    r.initialize = get_runpath_retain_state
    
    def set_runpath_retain_state(ert, items):
        for item in items:
            ert.main.iset_keep_runpath(item.member, item.runpath_state.value())

    r.setter = set_runpath_retain_state


    internalPanel.endPage()

    internalPanel.startPage("Run Template")

    r = internalPanel.addRow(RunTemplatePanel(parent))

    def get_run_templates(ert):
        templates = ert.main.get_templates
        template_names = templates.alloc_list
        
        result = []
        for name in template_names:
            template = templates.get_template(name)
            template_file = template.get_template_file
            target_file = template.get_target_file
            arguments = template.get_args_as_string
            result.append((name, template_file, target_file, arguments))
        return result

    r.getter = get_run_templates
    r.initialize = get_run_templates

    def set_run_templates(ert, template_list):
        templates_object = ert.main.get_templates
        templates_object.clear

        for template in template_list:
            templates_object.add_template( template[0], template[1], template[2], template[3])

    r.setter = set_run_templates  
    
#    r = internalPanel.addRow(MultiColumnTable(parent, "", "run_template", ["Template", "Target file", "Arguments"]))
#    r.getter = lambda ert : ert.getAttribute("run_template")
#    r.setter = lambda ert, value : ert.setAttribute("run_template", value)

    internalPanel.endPage()
    configPanel.addRow(internalPanel)


    configPanel.endPage()
Example #7
0
def createEclipsePage(configPanel, parent):
    configPanel.startPage("Eclipse")

    r = configPanel.addRow(PathChooser(parent, "Eclipse Base", "config/eclipse/eclbase", path_format=True))
    r.initialize = lambda ert: ert.main.ecl_config.get_eclbase
    r.getter = lambda ert: ert.main.ecl_config.get_eclbase
    r.setter = lambda ert, value: ert.main.set_eclbase(str(value))

    r = configPanel.addRow(PathChooser(parent, "Data file", "config/eclipse/data_file", show_files=True))
    r.initialize = lambda ert: ert.main.ecl_config.get_data_file
    r.getter = lambda ert: ert.main.ecl_config.get_data_file
    r.setter = lambda ert, value: ert.main.set_datafile(str(value))

    r = configPanel.addRow(PathChooser(parent, "Grid", "config/eclipse/grid", show_files=True))
    r.initialize = lambda ert: ert.main.ecl_config.get_gridfile
    r.getter = lambda ert: ert.main.ecl_config.get_gridfile
    r.setter = lambda ert, value: ert.main.ecl_config.set_gridfile(str(value))

    r = configPanel.addRow(PathChooser(parent, "Schedule file", "config/eclipse/schedule_file", show_files=True))
    r.initialize = lambda ert: ert.main.ecl_config.get_schedule_file
    r.getter = lambda ert: ert.main.ecl_config.get_schedule_file
    r.setter = lambda ert, value: ert.main.ecl_config.set_schedule_file(str(value))

    r = configPanel.addRow(PathChooser(parent, "Init section", "config/eclipse/init_section", show_files=True))
    r.initialize = lambda ert: ert.main.ecl_config.get_init_section
    r.getter = lambda ert: ert.main.ecl_config.get_init_section
    r.setter = lambda ert, value: ert.main.ecl_config.set_init_section(str(value))

    r = configPanel.addRow(PathChooser(parent, "Refcase", "config/eclipse/refcase", show_files=True))
    r.initialize = lambda ert: ert.main.ecl_config.get_refcase_name
    r.getter = lambda ert: ert.main.ecl_config.get_refcase_name
    r.setter = lambda ert, value: ert.main.ecl_config.load_refcase(str(value))

    r = configPanel.addRow(
        PathChooser(parent, "Schedule prediction file", "config/eclipse/schedule_prediction_file", show_files=True)
    )
    r.initialize = lambda ert: ert.main.get_schedule_prediction_file
    r.getter = lambda ert: ert.main.get_schedule_prediction_file
    r.setter = lambda ert, value: ert.main.set_schedule_prediction_file(ert.nonify(value))

    r = configPanel.addRow(KeywordTable(parent, "Data keywords", "config/eclipse/data_kw"))
    r.getter = lambda ert: ert.getSubstitutionList(ert.main.get_data_kw)

    def add_data_kw(ert, listOfKeywords):
        ert.main.clear_data_kw

        for keyword in listOfKeywords:
            ert.main.add_data_kw(keyword[0], keyword[1])

    r.setter = add_data_kw

    r.initialize = lambda ert: ert.getSubstitutionList(ert.main.get_data_kw)

    configPanel.addSeparator()

    internalPanel = ConfigPanel(parent)

    internalPanel.startPage("Static keywords")

    r = internalPanel.addRow(KeywordList(parent, "", "config/eclipse/add_static_kw"))
    r.getter = lambda ert: ert.main.ecl_config.get_static_kw_list

    def add_static_kw(ert, listOfKeywords):
        ert.main.ecl_config.clear_static_kw

        for keyword in listOfKeywords:
            ert.main.ecl_config.add_static_kw(keyword)

    r.setter = add_static_kw
    r.initialize = lambda ert: ert.main.ecl_config.get_static_kw_list
    internalPanel.endPage()

    # todo: add support for fixed length schedule keywords
    # internalPanel.startPage("Fixed length schedule keywords")
    #
    # r = internalPanel.addRow(KeywordList(widget, "", "add_fixed_length_schedule_kw"))
    # r.getter = lambda ert : ert.getAttribute("add_fixed_length_schedule_kw")
    # r.setter = lambda ert, value : ert.setAttribute("add_fixed_length_schedule_kw", value)
    #
    # internalPanel.endPage()

    configPanel.addRow(internalPanel)

    configPanel.endPage()
Example #8
0
def createQueueSystemPage(configPanel, parent):
    configPanel.startPage("Queue System")

    r = configPanel.addRow(
        ComboChoice(parent, ["LSF", "RSH", "LOCAL"], "Queue system",
                    "config/queue_system/queue_system"))
    r.getter = lambda ert: ert.enkf.site_config_get_queue_name(ert.site_config)
    r.setter = lambda ert, value: ert.enkf.site_config_set_job_queue(
        ert.site_config, str(value))

    internalPanel = ConfigPanel(parent)

    internalPanel.startPage("LSF")

    r = internalPanel.addRow(
        StringBox(parent, "LSF Queue", "config/queue_system/lsf_queue"))
    r.getter = lambda ert: ert.enkf.site_config_get_lsf_queue(ert.site_config)
    r.setter = lambda ert, value: ert.enkf.site_config_set_lsf_queue(
        ert.site_config, str(value))

    r = internalPanel.addRow(
        IntegerSpinner(parent, "Max running",
                       "config/queue_system/max_running_lsf", 1, 1000))
    r.getter = lambda ert: ert.enkf.site_config_get_max_running_lsf(
        ert.site_config)
    r.setter = lambda ert, value: ert.enkf.site_config_set_max_running_lsf(
        ert.site_config, value)

    r = internalPanel.addRow(
        StringBox(parent, "Resources", "config/queue_system/lsf_resources"))
    r.getter = lambda ert: ert.enkf.site_config_get_lsf_request(ert.site_config
                                                                )
    r.setter = lambda ert, value: ert.enkf.site_config_set_lsf_request(
        ert.site_config, str(value))

    internalPanel.endPage()

    internalPanel.startPage("RSH")

    r = internalPanel.addRow(
        PathChooser(parent,
                    "Command",
                    "config/queue_system/rsh_command",
                    show_files=True,
                    must_exist=True,
                    is_executable_file=True))
    r.getter = lambda ert: ert.enkf.site_config_get_rsh_command(ert.site_config
                                                                )
    r.setter = lambda ert, value: ert.enkf.site_config_set_rsh_command(
        ert.site_config, str(value))

    r = internalPanel.addRow(
        IntegerSpinner(parent, "Max running",
                       "config/queue_system/max_running_rsh", 1, 1000))
    r.getter = lambda ert: ert.enkf.site_config_get_max_running_rsh(
        ert.site_config)
    r.setter = lambda ert, value: ert.enkf.site_config_set_max_running_rsh(
        ert.site_config, value)

    r = internalPanel.addRow(
        KeywordTable(parent, "Host List", "config/queue_system/rsh_host_list",
                     "Host", "Number of jobs"))
    r.getter = lambda ert: ert.getHash(
        ert.enkf.site_config_get_rsh_host_list(ert.site_config), True)

    def add_rsh_host(ert, listOfKeywords):
        ert.enkf.site_config_clear_rsh_host_list(ert.site_config)

        for keyword in listOfKeywords:
            if keyword[1].strip() == "":
                max_running = 1
            else:
                max_running = int(keyword[1])

            ert.enkf.site_config_add_rsh_host(ert.site_config, keyword[0],
                                              max_running)

    r.setter = add_rsh_host

    internalPanel.endPage()

    internalPanel.startPage("LOCAL")

    r = internalPanel.addRow(
        IntegerSpinner(parent, "Max running",
                       "config/queue_system/max_running_local", 1, 1000))
    r.getter = lambda ert: ert.enkf.site_config_get_max_running_local(
        ert.site_config)
    r.setter = lambda ert, value: ert.enkf.site_config_set_max_running_local(
        ert.site_config, value)

    internalPanel.endPage()
    configPanel.addRow(internalPanel)

    configPanel.endPage()
Example #9
0
    def __init__(self, parent=None):
        ConfigPanel.__init__(self, parent)

        self.initialized = False

        layout = QtGui.QFormLayout()
        layout.setLabelAlignment(QtCore.Qt.AlignRight)

        def jid(ert):
            """Returns the pointer to the current job (self.job)"""
            jl = ert.enkf.site_config_get_installed_jobs(ert.site_config)
            return ert.job_queue.ext_joblist_get_job(jl, self.job.name)

        self.stdin = PathChooser(
            self, "", "config/systemenv/install_job_stdin", show_files=True, must_be_set=False, must_exist=True
        )
        self.stdin.setter = lambda ert, value: ert.job_queue.ext_job_set_stdin_file(jid(ert), value)
        self.stdin.getter = lambda ert: ert.job_queue.ext_job_get_stdin_file(jid(ert))

        self.stdout = PathChooser(
            self, "", "config/systemenv/install_job_stdout", show_files=True, must_be_set=True, must_exist=False
        )
        self.stdout.setter = lambda ert, value: ert.job_queue.ext_job_set_stdout_file(jid(ert), value)
        self.stdout.getter = lambda ert: ert.job_queue.ext_job_get_stdout_file(jid(ert))

        self.stderr = PathChooser(
            self, "", "config/systemenv/install_job_stderr", show_files=True, must_be_set=True, must_exist=False
        )
        self.stderr.setter = lambda ert, value: ert.job_queue.ext_job_set_stderr_file(jid(ert), value)
        self.stderr.getter = lambda ert: ert.job_queue.ext_job_get_stderr_file(jid(ert))

        self.target_file = PathChooser(
            self, "", "config/systemenv/install_job_target_file", show_files=True, must_be_set=False, must_exist=False
        )
        self.target_file.setter = lambda ert, value: ert.job_queue.ext_job_set_target_file(jid(ert), value)
        self.target_file.getter = lambda ert: ert.job_queue.ext_job_get_target_file(jid(ert))

        self.executable = PathChooser(
            self,
            "",
            "config/systemenv/install_job_executable",
            show_files=True,
            must_be_set=True,
            must_exist=True,
            is_executable_file=True,
        )
        self.executable.setter = lambda ert, value: ert.job_queue.ext_job_set_executable(jid(ert), value)
        self.executable.getter = lambda ert: ert.job_queue.ext_job_get_executable(jid(ert))

        def setEnv(ert, value):
            job = jid(ert)
            ert.job_queue.ext_job_clear_environment(job)

            for env in value:
                ert.job_queue.ext_job_add_environment(job, env[0], env[1])

        self.env = KeywordTable(self, "", "config/systemenv/install_job_env", colHead1="Variable", colHead2="Value")
        self.env.setter = setEnv
        self.env.getter = lambda ert: ert.getHash(ert.job_queue.ext_job_get_environment(jid(ert)))

        self.arglist = StringBox(self, "", "config/systemenv/install_job_arglist")
        self.arglist.setter = lambda ert, value: ert.job_queue.ext_job_set_private_args_from_string(jid(ert), value)
        self.arglist.getter = lambda ert: ert.job_queue.ext_job_get_private_args_as_string(jid(ert))

        self.max_running = IntegerSpinner(self, "", "config/systemenv/install_job_max_running", 0, 10000)
        self.max_running.setter = lambda ert, value: ert.job_queue.ext_job_set_max_running(jid(ert), value)
        self.max_running.getter = lambda ert: ert.job_queue.ext_job_get_max_running(jid(ert))

        self.max_running_minutes = IntegerSpinner(
            self, "", "config/systemenv/install_job_max_running_minutes", 0, 10000
        )
        self.max_running_minutes.setter = lambda ert, value: ert.job_queue.ext_job_set_max_running_minutes(
            jid(ert), value
        )
        self.max_running_minutes.getter = lambda ert: ert.job_queue.ext_job_get_max_running_minutes(jid(ert))

        self.startPage("Standard")
        self.add("Executable.:", self.executable)
        self.add("Stdout:", self.stdout)
        self.add("Stderr:", self.stderr)
        self.add("Target file:", self.target_file)
        self.add("Arglist.:", self.arglist)
        self.endPage()

        self.startPage("Advanced")
        self.add("Stdin:", self.stdin)
        self.add("Max running:", self.max_running)
        self.max_running.setInfo("(0=unlimited)")
        self.add("Max running minutes:", self.max_running_minutes)
        self.max_running_minutes.setInfo("(0=unlimited)")
        self.add("Env.:", self.env)
        self.endPage()
Example #10
0
def createEclipsePage(configPanel, parent):
    configPanel.startPage("Eclipse")

    r = configPanel.addRow(PathChooser(parent, "Eclipse Base", "config/eclipse/eclbase", path_format=True))
    r.initialize = lambda ert : [ert.prototype("char* ecl_config_get_eclbase(long)"),
                                 ert.prototype("void enkf_main_set_eclbase(long, char*)")]
    r.getter = lambda ert : ert.enkf.ecl_config_get_eclbase(ert.ecl_config)
    r.setter = lambda ert, value : ert.enkf.enkf_main_set_eclbase(ert.main , str(value))

    r = configPanel.addRow(PathChooser(parent, "Data file", "config/eclipse/data_file", show_files=True))
    r.initialize = lambda ert : [ert.prototype("char* ecl_config_get_data_file(long)"),
                                 ert.prototype("void enkf_main_set_data_file(long, char*)")]
    r.getter = lambda ert : ert.enkf.ecl_config_get_data_file(ert.ecl_config)
    r.setter = lambda ert, value : ert.enkf.enkf_main_set_data_file(ert.main , str(value))

    r = configPanel.addRow(PathChooser(parent, "Grid", "config/eclipse/grid", show_files=True))
    r.initialize = lambda ert : [ert.prototype("char* ecl_config_get_gridfile(long)"),
                                 ert.prototype("void ecl_config_set_grid(long, char*)")]
    r.getter = lambda ert : ert.enkf.ecl_config_get_gridfile(ert.ecl_config)
    r.setter = lambda ert, value : ert.enkf.ecl_config_set_grid(ert.ecl_config, str(value))

    r = configPanel.addRow(PathChooser(parent, "Schedule file" , "config/eclipse/schedule_file" , show_files = True))
    r.initialize = lambda ert : [ert.prototype("char* ecl_config_get_schedule_file(long)"),
                                 ert.prototype("void ecl_config_set_schedule_file(long, char*)")]
    r.getter = lambda ert : ert.enkf.ecl_config_get_schedule_file(ert.ecl_config)
    r.setter = lambda ert, value : ert.enkf.ecl_config_set_schedule_file(ert.ecl_config, str(value))


    r = configPanel.addRow(PathChooser(parent, "Init section", "config/eclipse/init_section", show_files=True))
    r.initialize = lambda ert : [ert.prototype("char* ecl_config_get_init_section(long)"),
                                 ert.prototype("void ecl_config_set_init_section(long, char*)")]
    r.getter = lambda ert : ert.enkf.ecl_config_get_init_section(ert.ecl_config)
    r.setter = lambda ert, value : ert.enkf.ecl_config_set_init_section(ert.ecl_config, str(value))


    r = configPanel.addRow(PathChooser(parent, "Refcase", "config/eclipse/refcase", show_files=True))
    r.initialize = lambda ert : [ert.prototype("char* ecl_config_get_refcase_name(long)"),
                                 ert.prototype("void ecl_config_load_refcase(long, char*)")]
    r.getter = lambda ert : ert.enkf.ecl_config_get_refcase_name(ert.ecl_config)
    r.setter = lambda ert, value : ert.enkf.ecl_config_load_refcase(ert.ecl_config, str(value))

    r = configPanel.addRow(PathChooser(parent, "Schedule prediction file", "config/eclipse/schedule_prediction_file", show_files=True))
    r.initialize = lambda ert : [ert.prototype("char* enkf_main_get_schedule_prediction_file(long)"),
                                 ert.prototype("void enkf_main_set_schedule_prediction_file(long, char*)")]
    r.getter = lambda ert : ert.enkf.enkf_main_get_schedule_prediction_file(ert.main)
    r.setter = lambda ert, value : ert.enkf.enkf_main_set_schedule_prediction_file(ert.main, ert.nonify( value ))

    r = configPanel.addRow(KeywordTable(parent, "Data keywords", "config/eclipse/data_kw"))
    r.initialize = lambda ert : [ert.prototype("long enkf_main_get_data_kw(long)"),
                                 ert.prototype("void enkf_main_clear_data_kw(long)"),
                                 ert.prototype("void enkf_main_add_data_kw(long, char*, char*)")]
    r.getter = lambda ert : ert.getSubstitutionList(ert.enkf.enkf_main_get_data_kw(ert.main))

    def add_data_kw(ert, listOfKeywords):
        ert.enkf.enkf_main_clear_data_kw(ert.main)

        for keyword in listOfKeywords:
            ert.enkf.enkf_main_add_data_kw(ert.main, keyword[0], keyword[1])

    r.setter = add_data_kw



    configPanel.addSeparator()

    internalPanel = ConfigPanel(parent)

    internalPanel.startPage("Static keywords")

    r = internalPanel.addRow(KeywordList(parent, "", "config/eclipse/add_static_kw"))
    r.initialize = lambda ert : [ert.prototype("long ecl_config_get_static_kw_list(long)"),
                                 ert.prototype("void ecl_config_clear_static_kw(long)"),
                                 ert.prototype("void ecl_config_add_static_kw(long, char*)")]
    r.getter = lambda ert : ert.getStringList(ert.enkf.ecl_config_get_static_kw_list(ert.ecl_config))

    def add_static_kw(ert, listOfKeywords):
        ert.enkf.ecl_config_clear_static_kw(ert.ecl_config)

        for keyword in listOfKeywords:
            ert.enkf.ecl_config_add_static_kw(ert.ecl_config, keyword)

    r.setter = add_static_kw

    internalPanel.endPage()

    # todo: add support for fixed length schedule keywords
    #internalPanel.startPage("Fixed length schedule keywords")
    #
    #r = internalPanel.addRow(KeywordList(widget, "", "add_fixed_length_schedule_kw"))
    #r.getter = lambda ert : ert.getAttribute("add_fixed_length_schedule_kw")
    #r.setter = lambda ert, value : ert.setAttribute("add_fixed_length_schedule_kw", value)
    #
    #internalPanel.endPage()

    configPanel.addRow(internalPanel)

    configPanel.endPage()
Example #11
0
def createSystemPage(configPanel, parent):
    configPanel.startPage("System")

    # Should call enkf_main_get_site_config_file() to get the name of
    # the site configuration file; this should only be a label - not
    # user editable.
    r = configPanel.addRow(ActiveLabel(None, "Site Config", "", "Not specified."))
    r.initialize = lambda ert : ert.main.get_site_config_file
    r.getter = lambda ert : ert.main.get_site_config_file
    r.modelConnect("casesUpdated()", r.fetchContent)
    


    r = configPanel.addRow(PathChooser(parent, "Job script", "config/systemenv/job_script", True))
    r.initialize = lambda ert : ert.main.site_config.get_job_script
    r.getter = lambda ert : ert.main.site_config.get_job_script
    r.setter = lambda ert, value : ert.main.site_config.set_job_script( str(value))

    internalPanel = ConfigPanel(parent)
    internalPanel.startPage("setenv")

    r = internalPanel.addRow(KeywordTable(parent, "", "config/systemenv/setenv"))
    r.initialize = lambda ert : ert.getHash(ert.main.site_config.get_env_hash)
    r.getter = lambda ert : ert.getHash(ert.main.site_config.get_env_hash)

    def setenv(ert, value):
        ert.main.site_config.clear_env
        for env in value:
            ert.main.site_config.setenv( env[0], env[1])

    r.setter = setenv

    internalPanel.endPage()

    internalPanel.startPage("Update path")

    r = internalPanel.addRow(KeywordTable(parent, "", "config/systemenv/update_path"))

    def get_update_path(ert):
        paths = ert.main.site_config.get_path_variables
        values =  ert.main.site_config.get_path_values

        return [[p, v] for p, v in zip(paths, values)]

    r.getter = get_update_path
    r.initialize = get_update_path
    
    def update_pathvar(ert, value):
        ert.main.site_config.clear_pathvar

        for pathvar in value:
            ert.main.site_config.update_pathvar( pathvar[0], pathvar[1])

    r.setter = update_pathvar

    internalPanel.endPage()


    internalPanel.startPage("Jobs")

    r = internalPanel.addRow(JobsPanel(parent))

    def get_jobs(ert):
        jl = ert.main.site_config.get_installed_jobs
        h  = jl.get_jobs
        stringlist = jl.alloc_list
        jobs = ert.getHash(h, return_type="c_void_p")

        private_jobs = []
        for v in stringlist:
            job = jl.get_job(v)
            path = job.get_config_file
            if job.is_private:
                private_jobs.append(Job(v, path))
        #for k, v in jobs:
        #    job = jl.get_job(v)
        #    path = job.get_config_file
        #    if v.is_private:
        #        private_jobs.append(Job(k, path))

        return private_jobs

    def update_job(ert, value):
        jl = ert.main.site_config.get_installed_jobs

        if os.path.exists(value.path):
            license = ert.main.site_config.get_license_root_path
            job = ert.job_queue.ext_job_fscanf_alloc(value.name, license, True, value.path)
            jl.add_job(value.name, job)
        else:
            job = jl.get_job(value.name)
            job.set_config_file(value.path)


    def add_job(ert, value):
        jl = ert.main.site_config.get_installed_jobs
        if not jl.has_job(value.name):
            license = ert.main.site_config.get_license_root_path
            if os.path.exists(value.path):
                job = ert.job_queue.ext_job_fscanf_alloc(value.name, license, True, value.path)
                jl.add_job(value.name, job)
            else:
                job = ert.job_queue.ext_job_alloc(value.name, license, True)
                job.set_config_file(value.path)
                jl.add_job(value.name, job)
            return True

        return False

    def remove_job(ert, value):
        jl = ert.main.site_config.get_installed_jobs
        success = jl.del_job(value.name)

        if not success:
            QtGui.QMessageBox.question(parent, "Failed", "Unable to delete job!", QtGui.QMessageBox.Ok)
            return False
        return True

    
    r.getter = get_jobs
    r.initialize = get_jobs
    r.setter = update_job
    r.insert = add_job
    r.remove = remove_job



    internalPanel.endPage()
    configPanel.addRow(internalPanel)

    r = configPanel.addRow(PathChooser(parent, "Log file", "config/systemenv/log_file", True))
    r.initialize = lambda ert: ert.main.logh.get_filename
    r.getter = lambda ert : ert.main.logh.get_filename
    r.setter = lambda ert, value : ert.main.logh.reopen(value)

    r = configPanel.addRow(ert_gui.widgets.spinnerwidgets.IntegerSpinner(parent, "Log level", "config/systemenv/log_level", 0, 1000))
    r.initialize = lambda ert : ert.main.logh.get_level
    r.getter = lambda ert : ert.main.logh.get_level
    r.setter = lambda ert, value : ert.main.logh.set_level( value)

    configPanel.endPage()
Example #12
0
File: eclipse.py Project: rolk/ert
def createEclipsePage(configPanel, parent):
    configPanel.startPage("Eclipse")

    r = configPanel.addRow(PathChooser(parent, "Eclipse Base", "config/eclipse/eclbase", path_format=True))
    r.getter = lambda ert : ert.enkf.ecl_config_get_eclbase(ert.ecl_config)
    r.setter = lambda ert, value : ert.enkf.enkf_main_set_eclbase(ert.main , str(value))

    r = configPanel.addRow(PathChooser(parent, "Data file", "config/eclipse/data_file", show_files=True))
    r.getter = lambda ert : ert.enkf.ecl_config_get_data_file(ert.ecl_config)
    r.setter = lambda ert, value : ert.enkf.enkf_main_set_data_file(ert.main , str(value))

    r = configPanel.addRow(PathChooser(parent, "Grid", "config/eclipse/grid", show_files=True))
    r.getter = lambda ert : ert.enkf.ecl_config_get_gridfile(ert.ecl_config)
    r.setter = lambda ert, value : ert.enkf.ecl_config_set_grid(ert.ecl_config, str(value))

    r = configPanel.addRow(PathChooser(parent, "Schedule file" , "config/eclipse/schedule_file" , show_files = True))
    r.getter = lambda ert : ert.enkf.ecl_config_get_schedule_file(ert.ecl_config)
    r.setter = lambda ert, value : ert.enkf.ecl_config_set_schedule_file(ert.ecl_config, str(value))


    r = configPanel.addRow(PathChooser(parent, "Init section", "config/eclipse/init_section", show_files=True))
    r.getter = lambda ert : ert.enkf.ecl_config_get_init_section(ert.ecl_config)
    r.setter = lambda ert, value : ert.enkf.ecl_config_set_init_section(ert.ecl_config, str(value))


    r = configPanel.addRow(PathChooser(parent, "Refcase", "config/eclipse/refcase", show_files=True))
    r.getter = lambda ert : ert.enkf.ecl_config_get_refcase_name(ert.ecl_config)
    r.setter = lambda ert, value : ert.enkf.ecl_config_load_refcase(ert.ecl_config, str(value))

    r = configPanel.addRow(PathChooser(parent, "Schedule prediction file", "config/eclipse/schedule_prediction_file", show_files=True))
    r.getter = lambda ert : ert.enkf.enkf_main_get_schedule_prediction_file(ert.main)
    r.setter = lambda ert, value : ert.enkf.enkf_main_set_schedule_prediction_file(ert.main, ert.nonify( value ))

    r = configPanel.addRow(KeywordTable(parent, "Data keywords", "config/eclipse/data_kw"))
    r.getter = lambda ert : ert.getSubstitutionList(ert.enkf.enkf_main_get_data_kw(ert.main))

    def add_data_kw(ert, listOfKeywords):
        ert.enkf.enkf_main_clear_data_kw(ert.main)

        for keyword in listOfKeywords:
            ert.enkf.enkf_main_add_data_kw(ert.main, keyword[0], keyword[1])

    r.setter = add_data_kw



    configPanel.addSeparator()

    internalPanel = ConfigPanel(parent)

    internalPanel.startPage("Static keywords")

    r = internalPanel.addRow(KeywordList(parent, "", "config/eclipse/add_static_kw"))
    r.getter = lambda ert : ert.getStringList(ert.enkf.ecl_config_get_static_kw_list(ert.ecl_config))

    def add_static_kw(ert, listOfKeywords):
        ert.enkf.ecl_config_clear_static_kw(ert.ecl_config)

        for keyword in listOfKeywords:
            ert.enkf.ecl_config_add_static_kw(ert.ecl_config, keyword)

    r.setter = add_static_kw

    internalPanel.endPage()

    # todo: add support for fixed length schedule keywords
    #internalPanel.startPage("Fixed length schedule keywords")
    #
    #r = internalPanel.addRow(KeywordList(widget, "", "add_fixed_length_schedule_kw"))
    #r.getter = lambda ert : ert.getAttribute("add_fixed_length_schedule_kw")
    #r.setter = lambda ert, value : ert.setAttribute("add_fixed_length_schedule_kw", value)
    #
    #internalPanel.endPage()

    configPanel.addRow(internalPanel)

    configPanel.endPage()
Example #13
0
def createSimulationsPage(configPanel, parent):
    configPanel.startPage("Simulations")

    r = configPanel.addRow(
        IntegerSpinner(parent, "Max submit", "config/simulation/max_submit", 1,
                       10000))
    r.getter = lambda ert: ert.enkf.site_config_get_max_submit(ert.site_config)
    r.setter = lambda ert, value: ert.enkf.site_config_set_max_submit(
        ert.site_config, value)

    r = configPanel.addRow(
        IntegerSpinner(parent, "Max resample",
                       "config/simulation/max_resample", 1, 10000))
    r.getter = lambda ert: ert.enkf.model_config_get_max_resample(ert.
                                                                  model_config)
    r.setter = lambda ert, value: ert.enkf.model_config_set_max_resample(
        ert.model_config, value)

    r = configPanel.addRow(ForwardModelPanel(parent))

    def get_forward_model(ert):
        site_config = ert.site_config
        installed_jobs_pointer = ert.enkf.site_config_get_installed_jobs(
            site_config)
        installed_jobs_stringlist_pointer = ert.job_queue.ext_joblist_alloc_list(
            installed_jobs_pointer)
        available_jobs = ert.getStringList(installed_jobs_stringlist_pointer,
                                           free_after_use=True)

        result = {'available_jobs': available_jobs}

        model_config = ert.model_config
        forward_model = ert.enkf.model_config_get_forward_model(model_config)
        name_string_list = ert.job_queue.forward_model_alloc_joblist(
            forward_model)
        job_names = ert.getStringList(name_string_list, free_after_use=True)

        forward_model_jobs = []

        count = 0
        for name in job_names:
            ext_job = ert.job_queue.forward_model_iget_job(
                forward_model, count)
            arg_string = ert.job_queue.ext_job_get_private_args_as_string(
                ext_job)
            help_text = ert.job_queue.ext_job_get_help_text(ext_job)
            forward_model_jobs.append((name, arg_string, help_text))
            count += 1

        result['forward_model'] = forward_model_jobs

        return result

    r.getter = get_forward_model

    def update_forward_model(ert, forward_model):
        forward_model_pointer = ert.enkf.model_config_get_forward_model(
            ert.model_config)
        ert.job_queue.forward_model_clear(forward_model_pointer)

        for job in forward_model:
            name = job[0]
            args = job[1]
            ext_job = ert.job_queue.forward_model_add_job(
                forward_model_pointer, name)
            ert.job_queue.ext_job_set_private_args_from_string(ext_job, args)

    r.setter = update_forward_model

    r = configPanel.addRow(
        PathChooser(parent, "Case table", "config/simulation/case_table"))

    def get_case_table(ert):
        return ert.enkf.model_config_get_case_table_file(ert.model_config)

    r.getter = get_case_table

    def set_case_table(ert, value):
        if os.path.exists(value):
            ert.enkf.enkf_main_set_case_table(ert.model_config,
                                              ert.nonify(value))

    r.setter = set_case_table

    r = configPanel.addRow(
        PathChooser(parent, "License path", "config/simulation/license_path"))
    r.getter = lambda ert: ert.enkf.site_config_get_license_root_path(
        ert.site_config)

    def ls(string):
        if string is None:
            return ""
        else:
            return string

    r.setter = lambda ert, value: ert.enkf.site_config_set_license_root_path(
        ert.site_config, ls(value))

    internalPanel = ConfigPanel(parent)

    internalPanel.startPage("Runpath")

    r = internalPanel.addRow(
        PathChooser(parent,
                    "Runpath",
                    "config/simulation/runpath",
                    path_format=True))

    r.getter = lambda ert: ert.enkf.model_config_get_runpath_as_char(
        ert.model_config)
    r.setter = lambda ert, value: ert.enkf.model_config_set_runpath_fmt(
        ert.model_config, str(value))
    parent.connect(r, QtCore.SIGNAL("contentsChanged()"),
                   lambda: r.modelEmit("runpathChanged()"))

    r = internalPanel.addRow(
        CheckBox(parent, "Pre clear", "config/simulation/pre_clear_runpath",
                 "Perform pre clear"))

    r.getter = lambda ert: ert.enkf.enkf_main_get_pre_clear_runpath(ert.main)
    r.setter = lambda ert, value: ert.enkf.enkf_main_set_pre_clear_runpath(
        ert.main, value)

    r = internalPanel.addRow(
        RunpathMemberPanel(widgetLabel="Retain runpath",
                           helpLabel="config/simulation/runpath_retain"))

    def get_runpath_retain_state(ert):
        ensemble_size = ert.enkf.enkf_main_get_ensemble_size(ert.main)

        result = []
        for index in range(ensemble_size):
            state = ert.enkf.enkf_main_iget_keep_runpath(ert.main, index)
            result.append((index, keep_runpath_type.resolveValue(state)))

        return result

    r.getter = get_runpath_retain_state

    def set_runpath_retain_state(ert, items):
        for item in items:
            ert.enkf.enkf_main_iset_keep_runpath(ert.main, item.member,
                                                 item.runpath_state.value())

    r.setter = set_runpath_retain_state

    internalPanel.endPage()

    internalPanel.startPage("Run Template")

    r = internalPanel.addRow(RunTemplatePanel(parent))

    def get_run_templates(ert):
        templates = ert.enkf.enkf_main_get_templates(ert.main)
        template_list = ert.enkf.ert_template_alloc_list(templates)

        template_names = ert.getStringList(template_list, free_after_use=True)
        result = []
        for name in template_names:
            template = ert.enkf.ert_template_get_template(templates, name)
            template_file = ert.enkf.ert_template_get_template_file(template)
            target_file = ert.enkf.ert_template_get_target_file(template)
            arguments = ert.enkf.ert_template_get_args_as_string(template)
            result.append((name, template_file, target_file, arguments))
        return result

    r.getter = get_run_templates

    def set_run_templates(ert, template_list):
        templates_pointer = ert.enkf.enkf_main_get_templates(ert.main)
        ert.enkf.ert_template_clear(templates_pointer)

        for template in template_list:
            ert.enkf.ert_template_add_template(templates_pointer, template[0],
                                               template[1], template[2],
                                               template[3])

    r.setter = set_run_templates

    #    r = internalPanel.addRow(MultiColumnTable(parent, "", "run_template", ["Template", "Target file", "Arguments"]))
    #    r.getter = lambda ert : ert.getAttribute("run_template")
    #    r.setter = lambda ert, value : ert.setAttribute("run_template", value)

    internalPanel.endPage()
    configPanel.addRow(internalPanel)

    configPanel.endPage()