code: def run_job(
      self,
      job: JobExecutorInterface,
  ):
      job_info = SubmittedJobInfo(job=job)
      self.report_job_submission(job_info)
      self.report_job_success(job_info)
  
file_path: snakemake/snakemake/executors/dryrun.py
imports: from snakemake_interface_executor_plugins.executors.base import AbstractExecutor
  from snakemake_interface_executor_plugins.jobs import JobExecutorInterface
  from snakemake_interface_executor_plugins.settings import CommonSettings
  from snakemake_interface_executor_plugins.executors.base import SubmittedJobInfo
  from snakemake.common import async_run
  from snakemake.logging import logger
label_desc: Use image node_id 1 for calling the Executor obj's underlying member method code with example usage: obj.run_job(job) without return types