From f4dca4164c058daeb3db8b9f58cf61c54c8a7e5a Mon Sep 17 00:00:00 2001 From: profitroll Date: Thu, 11 Aug 2022 11:27:17 +0200 Subject: [PATCH] Additional exceptions added --- modules/utils.py | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/modules/utils.py b/modules/utils.py index ddab2c8..51a46ae 100644 --- a/modules/utils.py +++ b/modules/utils.py @@ -1,24 +1,37 @@ try: import ujson as json + from ujson import JSONDecodeError as JSONDecodeError except ModuleNotFoundError: import json + from json import JSONDecodeError as JSONDecodeError import os +import sys +import traceback + from signal import SIGKILL -import psutil +from modules.logging import logWrite def jsonLoad(filename): """Loads arg1 as json and returns its contents""" with open(filename, "r", encoding='utf8') as file: - output = json.loads(file.read()) + try: + output = json.loads(file.read()) + except JSONDecodeError: + logWrite(f"Could not load json file {filename}: file seems to be incorrect!\n{traceback.print_exc()}") + except FileNotFoundError: + logWrite(f"Could not load json file {filename}: file does not seem to exist!\n{traceback.print_exc()}") file.close() return output def jsonSave(contents, filename): """Dumps dict/list arg1 to file arg2""" - with open(filename, "w", encoding='utf8') as file: - file.write(json.dumps(contents, ensure_ascii=False, indent=4)) - file.close() + try: + with open(filename, "w", encoding='utf8') as file: + file.write(json.dumps(contents, ensure_ascii=False, indent=4)) + file.close() + except Exception as exp: + logWrite(f"Could not save json file {filename}: {exp}\n{traceback.print_exc()}") return @@ -87,6 +100,12 @@ def locale(key: str, *args: list, locale=configGet("locale")): except KeyError: return f'⚠️ Locale in config is invalid: could not get "{key}" in {str(args)} from locale "{locale}"' +try: + import psutil +except ModuleNotFoundError: + print(locale("deps_missing", "console", locale=configGet("locale")), flush=True) + sys.exit() + def killProc(pid): if os.name == "posix": os.kill(pid, SIGKILL)