def parse_time_variables(input_string, parse_time=None): """Parses an input string and uses the Tron-style dateparsing to replace time variables. Currently supports only the date/time variables listed in the tron documentation: https://pythonhosted.org/tron/command_context.html#built-in-command-context-variables :param input_string: input string to be parsed :param parse_time: Reference Datetime object to parse the date and time strings, defaults to now. :returns: A string with the date and time variables replaced """ if parse_time is None: parse_time = datetime.datetime.now() # We build up a tron context object that has the right # methods to parse tron-style time syntax job_context = tron_command_context.JobRunContext(tron_command_context.CommandContext()) # The tron context object needs the run_time attibute set so it knows # how to interpret the date strings job_context.job_run.run_time = parse_time # The job_context object works like a normal dictionary for string replacement return input_string % job_context
def parse_time_variables(command: str, parse_time: datetime.datetime = None) -> str: """Parses an input string and uses the Tron-style dateparsing to replace time variables. Currently supports only the date/time variables listed in the tron documentation: http://tron.readthedocs.io/en/latest/command_context.html#built-in-cc :param input_string: input string to be parsed :param parse_time: Reference Datetime object to parse the date and time strings, defaults to now. :returns: A string with the date and time variables replaced """ if parse_time is None: parse_time = datetime.datetime.now() # We build up a tron context object that has the right # methods to parse tron-style time syntax job_context = tron_command_context.JobRunContext( tron_command_context.CommandContext()) # The tron context object needs the run_time attribute set so it knows # how to interpret the date strings job_context.job_run.run_time = parse_time return StringFormatter(job_context).format(command)