Files
myaps_api/globalobjects/__init__.py
T
chaoge bf42299ead 重构: 迁移至统一日志系统
- 新增 globalobjects/logger/ 模块化日志系统
- 支持异步写入、多目标输出、敏感信息脱敏
- 完全向后兼容原有logger API
- 备份旧版本为 logger_v1_backup.py 和 logger_v2_backup.py
- 更新 .env.example 和 AGENTS.md 文档
2026-05-22 00:23:30 +08:00

101 lines
3.4 KiB
Python

import os
from pathlib import Path
from .logger import (
SmartLogger,
get_logger,
logger,
LogHelper,
EmojiManager,
emoji_manager,
initialize_logging,
shutdown_logging,
set_db_initialized,
)
current_dir = Path(__file__).resolve().parent
root_dir = current_dir.parent
pf_dir = os.getenv("PROJECT_DIR")
if pf_dir is not None:
from .json_manager import JSONManager
project_json = (os.getenv("PROJECT_JSON") or "dev") + ".json"
PROJECT_JSON_FILE = JSONManager(f"{root_dir}/project_files/{pf_dir}/{project_json}")
from .event_aggregator import get_global_handler_aggregator
EVENT_AGGREGATOR = get_global_handler_aggregator()
from .reminder import Reminder, RemindType, remind_manager, QqEmailReminder
from .globalconst import StaticString
else:
PROJECT_JSON_FILE = None
EVENT_AGGREGATOR = None
__all__ = [
"SmartLogger",
"get_logger",
"logger",
"LogHelper",
"EmojiManager",
"emoji_manager",
"initialize_logging",
"shutdown_logging",
"set_db_initialized",
]
if pf_dir is not None:
__all__.extend([
"Reminder",
"RemindType",
"remind_manager",
"QqEmailReminder",
"StaticString",
"ProjectDefaultValues",
])
class ProjectDefaultValues:
defaults = PROJECT_JSON_FILE.get("defaults", {})
no_fill_defaults = defaults.get("!no_fill_defaults", [])
auto_matver = defaults.get("auto_matver", False)
matver_prefix = defaults.get("matver_prefix", "V")
matver_width = defaults.get("matver_width", 1)
itemno_prefix = defaults.get("itemno_prefix", "A")
itemno_width = defaults.get("itemno_width", 3)
MAT_PLANT = defaults.get("plant", "None")
MAT_PLANNER = defaults.get("planner", "None")
MAT_LOCATION = defaults.get("location", "None")
MAT_FIFO = defaults.get("fifo", 1)
MAT_LEADDAY_E = defaults.get("leadday_e", 10)
MAT_LEADDAY_F = defaults.get("leadday_f", 1)
MAT_EXPDAY = defaults.get("expday", 365)
MAT_GRDAY_E = defaults.get("grday_e", 0)
MAT_GRDAY_F = defaults.get("grday_f", 0)
MAT_PHANTOM = defaults.get("phantom", "N")
MAT_PHANTOMMIN = defaults.get("phantommin", 0)
MAT_FIRMDAY = defaults.get("firmday", 0)
MAT_DAYGAP = defaults.get("daygap", 1)
MAT_CANDELAY = defaults.get("candelay", "Y")
MAT_LOTSIZE = defaults.get("lotsize", "EX")
MAT_LOTFIX = defaults.get("lotfix", 0)
MAT_LOTMIN = defaults.get("lotmin", 0)
MAT_LOTMAX = defaults.get("lotmax", 0)
MAT_LOTROUND = defaults.get("lotround", 0)
MAT_LOTSS = defaults.get("lotss", 0)
MAT_LOTPOINT = defaults.get("lotpoint", 0)
MAT_LOTTOP = defaults.get("lottop", 0)
MAT_PREDAY = defaults.get("preday", 999)
MAT_SUBDAY = defaults.get("subday", 999)
MATVER = f"{matver_prefix}{1:0{matver_width}d}"
MATVER_LOTFROM = defaults.get("lotfrom", 0)
MATVER_LOTTO = defaults.get("lotto", 9999999)
MATVER_PRIORITY = defaults.get("priority", 0)
WC_WORKER = defaults.get("worker", 1)
WC_PRIORITY = defaults.get("wc_priority", 0)
WC_CAPNUM = defaults.get("capnum", 1)
WC_CAPMAX = defaults.get("capmax", 1)
ITEMNO = f"{itemno_prefix}{1:0{itemno_width}d}"
MATWC_RATE = defaults.get("matwc_rate", 1.0)
WORKREPORT_STATUS = defaults.get("workreport_status", "N")