diff --git a/src/settings/__init__.py b/src/settings/__init__.py new file mode 100644 index 0000000..a84263a --- /dev/null +++ b/src/settings/__init__.py @@ -0,0 +1,3 @@ +from .main import HandleSettings + +__version__ = "0.0.1" diff --git a/src/settings/main.py b/src/settings/main.py new file mode 100644 index 0000000..031ba89 --- /dev/null +++ b/src/settings/main.py @@ -0,0 +1,60 @@ +import yaml + +class HandleSettings: + def __init__(self, path): + self.file = path + + def read_settings(self, entry_name): + """Read a specific entry from the settings file.""" + data = self._read_file() + if data != None and entry_name in data: + return data[entry_name] + else: + return None + + def _read_file(self): + """Read from the yaml file.""" + try: + with open(self.file, "r") as file: + data = yaml.safe_load(file) + return data + except (FileNotFoundError, PermissionError) as e: + print(f"Error loading settings file: {e}") + return None + + def save_settings(self, entry_name, datadict): + """Save the settings file, update a desired section.""" + data = self._read_file() + if data != None: + data[entry_name] = datadict + else: + data = dict() + data[entry_name] = datadict + task = self._write_file(data) + return task + + def _write_file(self, data): + """Write dict to yaml file.""" + try: + with open(self.file, "w") as file: + yaml.dump(data, file) + return True + except PermissionError as e: + print(f"Error saving setings: {e}") + return False + + def delete_entry(self, entry_name): + """Deletes and specific entry from the entire settings file/dict.""" + data = self._read_file() + + if data != None and entry_name in data: + del data[entry_name] + self._write_file(data) + return True + else: + return False + + def purge_settings(self): + """Inserts an empty dict.""" + task = self._write_file(dict()) + return task