Source code for chemsmart.cli.jobrunner

import functools
import logging

import click

logger = logging.getLogger(__name__)


[docs] def click_jobrunner_options(f): """Common job runner configuration options.""" @click.option( "-s", "--server", type=str, default=None, help="Server name. If not specified, will try to automatically " "determine and use the current server.", ) @click.option( "-n", "--num-cores", type=int, help="Number of cores for each job.", ) @click.option( "-g", "--num-gpus", type=int, default=None, help="Number of GPUs per node. Defaults to number of GPUs on " "the specified server if None.", ) @click.option( "-m", "--mem-gb", type=int, default=None, help="Memory in GB." ) @click.option( "--fake/--no-fake", default=False, type=bool, help="If true, fake job runners will be used.", ) @click.option( "--scratch/--no-scratch", default=None, type=bool, help="Run in scratch mode or without a scratch folder.", ) @click.option( "--delete-scratch/--no-delete-scratch", default=False, type=bool, help="If job was run in scratch, delete the scratch folder after the job " "is completed successfully.", ) @functools.wraps(f) def wrapper_common_options(*args, **kwargs): return f(*args, **kwargs) return wrapper_common_options