diff options
author | Alexander Kabui | 2022-03-07 11:05:24 +0300 |
---|---|---|
committer | GitHub | 2022-03-07 11:05:24 +0300 |
commit | f733cf955ed5137c4a1a67860b26bbaf23650c83 (patch) | |
tree | d55ca53915a58b6ca8d6aba747edd9ccdd7515fd | |
parent | c71218d9221789f850f5d93329f2d466527d3c52 (diff) | |
download | genenetwork2-f733cf955ed5137c4a1a67860b26bbaf23650c83.tar.gz |
Fix/caching (#679)
* unlink file for JSONDecodeError
* fix for avoiding caching empty dicts
* fix for checking null dicts
-rw-r--r-- | wqflask/wqflask/correlation/pre_computes.py | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/wqflask/wqflask/correlation/pre_computes.py b/wqflask/wqflask/correlation/pre_computes.py index 975a53b8..cb2f4470 100644 --- a/wqflask/wqflask/correlation/pre_computes.py +++ b/wqflask/wqflask/correlation/pre_computes.py @@ -6,29 +6,40 @@ from pathlib import Path from base.data_set import query_table_timestamp from base.webqtlConfig import TMPDIR +from json.decoder import JSONDecodeError + def fetch_all_cached_metadata(dataset_name): """in a gvein dataset fetch all the traits metadata""" file_name = generate_filename(dataset_name, suffix="metadata") - file_path = os.path.join(TMPDIR, file_name) + file_path = Path(TMPDIR, file_name) try: with open(file_path, "r+") as file_handler: dataset_metadata = json.load(file_handler) + return (file_path, dataset_metadata) except FileNotFoundError: - Path(file_path).touch(exist_ok=True) - return (file_path, {}) + pass + + except JSONDecodeError: + file_path.unlink() + + file_path.touch(exist_ok=True) + + return (file_path, {}) def cache_new_traits_metadata(dataset_metadata: dict, new_traits_metadata, file_path: str): """function to cache the new traits metadata""" - if bool(new_traits_metadata): - dataset_metadata.update(new_traits_metadata) - + if (dataset_metadata == {} and new_traits_metadata == {}): + return + + dataset_metadata.update(new_traits_metadata) + with open(file_path, "w+") as file_handler: json.dump(dataset_metadata, file_handler) |