mirror of
https://github.com/NanjingForestryUniversity/supermachine-wood.git
synced 2025-11-08 18:23:54 +00:00
61 lines
1.9 KiB
Python
Executable File
61 lines
1.9 KiB
Python
Executable File
# -*- codeing = utf-8 -*-
|
|
# Time : 2022/10/17 11:07
|
|
# @Auther : zhouchao
|
|
# @File: config.py
|
|
# @Software:PyCharm
|
|
import json
|
|
import os
|
|
from pathlib import WindowsPath
|
|
|
|
from root_dir import ROOT_DIR
|
|
|
|
|
|
class Config(object):
|
|
model_path = ROOT_DIR / 'config.json'
|
|
|
|
def __init__(self):
|
|
self._param_dict = {}
|
|
if os.path.exists(Config.model_path):
|
|
self._read()
|
|
else:
|
|
self.model_path = str(ROOT_DIR / 'models/model_2022-10-17_11-10.p')
|
|
self.data_path = str(ROOT_DIR / 'data/data20220919')
|
|
self.database_addr = str("mysql+pymysql://root:@localhost:3306/orm_test") # 测试用数据库地址
|
|
self._param_dict['model_path'] = self.model_path
|
|
self._param_dict['data_path'] = self.data_path
|
|
self._param_dict['database_addr'] = self.database_addr
|
|
|
|
def __setitem__(self, key, value):
|
|
if key in self._param_dict:
|
|
self._param_dict[key] = value
|
|
self._write()
|
|
|
|
def __getitem__(self, item):
|
|
if item in self._param_dict:
|
|
return self._param_dict[item]
|
|
|
|
def __setattr__(self, key, value):
|
|
self.__dict__[key] = value
|
|
if '_param_dict' in self.__dict__ and key != '_param_dict':
|
|
if isinstance(value, WindowsPath):
|
|
value = str(value)
|
|
self.__dict__['_param_dict'][key] = value
|
|
self._write()
|
|
|
|
def _read(self):
|
|
with open(Config.model_path, 'r') as f:
|
|
self._param_dict = json.load(f)
|
|
self.data_path = self._param_dict['data_path']
|
|
self.model_path = self._param_dict['model_path']
|
|
self.database_addr = self._param_dict['database_addr']
|
|
|
|
def _write(self):
|
|
with open(Config.model_path, 'w') as f:
|
|
json.dump(self._param_dict, f)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
config = Config()
|
|
print(config.model_path)
|
|
print(config.data_path)
|