Mokh Week 2 Day 2 Contribution
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
import json
|
||||
|
||||
|
||||
class SettingsHandler:
|
||||
def __init__(self, json_filename):
|
||||
self.json_filename = json_filename
|
||||
self.advanced_settings = self.load_current_settings()
|
||||
|
||||
def load_current_settings(self) -> dict:
|
||||
with open(self.json_filename, "r") as file:
|
||||
settings_dict = json.load(file)
|
||||
|
||||
advanced_settings = settings_dict["Advanced Settings"]
|
||||
|
||||
return advanced_settings
|
||||
|
||||
def update_advanced_settings(self, updated_advanced_settings: dict):
|
||||
new_dict = {
|
||||
"Advanced Settings": updated_advanced_settings
|
||||
}
|
||||
|
||||
print(new_dict)
|
||||
|
||||
with open(self.json_filename, "w") as file:
|
||||
json.dump(new_dict, file)
|
||||
|
||||
self.advanced_settings = updated_advanced_settings
|
||||
|
||||
def update_advanced_settings_param(self, key: str, new_val):
|
||||
if self.get_advanced_setting_param(key) is not None:
|
||||
update_advanced_settings_dict = self.advanced_settings
|
||||
update_advanced_settings_dict[key] = new_val
|
||||
self.update_advanced_settings(update_advanced_settings_dict)
|
||||
|
||||
def get_advanced_settings(self):
|
||||
return self.advanced_settings
|
||||
|
||||
def get_advanced_setting_param(self, key: str):
|
||||
return self.advanced_settings.get(key)
|
||||
|
||||
|
||||
class LanguagesHandler:
|
||||
def __init__(self, json_filename):
|
||||
self.json_filename = json_filename
|
||||
self.langs = self.load_languages()
|
||||
|
||||
def load_languages(self) -> list:
|
||||
with open(self.json_filename, "r") as file:
|
||||
langs = json.load(file)
|
||||
|
||||
if type(langs) != list:
|
||||
raise RuntimeError("Languages must be provided as lists")
|
||||
if len(langs) < 2:
|
||||
raise RuntimeError("At least 2 languages must be supported")
|
||||
|
||||
return langs
|
||||
|
||||
def get_supported_languages(self):
|
||||
return self.langs
|
||||
|
||||
Reference in New Issue
Block a user