X-Git-Url: https://git.armaanb.net/?a=blobdiff_plain;f=lightcards%2Flightcards.py;h=2fa42f49e6cc214c92b82d2d1ea8a76fc825acb9;hb=f8dbb2a02277188e677bb89ffdacb13a270df35e;hp=a996ccc8a46ab9aa315ab01ab4b287534bdbedca;hpb=105a7c55741d2777306af63ad38dfc7f79a3b370;p=lightcards.git diff --git a/lightcards/lightcards.py b/lightcards/lightcards.py index a996ccc..2fa42f4 100644 --- a/lightcards/lightcards.py +++ b/lightcards/lightcards.py @@ -14,65 +14,64 @@ from .deck import Status def parse_args(): parser = argparse.ArgumentParser( - description="Terminal flashcards from Markdown") - parser.add_argument("inp", - metavar="input file", - type=str, - nargs=1) - parser.add_argument("-f", "--flip", - action='store_true', - help="show second column first") - parser.add_argument("-p", "--purge", - action='store_true', - help="don't check cached info before starting") - parser.add_argument("-P", "--purge-all", - action='store_true', - help="don't check cached info before starting") - parser.add_argument("-r", "--reverse", - action='store_true', - help="reverse card order") - parser.add_argument("-s", "--shuffle", - action='store_true', - help="shuffle card order") - parser.add_argument("-v", "--version", - action='version', - version="lightcards 0.4.0") + description="Terminal flashcards from Markdown" + ) + parser.add_argument("inp", metavar="input file", type=str, nargs=1) + parser.add_argument( + "-a", + "--alphabetize", + action="store_true", + help="alphabetize card order", + ) + parser.add_argument( + "-f", "--flip", action="store_true", help="show second column first" + ) + parser.add_argument( + "-p", + "--purge", + action="store_true", + help="don't check cached info before starting", + ) + parser.add_argument( + "-r", "--reverse", action="store_true", help="reverse card order" + ) + parser.add_argument( + "-s", "--shuffle", action="store_true", help="shuffle card order" + ) + parser.add_argument( + "-v", "--version", action="version", version="lightcards 0.6.0" + ) return parser.parse_args() def show(args, stack, headers): """ - Manipulate deck according to passed arguments, and send it to the display - functions + Get objects from cache, manipulate deck according to passed arguments, and + send it to the display functions """ + # Purge caches if asked if args.purge: progress.purge(stack) - if args.purge_all: - progress.purge_all() - ida = progress.dive("status", stack) - if ida and not args.purge: - idx = ida - else: - idx = Status() + # Check for caches + idx = Status() + cache = progress.dive(get_orig()) + if cache: + (stack) = cache - stackb = progress.dive("stack", stack) - if stackb and not args.purge: - stack = stackb - - headerb = progress.dive("headers", stack) - if headerb and not args.purge: - headers = headerb - - if args.flip: - for x in stack: - x[0], x[1] = x[1], x[0] - headers[0], headers[1] = headers[1], headers[0] + # Manipulate deck if args.shuffle: shuffle(stack) + if args.alphabetize: + stack.sort() if args.reverse: stack.reverse() + if args.flip: + for x in stack: + x[0], x[1] = x[1], x[0] + headers[0], headers[1] = headers[1], headers[0] + # Send to display win = Display(stack, headers, idx) wrapper(win.run) @@ -86,7 +85,7 @@ def reparse(): def get_orig(): """Return original header and stack""" - return((headers, stack)) + return (headers, stack) def main(args=sys.argv):