# HG changeset patch # User Daniel O'Connor # Date 1515622420 -37800 # Node ID aa18210c2703a84fbd979fe6dc6b0f1c84b79e40 # Parent 3f22fa1f32d5b0f55ebe99fcc740d30f8427cfaa Improve start/end/days handling - Allow the user to specify nothing to graph todays data. - Fix bug when only specifying days. - When specifying days finish at the end of today. diff -r 3f22fa1f32d5 -r aa18210c2703 graph.py --- a/graph.py Fri Dec 22 16:30:45 2017 +0100 +++ b/graph.py Thu Jan 11 08:43:40 2018 +1030 @@ -66,27 +66,25 @@ if args.days is not None and args.days < 0: parser.error('days must be non-negative') - # Can specify.. - # Start and end - # Start and days or Start - # End and days or End - # Nothing - # Want to end up with a start & end selector = [args.start is not None, args.end is not None, args.days is not None] - if selector == [True, True, False]: + if selector == [True, True, False]: # Start and end pass - elif selector == [True, False, True] or selector == [True, False, False]: + elif selector == [True, False, True] or selector == [True, False, False]: # Start and days or start if args.days == None: args.days = 1 args.end = args.start + datetime.timedelta(days = args.days) - elif selector == [False, True, True] or selector == [False, True, False]: + elif selector == [False, True, True] or selector == [False, True, False]: # End and days or end if args.days == None: args.days = 1 args.start = args.end - datetime.timedelta(days = args.days) - elif selector == [False, False, True]: - end = datetime.date.today() - end = datetime.datetime(start.year, start.month, start.day) + elif selector == [False, False, True]: # Days + args.end = datetime.date.today() + datetime.timedelta(days = 1) + args.end = datetime.datetime(args.end.year, args.end.month, args.end.day) args.start = args.end - datetime.timedelta(days = args.days) + elif selector == [False, False, False]: # Nothing + args.start = datetime.date.today() + args.start = datetime.datetime(args.start.year, args.start.month, args.start.day) + args.end = args.start + datetime.timedelta(days = 1) else: parser.error('can\'t specify days, start and end simultaneously')