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)
def get_orig():
"""Return original header and stack"""
- return((headers, stack))
+ return (headers, stack)
def main(args=sys.argv):