class RealExecutor(AbstractExecutor): def __init__( self, workflow, dag, printreason=False, quiet=False, printshellcmds=False, output_wait=3): super().__init__( workflow, dag, printreason=printreason, quiet=quiet, printshellcmds=printshellcmds, output_wait=output_wait) self.stats = Stats() def _run(self, job, callback=None, error_callback=None): super()._run(job) self.stats.report_job_start(job) try: self.workflow.persistence.started(job) except IOError as e: logger.warning("Failed to set marker file for job started ({}). " "Snakemake will work, but cannot ensure that output files " "are complete in case of a kill signal or power loss. " "Please ensure write permissions for the " "directory {}".format( e, self.workflow.persistence.path)) def finish_job(self, job): super().finish_job(job) self.stats.report_job_end(job) try: self.workflow.persistence.finished(job) except IOError as e: logger.warning("Failed to remove marker file for job started " "({}). Please ensure write permissions for the " "directory {}".format( e, self.workflow.persistence.path))
def __init__( self, workflow, dag, printreason=False, quiet=False, printshellcmds=False, output_wait=3): super().__init__( workflow, dag, printreason=printreason, quiet=quiet, printshellcmds=printshellcmds, output_wait=output_wait) self.stats = Stats()
def __init__(self, workflow, dag, printreason=False, quiet=False, printshellcmds=False, latency_wait=3, benchmark_repeats=1): super().__init__(workflow, dag, printreason=printreason, quiet=quiet, printshellcmds=printshellcmds, latency_wait=latency_wait, benchmark_repeats=benchmark_repeats) self.stats = Stats()
class RealExecutor(AbstractExecutor): def __init__(self, workflow, dag, printreason=False, quiet=False, printshellcmds=False, latency_wait=3, benchmark_repeats=1): super().__init__(workflow, dag, printreason=printreason, quiet=quiet, printshellcmds=printshellcmds, latency_wait=latency_wait, benchmark_repeats=benchmark_repeats) self.stats = Stats() def _run(self, job, callback=None, error_callback=None): super()._run(job) self.stats.report_job_start(job) try: self.workflow.persistence.started(job) except IOError as e: logger.info( "Failed to set marker file for job started ({}). " "Snakemake will work, but cannot ensure that output files " "are complete in case of a kill signal or power loss. " "Please ensure write permissions for the " "directory {}".format(e, self.workflow.persistence.path)) def finish_job(self, job, upload_remote=True): super().finish_job(job, upload_remote=upload_remote) self.stats.report_job_end(job) try: self.workflow.persistence.finished(job) except IOError as e: logger.info("Failed to remove marker file for job started " "({}). Please ensure write permissions for the " "directory {}".format(e, self.workflow.persistence.path)) def format_job_pattern(self, pattern, job=None, **kwargs): overwrite_workdir = [] if self.workflow.overwrite_workdir: overwrite_workdir.extend(("--directory", self.workflow.overwrite_workdir)) overwrite_config = [] if self.workflow.overwrite_configfile: overwrite_config.extend(("--configfile", self.workflow.overwrite_configfile)) if self.workflow.config_args: overwrite_config.append("--config") overwrite_config.extend(self.workflow.config_args) printshellcmds = "" if self.workflow.printshellcmds: printshellcmds = "-p" target = job.output if job.output else job.rule.name return format(pattern, job=job, overwrite_workdir=overwrite_workdir, overwrite_config=overwrite_config, printshellcmds=printshellcmds, workflow=self.workflow, cores=self.cores, benchmark_repeats=self.benchmark_repeats, target=target, **kwargs)