* 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))
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to