# Armaan Bhojwani 2021
import argparse
-from curses import wrapper
+import curses
import os
import pkg_resources
from random import shuffle
import sys
from . import parse, progress
-from .display import Display
+from .display import Display, CursesError
from .deck import Status
parser = argparse.ArgumentParser(
description="Terminal flashcards from Markdown"
)
+ parser.add_argument(
+ "-V",
+ "--view",
+ metavar="view",
+ type=int,
+ choices=range(1, 4),
+ default=1,
+ help="specify which view to start in (default = 1)",
+ )
parser.add_argument("inp", metavar="input file", type=str, nargs=1)
parser.add_argument(
"-a",
return parser.parse_args()
-def show(args, stack, headers):
+def show(args, stack, headers, input_file):
"""
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)
+ progress.purge(get_orig()[1])
# Check for caches
idx = Status()
stack.reverse()
# Send to display
- win = Display(stack, headers, idx)
- wrapper(win.run)
-
-
-def reparse():
- """Parse arguments and input file again"""
- args = parse_args()
- os.system(f"$EDITOR {args.inp[0]}"),
- return parse.parse_html(parse.md2html(args.inp[0]))
+ win = Display(stack, headers, idx, args.view, input_file)
+ try:
+ curses.wrapper(win.run)
+ except curses.error as e:
+ raise CursesError() from e
def get_orig():
def main(args=sys.argv):
+ sys.tracebacklimit = 0
args = parse_args()
global headers, stack
- (headers, stack) = parse.parse_html(parse.md2html(args.inp[0]))
- show(args, stack, headers)
+ input_file = args.inp[0]
+ (headers, stack) = parse.parse_html(parse.md2html(input_file))
+ show(args, stack, headers, input_file)
if __name__ == "__main__":