mirror of
https://github.com/KenanZhu/AutoLibrary.git
synced 2026-06-17 23:13:03 +08:00
87 lines
1.7 KiB
Python
87 lines
1.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
Copyright (c) 2025 KenanZhu.
|
|
All rights reserved.
|
|
|
|
This software is provided "as is", without any warranty of any kind.
|
|
You may use, modify, and distribute this file under the terms of the MIT License.
|
|
See the LICENSE file for details.
|
|
"""
|
|
import json
|
|
|
|
|
|
class ConfigWriter:
|
|
|
|
def __init__(
|
|
self,
|
|
config_path: str,
|
|
config_data: dict
|
|
):
|
|
|
|
self.__config_path = config_path
|
|
self.__config_data = config_data if config_data is not None else {}
|
|
if config_data is None:
|
|
return None
|
|
if not self.__writeConfig():
|
|
return None
|
|
|
|
|
|
def __writeConfig(
|
|
self
|
|
) -> bool:
|
|
|
|
try:
|
|
with open(self.__config_path, "w") as f:
|
|
json.dump(self.__config_data, f, indent=4, sort_keys=False)
|
|
return True
|
|
except:
|
|
return False
|
|
|
|
|
|
def setConfigs(
|
|
self,
|
|
configs: dict
|
|
) -> bool:
|
|
|
|
self.__config_data = configs
|
|
return self.__writeConfig()
|
|
|
|
|
|
def setConfig(
|
|
self,
|
|
key: str,
|
|
value: dict
|
|
) -> bool:
|
|
|
|
self.__config_data[key] = value
|
|
return self.__writeConfig()
|
|
|
|
|
|
def set(
|
|
self,
|
|
key: str,
|
|
value: dict
|
|
) -> bool:
|
|
|
|
keys = key.replace("\\", "/").split("/")
|
|
current = self.__config_data
|
|
for k in keys[:-1]:
|
|
if k not in current or not isinstance(current[k], dict):
|
|
current[k] = {}
|
|
current = current[k]
|
|
current[keys[-1]] = value
|
|
return self.__writeConfig()
|
|
|
|
|
|
def reWriteConfig(
|
|
self
|
|
) -> bool:
|
|
|
|
return self.__writeConfig()
|
|
|
|
|
|
def configPath(
|
|
self
|
|
) -> str:
|
|
|
|
return self.__config_path |