import dataclasses import json from pathlib import Path from PIL.TiffImagePlugin import SOFTWARE PLAYBACK_SOCKET_PORT = 5003 PLAYBACK_SOCKET = f'127.0.0.1:{PLAYBACK_SOCKET_PORT}' LIVE_SOCKET_IP = '11.6.1.71' LIVE_REP_SOCKET_PORT = 5556 LIVE_SOCKET = f'{LIVE_SOCKET_IP}:5555' LIVE_REP_SOCKET = f'{LIVE_SOCKET_IP}:{LIVE_REP_SOCKET_PORT}' VIDEO_HEIGHT = 1920 VIDEO_WIDTH = 1080 SWITCH1_IP = 'c1' SWITCH1_TOKEN = '7ad51e0016e7a9d22f753d5110f76c7d' SWITCH2_IP = 'c2' SWITCH2_TOKEN = 'bf5a7b77a1ba3761ea63fafd8427b7d6' BASE = Path(__file__).parent.parent DS = BASE / '@DS' DOC = BASE / 'doc' CONFIG = BASE / 'config' DS.mkdir(exist_ok=True, parents=True) DOC.mkdir(exist_ok=True, parents=True) DEVICE_CONFIG = CONFIG / 'device' IMAGING_CONFIG = CONFIG / 'imaging' DEVICE_CONFIG.mkdir(exist_ok=True, parents=True) IMAGING_CONFIG.mkdir(exist_ok=True, parents=True) # CONFIG.mkdir(exist_ok=True, parents=True) CONFIG_FOLDER = BASE / 'config' LAST_CONFIG = BASE / 'config' / 'last_imaging_config.json' CONFIG_FOLDER.mkdir(exist_ok=True) SOFTWARE_CONFIG_PATH = BASE / 'software.json' @dataclasses.dataclass class SoftwareConfig: base_dir: Path = DS @staticmethod def read_config(): j = json.loads(SOFTWARE_CONFIG_PATH.read_text(encoding='utf-8')) sc = SoftwareConfig() sc.base_dir = Path(j['base_dir']) return sc def write_config(self): SOFTWARE_CONFIG_PATH.write_text(json.dumps(dict( base_dir=self.base_dir.__str__(), ), indent=4), encoding='utf-8') SOFTWARE_CONFIG = SoftwareConfig() if SOFTWARE_CONFIG_PATH.exists(): SOFTWARE_CONFIG = SoftwareConfig.read_config() if __name__ == '__main__': print(SOFTWARE_CONFIG)