]> git.armaanb.net Git - lightcards.git/blob - lightcards/progress.py
Fix purge option
[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
8 dired = f"{os.path.expanduser('~')}/.cache/lightcards/"
9
10
11 def name_gen(stra):
12     """Generate hash of stack for name of pickle file"""
13     return hashlib.md5(str([str(x) for x in stra]).encode("utf-8")).hexdigest()
14
15
16 def make_dirs(dired):
17     """mkdir -p equivalent"""
18     if not os.path.exists(dired):
19         os.makedirs(dired)
20
21
22 def dump(obj, stra):
23     """Write pickle file"""
24     make_dirs(dired)
25
26     pickle.dump(obj, open(f"{dired}/{name_gen(stra)}.p", "wb"))
27
28
29 def dive(stra):
30     """Get pickle file"""
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     """Delete pickle file"""
41     file = f"{dired}/{name_gen(stra)}.p"
42     if os.path.exists(file):
43         os.remove(file)