]> git.armaanb.net Git - lightcards.git/commitdiff
Clean up pickle implementation
authorArmaan Bhojwani <me@armaanb.net>
Mon, 1 Feb 2021 15:06:56 +0000 (10:06 -0500)
committerArmaan Bhojwani <me@armaanb.net>
Mon, 1 Feb 2021 15:06:56 +0000 (10:06 -0500)
lightcards/display.py
lightcards/lightcards.py
lightcards/parse.py
lightcards/progress.py

index a1a2c2171c78a97cfc15a0f1be243a5e45d21a5b..a2a97c3c2e1284e886daac3015c2200f6338de23 100644 (file)
@@ -24,9 +24,7 @@ class Display():
         self.get_key()
 
     def leave(self):
-        progress.dump(self.obj, "status", self.stack)
-        progress.dump(self.stack, "stack", self.stack)
-        progress.dump(self.headers, "headers", self.stack)
+        progress.dump((self.obj, self.stack, self.headers), self.stack)
         sys.exit(0)
 
     def disp_bar(self):
index ecd18d2cb40043c197758fb42a4c7dd0501eba33..768ac6852a14eb9d18a9c2960125db0ced324b2f 100644 (file)
@@ -25,6 +25,7 @@ def parse_args():
     parser.add_argument("-p", "--purge",
                         action='store_true',
                         help="don't check cached info before starting")
+    # TODO: don't require input file when using  -P
     parser.add_argument("-P", "--purge-all",
                         action='store_true',
                         help="don't check cached info before starting")
@@ -52,20 +53,12 @@ def show(args, stack, headers):
         progress.purge_all()
 
     # Check for caches
-    ida = progress.dive("status", stack)
+    ida = progress.dive(stack)
     if ida:
-        idx = ida
+        (idx, stack, headers) = ida
     else:
         idx = Status()
 
-    stackb = progress.dive("stack", stack)
-    if stackb:
-        stack = stackb
-
-    headerb = progress.dive("headers", stack)
-    if headerb:
-        headers = headerb
-
     # Manipulate deck
     if args.flip:
         for x in stack:
index 9b1820af5214edc3c9911721d8bb12eb04dcd5c9..d70c4e977935752853167a775dcc7f8aacb96dc6 100644 (file)
@@ -11,8 +11,7 @@ from .deck import Card
 def md2html(file):
     """Use the markdown module to convert input to HTML"""
     try:
-        with open(file, "r", encoding="utf-8") as input_file:
-            return markdown.markdown(input_file.read(), extensions=['tables'])
+        return markdown.markdown(open(file, "r").read(), extensions=['tables'])
     except FileNotFoundError:
         print(f"lightcards: \"{file}\": No such file or directory")
         exit(1)
index b721a49148219c8bbeeee87f76086a6a90c14dc1..665ae315485cba08b742073af68e188608f031d3 100644 (file)
@@ -6,29 +6,29 @@ import os
 import pickle
 import shutil
 
+global dired
+dired = f"{os.path.expanduser('~')}/.cache/lightcards/"
 
-def gen_hash(inp):
+def name_gen(stra):
     hasher = hashlib.md5()
-    hasher.update(inp)
-
+    hasher.update(str(stra).encode("utf-8"))
     return(hasher.hexdigest())
 
 
-def name_gen(stra):
-    return gen_hash(str(stra).encode("utf-8"))
-
-
-def dump(obj, typer, stra):
-    dired = f"{os.path.expanduser('~')}/.cache/lightcards/{name_gen(stra)}/"
+def make_dirs(dired):
     if not os.path.exists(dired):
         os.makedirs(dired)
 
-    pickle.dump(obj, open(f"{dired}/{typer}.p", "wb"))
 
+def dump(obj, stra):
+    make_dirs(dired)
 
-def dive(typer, stra):
-    file = f"{os.path.expanduser('~')}/.cache/lightcards/{name_gen(stra)}/" + \
-        f"{typer}.p"
+    pickle.dump(obj, open(f"{dired}/{name_gen(stra)}.p", "wb"))
+
+
+def dive(stra):
+    file = f"{dired}/{name_gen(stra)}.p"
+    make_dirs(dired)
     if os.path.exists(file):
         return pickle.load(open(file, "rb"))
     else:
@@ -36,15 +36,14 @@ def dive(typer, stra):
 
 
 def purge(stra):
-    dired = f"{os.path.expanduser('~')}/.cache/lightcards/{name_gen(stra)}/"
-    shutil.rmtree(dired)
+    file = f"{dired}/{name_gen(stra)}/"
+    if os.path.exists(file):
+        shutil.rmtree(file)
 
-def purge_all():
-    dired = f"{os.path.expanduser('~')}/.cache/lightcards/"
-    shutil.rmtree(dired)
 
-def main():
-    pass
+def purge_all():
+    if os.path.exists(dired):
+        shutil.rmtree(dired)
 
 
 if __name__ == "__main__":