[Tutor] get aws path from argParser
sebastian cheung
sebastian_cheung at yahoo.com
Fri Jan 8 09:04:10 EST 2016
* take an s3 destination path as an argument optionally containing the string ++DATE++ as a placeholder (e.g. s3://my-bucket/objects/++DATE++/, s3://my-bucket/objects/++DATE++/file-++DATE++.txt and s3://my-bucket/objects/ should all be valid)
I already have something for something more simple, but for s3 maybe use awscli etc? Thanks Seb
def dateType(string):
"""
Convert a date string to a date object
"""
try:
date = datetime.datetime.strptime(string, '%Y-%m-%d').date()
except ValueError:
msg = "%r is not a valid date" % string
raise argparse.ArgumentTypeError(msg)
return date
def is_valid_file(parser, arg):
if not os.path.exists(arg):
parser.error("The file %s does not exist!" % arg)
else:
return open(arg, 'r')parser = argparse.ArgumentParser(
description="Take CLI options called start-date and end-date, which must be formatted YYYY-MM-DD. "
"These should default to today if not supplied",
epilog="See http://bitbucket.org/niceseb/ for details about the Project Time Tracker.")
parser.add_argument('-e', '--end-date', metavar='DATE', type=dateType, default=datetime.date.today(),
help='the date tracking data should start at, inclusive in the format YYYY-MM-DD (defaults to today)')
parser.add_argument('-s', '--start-date', metavar='DATE', type=dateType, default=datetime.date.today(),
help='the date tracking data should end at, inclusive in the format YYYY-MM-DD (defaults to today)')
parser.add_argument('-v', action='version', version='%(prog)s 1.0')
parser.add_argument('-i', dest="filename", required=False, help="input file name", metavar="FILE",
type=lambda x: is_valid_file(parser, x))
More information about the Tutor
mailing list