""" 量化数据库配置文件 敏感信息(数据库密码、API Token)通过环境变量管理: - QUANT_DB_PASSWORD : 数据库密码 - TUSHARE_TOKEN : Tushare API Token 设置方式: Windows: set QUANT_DB_PASSWORD=your_password && set TUSHARE_TOKEN=your_token Linux: export QUANT_DB_PASSWORD=your_password && export TUSHARE_TOKEN=your_token 也可创建 .env 文件(参考 .env.example) """ import os from pathlib import Path from urllib.parse import quote_plus # 加载 .env 文件中的环境变量 try: from dotenv import load_dotenv env_path = Path(__file__).parent / ".env" if env_path.exists(): load_dotenv(dotenv_path=env_path, override=True) print(f"✓ 已加载环境变量文件: {env_path}") else: print(f"⚠ 未找到 .env 文件: {env_path}") except ImportError: print("⚠ python-dotenv 未安装,无法自动加载 .env 文件。请手动设置环境变量或执行: pip install python-dotenv") # PostgreSQL Docker 连接配置 _PASSWORD = os.environ.get("QUANT_DB_PASSWORD", "") DB_CONFIG = { "host": os.environ.get("QUANT_DB_HOST", "192.168.27.11"), "port": int(os.environ.get("QUANT_DB_PORT", "5438")), "database": os.environ.get("QUANT_DB_NAME", "quant_db"), "user": os.environ.get("QUANT_DB_USER", "postgres"), "password": _PASSWORD, } # 对密码进行 URL 编码(用于 SQLAlchemy 连接串),避免特殊字符导致解析错误 PASSWORD_ENCODED = quote_plus(_PASSWORD) if _PASSWORD else "" # Tushare API Token TUSHARE_TOKEN = os.environ.get("TUSHARE_TOKEN", "") # 批量导入参数 BATCH_SIZE = int(os.environ.get("QUANT_BATCH_SIZE", "5000")) # 每批次插入行数 START_DATE = os.environ.get("QUANT_START_DATE", "2010-01-01") # 数据起始日期 END_DATE = os.environ.get("QUANT_END_DATE", "2025-12-31") # 数据结束日期