Spaces:
Runtime error
Runtime error
import json | |
import shutil | |
from pathlib import Path | |
class ResolutionSettings: | |
DEFAULT_RESOLUTIONS_FILE = Path("settings/resolutions.default") | |
RESOLUTIONS_FILE = Path("settings/resolutions.json") | |
CUSTOM_RESOLUTION = "Custom..." | |
def __init__(self): | |
self.load_resolutions() | |
def load_resolutions(self): | |
self.base_ratios = {} | |
if not self.RESOLUTIONS_FILE.is_file(): | |
shutil.copy(self.DEFAULT_RESOLUTIONS_FILE, self.RESOLUTIONS_FILE) | |
with self.RESOLUTIONS_FILE.open() as f: | |
data = json.load(f) | |
for ratio, res in data.items(): | |
self.base_ratios[ratio] = (res["width"], res["height"]) | |
self.aspect_ratios = { | |
f"{v[0]}x{v[1]} ({k})": v for k, v in self.base_ratios.items() | |
} | |
return self.base_ratios | |
def save_resolutions(self, res_options): | |
formatted_options = {} | |
for k in res_options: | |
formatted_options[k] = { | |
"width": res_options[k][0], | |
"height": res_options[k][1], | |
} | |
with open(self.RESOLUTIONS_FILE, "w") as f: | |
json.dump(formatted_options, f, indent=2) | |
return self.load_resolutions() | |
def get_base_aspect_ratios(self, name): | |
return self.base_ratios[name] | |
def get_aspect_ratios(self, name): | |
return self.aspect_ratios[name] | |