+# Save and resume progress in lightcards
+# Armaan Bhojwani 2021
+
+import hashlib
+import os
+import pickle
+import shutil
+
+
+def gen_hash(inp):
+ hasher = hashlib.md5()
+ hasher.update(inp)
+
+ 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)}/"
+ if os.path.exists(dired):
+ shutil.rmtree(dired)
+ os.makedirs(dired)
+
+ pickle.dump(obj, open(f"{dired}/{typer}.p", "wb"))
+
+
+def dive(typer, stra):
+ file = f"{os.path.expanduser('~')}/.cache/lightcards/{name_gen(stra)}/" + \
+ f"{typer}.p"
+ if os.path.exists(file):
+ return pickle.load(open(file, "rb"))
+ else:
+ return False
+
+
+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()