]> git.armaanb.net Git - lightcards.git/blobdiff - lightcards/lightcards.py
Remove purge-all option
[lightcards.git] / lightcards / lightcards.py
index a996ccc8a46ab9aa315ab01ab4b287534bdbedca..2fa42f49e6cc214c92b82d2d1ea8a76fc825acb9 100644 (file)
@@ -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):