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")
+ parser = argparse.ArgumentParser(
+ 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
+ # 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]
- if args.shuffle:
- shuffle(stack)
- elif args.reverse:
- stack.reverse()
+ # Send to display
win = Display(stack, headers, idx)
wrapper(win.run)
os.system(f"$EDITOR {args.inp[0]}"),
return parse.parse_html(parse.md2html(args.inp[0]))
+
def get_orig():
"""Return original header and stack"""
- return((headers, stack))
+ return (headers, stack)
+
def main(args=sys.argv):
args = parse_args()