X-Git-Url: https://git.armaanb.net/?a=blobdiff_plain;f=lightcards%2Fprogress.py;h=a4fdc43b267b687e984210b1e7670c4f2dfacf23;hb=1c372ca43e37df3086fea5322aca3196bc3c325c;hp=f096da4bb3edd3e332fb0dd27652742bbf25ad02;hpb=e99950c3023a64f68cdc968e2759f45653d6b9af;p=lightcards.git diff --git a/lightcards/progress.py b/lightcards/progress.py index f096da4..a4fdc43 100644 --- a/lightcards/progress.py +++ b/lightcards/progress.py @@ -4,32 +4,36 @@ import hashlib import os import pickle -import shutil +xdg = os.environ.get("XDG_CACHE_HOME") +if xdg: + dired = f"{os.path.expanduser('~')}/{xdg}/lightcards/" +else: + 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 +41,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)}.p" + if os.path.exists(file): + os.remove(file)