62 lines
1.8 KiB
Python
62 lines
1.8 KiB
Python
"""Config package initializer,保持对旧 `from config import ...` 的兼容。"""
|
||
|
||
import os
|
||
from pathlib import Path
|
||
|
||
|
||
def _load_dotenv():
|
||
"""在未显式导入 python-dotenv 的情况下,尽量从仓库根目录加载 .env。"""
|
||
env_path = Path(__file__).resolve().parents[1] / ".env"
|
||
if not env_path.exists():
|
||
return
|
||
try:
|
||
for raw_line in env_path.read_text(encoding="utf-8").splitlines():
|
||
line = raw_line.strip()
|
||
if not line or line.startswith("#"):
|
||
continue
|
||
if "=" not in line:
|
||
continue
|
||
key, value = line.split("=", 1)
|
||
key = key.strip()
|
||
value = value.strip().strip('"').strip("'")
|
||
if key and key not in os.environ:
|
||
os.environ[key] = value
|
||
except Exception:
|
||
# 加载失败时静默继续,保持兼容
|
||
pass
|
||
|
||
|
||
_load_dotenv()
|
||
|
||
from . import api as _api
|
||
from . import paths as _paths
|
||
from . import limits as _limits
|
||
from . import terminal as _terminal
|
||
from . import conversation as _conversation
|
||
from . import security as _security
|
||
from . import ui as _ui
|
||
from . import memory as _memory
|
||
from . import ocr as _ocr
|
||
from . import todo as _todo
|
||
from . import auth as _auth
|
||
from . import sub_agent as _sub_agent
|
||
|
||
from .api import *
|
||
from .paths import *
|
||
from .limits import *
|
||
from .terminal import *
|
||
from .conversation import *
|
||
from .security import *
|
||
from .ui import *
|
||
from .memory import *
|
||
from .ocr import *
|
||
from .todo import *
|
||
from .auth import *
|
||
from .sub_agent import *
|
||
|
||
__all__ = []
|
||
for module in (_api, _paths, _limits, _terminal, _conversation, _security, _ui, _memory, _ocr, _todo, _auth, _sub_agent):
|
||
__all__ += getattr(module, "__all__", [])
|
||
|
||
del _api, _paths, _limits, _terminal, _conversation, _security, _ui, _memory, _ocr, _todo, _auth, _sub_agent
|