def zip_job(job_ini, archive_zip='', risk_ini='', oq=None, log=logging.info): """ Zip the given job.ini file into the given archive, together with all related files. """ if not os.path.exists(job_ini): sys.exit('%s does not exist' % job_ini) archive_zip = archive_zip or 'job.zip' if isinstance(archive_zip, str): # actually it should be path-like if not archive_zip.endswith('.zip'): sys.exit('%s does not end with .zip' % archive_zip) if os.path.exists(archive_zip): sys.exit('%s exists already' % archive_zip) # do not validate to avoid permissions error on the export_dir oq = oq or oqvalidation.OqParam(**readinput.get_params(job_ini)) if risk_ini: risk_ini = os.path.normpath(os.path.abspath(risk_ini)) oqr = readinput.get_oqparam(risk_ini) del oqr.inputs['job_ini'] oq.inputs.update(oqr.inputs) oq.shakemap_uri.update(oqr.shakemap_uri) files = readinput.get_input_files(oq) if risk_ini: files = [risk_ini] + files return general.zipfiles(files, archive_zip, log=log)
def get_calc(self, testfile, job_ini, **kw): """ Return the outputs of the calculation as a dictionary """ self.testdir = os.path.dirname(testfile) if os.path.isfile(testfile) \ else testfile params = readinput.get_params(os.path.join(self.testdir, job_ini), kw) oqvalidation.OqParam.calculation_mode.validator.choices = tuple( base.calculators) oq = oqvalidation.OqParam(**params) oq.validate() # change this when debugging the test log = logs.init('calc', params) return base.calculators(oq, log.calc_id)
def get_calc(self, testfile, job_ini, **kw): """ Return the outputs of the calculation as a dictionary """ self.testdir = os.path.dirname(testfile) if os.path.isfile(testfile) \ else testfile inis = [os.path.join(self.testdir, ini) for ini in job_ini.split(',')] params = readinput.get_params(inis) params.update(kw) oq = oqvalidation.OqParam(**params) oq.validate() # change this when debugging the test monitor = Monitor(self.testdir) return base.calculators(oq, monitor)
def get_calc(self, testfile, job_ini, **kw): """ Return the outputs of the calculation as a dictionary """ self.testdir = os.path.dirname(testfile) if os.path.isfile(testfile) \ else testfile inis = [os.path.join(self.testdir, ini) for ini in job_ini.split(',')] inputs = {k[:-5]: kw.pop(k) for k in list(kw) if k.endswith('_file')} params = readinput.get_params(inis, **inputs) params.update(kw) oqvalidation.OqParam.calculation_mode.validator.choices = tuple( base.calculators) oq = oqvalidation.OqParam(**params) oq.validate() # change this when debugging the test monitor = performance.Monitor(self.testdir) return base.calculators(oq, monitor)