@classmethod
def main(cls, timepoint_dir=None, **cls_init_args):
    "Main method to run a timepoint.\n\n        Parse sys.argv to find an (optional) scheduled_start time as a positional\n        argument. Any arguments that contain an '=' will be assumed to be\n        python variable definitions to pass to the class init method. (Leading\n        '-' or '--' will be stripped, and internal '-'s will be converted to '_'.)\n\n        e.g. this allows the following usage: ./acquire.py --dry-run=True --log-level=logging.DEBUG\n\n        Parameters:\n            timepoint_dir: location of timepoint directory. If not specified, default\n                to the parent dir of the file that defines the class that this\n                method is called on.\n            **cls_init_args: dict of arguments to pass to the class init method.\n        "
    if (timepoint_dir is None):
        timepoint_dir = pathlib.Path(inspect.getfile(cls)).parent
    scheduled_start = None
    for arg in sys.argv[1:]:
        if arg.count('='):
            while arg.startswith('-'):
                arg = arg[1:]
            arg = arg.replace('-', '_')
            exec(arg, dict(logging=logging), cls_init_args)
        elif (scheduled_start is None):
            scheduled_start = float(arg)
        else:
            raise ValueError('More than one schedule start time provided')
    if (scheduled_start is None):
        scheduled_start = time.time()
    handler = cls(timepoint_dir, **cls_init_args)
    next_run_time = handler.run_timepoint(scheduled_start)
    if next_run_time:
        print('next run:{}'.format(next_run_time))
Main method to run a timepoint.

Parse sys.argv to find an (optional) scheduled_start time as a positional
argument. Any arguments that contain an '=' will be assumed to be
python variable definitions to pass to the class init method. (Leading
'-' or '--' will be stripped, and internal '-'s will be converted to '_'.)

e.g. this allows the following usage: ./acquire.py --dry-run=True --log-level=logging.DEBUG

Parameters:
    timepoint_dir: location of timepoint directory. If not specified, default
        to the parent dir of the file that defines the class that this
        method is called on.
    **cls_init_args: dict of arguments to pass to the class init method.
@classmethod
def main(cls, timepoint_dir=None, **cls_init_args):
    "Main method to run a timepoint.\n\n        Parse sys.argv to find an (optional) scheduled_start time as a positional\n        argument. Any arguments that contain an '=' will be assumed to be\n        python variable definitions to pass to the class init method. (Leading\n        '-' or '--' will be stripped, and internal '-'s will be converted to '_'.)\n\n        e.g. this allows the following usage: ./acquire.py --dry-run=True --log-level=logging.DEBUG\n\n        Parameters:\n            timepoint_dir: location of timepoint directory. If not specified, default\n                to the parent dir of the file that defines the class that this\n                method is called on.\n            **cls_init_args: dict of arguments to pass to the class init method.\n        "
    if (timepoint_dir is None):
        timepoint_dir = pathlib.Path(inspect.getfile(cls)).parent
    scheduled_start = None
    for arg in sys.argv[1:]:
        if arg.count('='):
            while arg.startswith('-'):
                arg = arg[1:]
            arg = arg.replace('-', '_')
            exec(arg, dict(logging=logging), cls_init_args)
        elif (scheduled_start is None):
            scheduled_start = float(arg)
        else:
            raise ValueError('More than one schedule start time provided')
    if (scheduled_start is None):
        scheduled_start = time.time()
    handler = cls(timepoint_dir, **cls_init_args)
    next_run_time = handler.run_timepoint(scheduled_start)
    if next_run_time:
        print('next run:{}'.format(next_run_time))