From 92bf0691020f1d02091ff6f7ef24301cbf21adf8 Mon Sep 17 00:00:00 2001 From: Kyle Machulis Date: Wed, 1 Jun 2022 20:34:13 -0700 Subject: [PATCH] Use dacite for de/serialization to python dataclass for config --- RANSACApp/config.py | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/RANSACApp/config.py b/RANSACApp/config.py index 7b43123..f57e487 100644 --- a/RANSACApp/config.py +++ b/RANSACApp/config.py @@ -1,21 +1,26 @@ -import json +from dataclasses import dataclass +from typing import Union +from dacite import from_dict import os.path +import json +@dataclass class RansacConfig: - def __init__(self): - self.threshhold = 0 - self.rotation_angle = 0 - self.roi_window_x = 0 - self.roi_window_y = 0 - self.roi_window_w = 640 - self.roi_window_h = 480 + threshhold: "int" = 0 + rotation_angle: "int" = 0 + roi_window_x: "int" = 0 + roi_window_y: "int" = 0 + roi_window_w: "int" = 640 + roi_window_h: "int" = 480 + focal_length: "int" = 30 + capture_source: "Union[int, str, None]" = 2 - def load(self): + def load(): if not os.path.exists("ransac_settings.json"): print("No settings file, using base settings") - return + return RansacConfig() with open("ransac_settings.json", 'r') as settings_file: - json.load(settings_file) + return from_dict(data_class = RansacConfig, data = json.load(settings_file)) def save(self): with open("ransac_settings.json", 'w+') as settings_file: