]> git.armaanb.net Git - lightcards.git/blobdiff - lightcards/progress.py
Fix pickle implementation
[lightcards.git] / lightcards / progress.py
index f096da4bb3edd3e332fb0dd27652742bbf25ad02..3be0247e42170c3243cf03814dc09b51b0ab38bc 100644 (file)
@@ -6,30 +6,31 @@ import os
 import pickle
 import shutil
 
+dired = f"{os.path.expanduser('~')}/.cache/lightcards/"
 
-def gen_hash(inp):
-    hasher = hashlib.md5()
-    hasher.update(inp)
 
-    return(hasher.hexdigest())
+def name_gen(stra):
+    """Generate hash of stack for name of pickle file"""
+    return hashlib.md5(str([str(x) for x in stra]).encode("utf-8")).hexdigest()
 
 
-def name_gen(stra):
-    return gen_hash(str(stra).encode("utf-8"))
+def make_dirs(dired):
+    """mkdir -p equivalent"""
+    if not os.path.exists(dired):
+        os.makedirs(dired)
 
 
-def dump(obj, typer, stra):
-    dired = f"{os.path.expanduser('~')}/.cache/lightcards/{name_gen(stra)}/"
-    if os.path.exists(dired):
-        shutil.rmtree(dired)
-    os.makedirs(dired)
+def dump(obj, stra):
+    """Write pickle file"""
+    make_dirs(dired)
 
-    pickle.dump(obj, open(f"{dired}/{typer}.p", "wb"))
+    pickle.dump(obj, open(f"{dired}/{name_gen(stra)}.p", "wb"))
 
 
-def dive(typer, stra):
-    file = f"{os.path.expanduser('~')}/.cache/lightcards/{name_gen(stra)}/" + \
-        f"{typer}.p"
+def dive(stra):
+    """Get pickle file"""
+    file = f"{dired}/{name_gen(stra)}.p"
+    make_dirs(dired)
     if os.path.exists(file):
         return pickle.load(open(file, "rb"))
     else:
@@ -37,16 +38,7 @@ def dive(typer, stra):
 
 
 def purge(stra):
-    dired = f"{os.path.expanduser('~')}/.cache/lightcards/{name_gen(stra)}/"
-    shutil.rmtree(dired)
-
-def purge_all():
-    dired = f"{os.path.expanduser('~')}/.cache/lightcards/"
-    shutil.rmtree(dired)
-
-def main():
-    pass
-
-
-if __name__ == "__main__":
-    main()
+    """Delete pickle file"""
+    file = f"{dired}/{name_gen(stra)}/"
+    if os.path.exists(file):
+        shutil.rmtree(file)