]> git.armaanb.net Git - lightcards.git/blob - lightcards/progress.py
Reformat using Black
[lightcards.git] / lightcards / progress.py
1 # Save and resume progress in lightcards
2 # Armaan Bhojwani 2021
3
4 import hashlib
5 import os
6 import pickle
7 import shutil
8
9 global dired
10 dired = f"{os.path.expanduser('~')}/.cache/lightcards/"
11
12
13 def name_gen(stra):
14     hasher = hashlib.md5()
15     hasher.update(str(stra).encode("utf-8"))
16     return hasher.hexdigest()
17
18
19 def make_dirs(dired):
20     if not os.path.exists(dired):
21         os.makedirs(dired)
22
23
24 def dump(obj, stra):
25     make_dirs(dired)
26
27     pickle.dump(obj, open(f"{dired}/{name_gen(stra)}.p", "wb"))
28
29
30 def dive(stra):
31     file = f"{dired}/{name_gen(stra)}.p"
32     make_dirs(dired)
33     if os.path.exists(file):
34         return pickle.load(open(file, "rb"))
35     else:
36         return False
37
38
39 def purge(stra):
40     file = f"{dired}/{name_gen(stra)}/"
41     if os.path.exists(file):
42         shutil.rmtree(file)
43
44
45 def purge_all():
46     if os.path.exists(dired):
47         shutil.rmtree(dired)