feat: handle setting
This commit is contained in:
parent
d6e53aec53
commit
b7e65f1dce
1 changed files with 39 additions and 14 deletions
|
@ -2,8 +2,12 @@ import yaml
|
||||||
import os
|
import os
|
||||||
|
|
||||||
class Utilities:
|
class Utilities:
|
||||||
def __init__(self):
|
def __init__(self, app_folder_path):
|
||||||
pass
|
self.folder_path = app_folder_path
|
||||||
|
self._ensure_program_folder_exists()
|
||||||
|
self.exif_path = os.path.expanduser(f"{app_folder_path}/exif.yaml")
|
||||||
|
self.settings_path = os.path.expanduser(f"{app_folder_path}/settings.yaml")
|
||||||
|
self._prepear_exif_config()
|
||||||
|
|
||||||
def read_yaml(self, yaml_file):
|
def read_yaml(self, yaml_file):
|
||||||
try:
|
try:
|
||||||
|
@ -12,29 +16,38 @@ class Utilities:
|
||||||
return data
|
return data
|
||||||
except (FileNotFoundError, PermissionError) as e:
|
except (FileNotFoundError, PermissionError) as e:
|
||||||
print(f"Error loading settings file: {e}")
|
print(f"Error loading settings file: {e}")
|
||||||
return
|
return None
|
||||||
|
|
||||||
def write_yaml(self, yaml_file, data):
|
def write_yaml(self, yaml_file, data):
|
||||||
try:
|
try:
|
||||||
with open(yaml_file, "w") as file:
|
with open(yaml_file, "w") as file:
|
||||||
yaml.dump(data, file)
|
yaml.dump(data, file)
|
||||||
|
return True
|
||||||
except PermissionError as e:
|
except PermissionError as e:
|
||||||
print(f"Error saving setings: {e}")
|
print(f"Error saving setings: {e}")
|
||||||
|
return False
|
||||||
|
|
||||||
def program_configs(self):
|
def _prepear_exif_config(self):
|
||||||
"""Prepear folder for config and generate default exif if non aviable"""
|
"""Prepear folder for config and generate default exif if non aviable"""
|
||||||
program_folder = self._ensure_program_folder_exists()
|
if not os.path.isfile(self.exif_path):
|
||||||
if not os.path.isfile(f"{program_folder}/exif.yaml"):
|
self.default_exif(self.exif_path)
|
||||||
self._default_exif(f"{program_folder}/exif.yaml")
|
|
||||||
|
|
||||||
def _ensure_program_folder_exists(self):
|
def _ensure_program_folder_exists(self):
|
||||||
program_folder = os.path.expanduser("~/.config/OptimaLab35")
|
if not os.path.exists(self.folder_path):
|
||||||
if not os.path.exists(program_folder):
|
os.makedirs(self.folder_path)
|
||||||
print("in not, make folder")
|
|
||||||
os.makedirs(program_folder)
|
|
||||||
return program_folder
|
|
||||||
|
|
||||||
def _default_exif(self, file):
|
def load_settings(self):
|
||||||
|
"""Loads settings from file, or creates default settings if missing."""
|
||||||
|
if os.path.exists(self.settings_path):
|
||||||
|
settings = self.read_yaml(self.settings_path)
|
||||||
|
return settings if settings else self._default_settings()
|
||||||
|
return self._default_settings()
|
||||||
|
|
||||||
|
def save_settings(self, settings):
|
||||||
|
if not self.write_yaml(self.settings_path, settings):
|
||||||
|
print("Error writing file")
|
||||||
|
|
||||||
|
def default_exif(self):
|
||||||
"""Makes a default exif file."""
|
"""Makes a default exif file."""
|
||||||
print("Making default")
|
print("Making default")
|
||||||
def_exif = {
|
def_exif = {
|
||||||
|
@ -78,7 +91,19 @@ class Utilities:
|
||||||
"Scanner: NA"
|
"Scanner: NA"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
self.write_yaml(file, def_exif)
|
self.write_yaml(self.exif_path, def_exif)
|
||||||
|
|
||||||
|
def _default_settings(self):
|
||||||
|
"""Returns default settings and writes them if the settings file does not exist."""
|
||||||
|
settings = {
|
||||||
|
"theme": {
|
||||||
|
"theme_pkg": False,
|
||||||
|
"use_custom_theme": False,
|
||||||
|
"mode": "Dark"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
self.write_yaml(self.settings_path, settings)
|
||||||
|
return settings
|
||||||
|
|
||||||
def append_number_to_name(self, base_name: str, current_image: int, total_images: int, invert: bool):
|
def append_number_to_name(self, base_name: str, current_image: int, total_images: int, invert: bool):
|
||||||
""""Returns name, combination of base_name and ending number."""
|
""""Returns name, combination of base_name and ending number."""
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue