[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