上下文管理器与进一步移植
This commit is contained in:
@@ -0,0 +1 @@
|
||||
# 音频服务
|
||||
|
@@ -0,0 +1 @@
|
||||
# 缓存服务
|
@@ -0,0 +1,35 @@
|
||||
# 配置文件服务
|
||||
import pathlib
|
||||
import toml
|
||||
import typing
|
||||
|
||||
class ConfigFile:
|
||||
def __init__(self, path: str):
|
||||
self.path = pathlib.Path(path)
|
||||
if not self.path.exists():
|
||||
self.path.touch()
|
||||
self.data = dict()
|
||||
self._load()
|
||||
|
||||
def _load(self):
|
||||
"""从文件加载配置数据"""
|
||||
with open(self.path, 'r') as f:
|
||||
try:
|
||||
self.data = toml.load(f)
|
||||
except toml.TomlDecodeError:
|
||||
self.data = {}
|
||||
|
||||
def modify(self, key: str, value: typing.Any):
|
||||
"""修改配置值并保存"""
|
||||
self.data[key] = value
|
||||
self.save()
|
||||
|
||||
def save(self, path: typing.Union[str, pathlib.Path] = ""):
|
||||
"""保存配置到文件"""
|
||||
save_path = pathlib.Path(path) if path else self.path
|
||||
with open(save_path, 'w') as f:
|
||||
toml.dump(self.data, f)
|
||||
|
||||
def get(self, key: str, default: typing.Any = None) -> typing.Any:
|
||||
"""获取配置值,如果不存在返回默认值"""
|
||||
return self.data.get(key, default)
|
||||
|
5
src/heurams/services/hasher.py
Normal file
5
src/heurams/services/hasher.py
Normal file
@@ -0,0 +1,5 @@
|
||||
# 哈希服务
|
||||
import hashlib
|
||||
|
||||
def get_md5(text):
|
||||
return hashlib.md5(text.encode('utf-8')).hexdigest()
|
@@ -0,0 +1,20 @@
|
||||
# 时间服务
|
||||
from heurams.context import config_var
|
||||
import time
|
||||
|
||||
def get_daystamp() -> int:
|
||||
"""获取当前日戳(以天为单位的整数时间戳)"""
|
||||
time_override = config_var.get().get("daystamp_override", -1)
|
||||
if time_override != -1:
|
||||
return int(time_override)
|
||||
|
||||
return int((time.time() + config_var.get().get("timezone_offset")) // (24 * 3600))
|
||||
|
||||
def get_timestamp() -> float:
|
||||
"""获取 UNIX 时间戳"""
|
||||
# 搞这个类的原因是要支持可复现操作
|
||||
time_override = config_var.get().get("timestamp_override", -1)
|
||||
if time_override != -1:
|
||||
return float(time_override)
|
||||
|
||||
return time.time()
|
@@ -0,0 +1 @@
|
||||
# 文本转语音服务
|
||||
|
@@ -0,0 +1 @@
|
||||
# 版本控制集成服务
|
Reference in New Issue
Block a user