def get_step(step_name, inputs, outputs, jobs, type_="unix"): step_source = "/ert/ee/test_ee_id/real/0/step/0" step_builder = ee.create_step_builder() for idx, (name, executable, args) in enumerate(jobs): step_builder.add_job( ee.create_job_builder() .set_id(str(idx)) .set_name(name) .set_executable(executable) .set_args(args) .set_step_source(step_source) ) step_builder.set_source(source=step_source) step_builder.set_id("0") step_builder.set_name(step_name) for name, path, mime in inputs: step_builder.add_input( ee.create_file_io_builder() .set_name(name) .set_path(Path(path)) .set_mime(mime) .set_executable() ) for name, path, mime in outputs: step_builder.add_output( ee.create_file_io_builder().set_name(name).set_path(path).set_mime(mime) ) step_builder.set_type(type_) return step_builder.build()
def _get_reals(self): real_builders = [] for iens in range(0, self.config[ids.REALIZATIONS]): real_builder = create_realization_builder().active(True).set_iens(iens) for step in self.config[ids.STEPS]: step_id = uuid.uuid4() step_source = f"/ert/ee/{{ee_id}}/real/{iens}/step/{step_id}" step_builder = ( create_step_builder() .set_id(step_id) .set_name(step[ids.NAME]) .set_source(step_source) .set_type(step[ids.TYPE]) ) for io in step.get(ids.INPUTS, []): input_builder = ( create_file_io_builder() .set_name(io[ids.RECORD]) .set_path(io[ids.LOCATION]) .set_mime(io[ids.MIME]) ) if io.get(ids.IS_EXECUTABLE): input_builder.set_executable() step_builder.add_input(input_builder) for io in step.get(ids.OUTPUTS, []): step_builder.add_output( create_file_io_builder() .set_name(io[ids.RECORD]) .set_path(io[ids.LOCATION]) .set_mime(io[ids.MIME]) ) for job in step[ids.JOBS]: job_builder = ( create_job_builder() .set_id(str(uuid.uuid4())) .set_name(job[ids.NAME]) .set_executable(job[ids.EXECUTABLE]) .set_args(job.get(ids.ARGS)) .set_step_source(step_source) ) step_builder.add_job(job_builder) real_builder.add_step(step_builder) real_builders.append(real_builder) return [builder.build() for builder in real_builders]