Skip to main content
Skip to main content
工程上下文模块API文档
文档类型
API 文档
相关模块
project context
相关版本
v0.x
发布日期
2026-02-15

Project Context 模块 API 文档

按「描述、函数签名、参数、输出、示例」列出 Project Context 模块中上层模块常用的入口;内部辅助函数不列入。架构与设计见 architecture.md / decisions.md,快速上手见 overview.md


ProjectContextManager(构造函数)

项目上下文管理器 Facade,组合 PathManagerFileManagerConfigManager,提供统一入口 ctx.path.* / ctx.file.* / ctx.config.*

ProjectContextManager()

ProjectContextManager 实例,属性:

  • path: PathManager 类本身
  • file: FileManager 类本身
  • config: ConfigManager 类本身
from core.infra.project_context import ProjectContextManager

ctx = ProjectContextManager()
core_dir = ctx.path.core()
settings = ctx.config.load_with_defaults(default_path, user_path)

core_info

读取 core/core_meta.json,返回 core 的元信息(版本号、发布日期等)。

ProjectContextManager.core_info() -> Optional[Dict[str, Any]]

Optional[Dict[str, Any]] —— 包含 versionrelease_date 等字段;不存在或解析失败时为 None


core_version

获取 core 版本号,基于 core_info() 的包装。

ProjectContextManager.core_version() -> Optional[str]

Optional[str] —— 版本号字符串,如 "0.1.0";失败时为 None


ProjectContextManager(Facade)

get_root

检测并返回项目根目录。内部通过 __file__ 向上查找 .git / pyproject.toml 等标记文件,并做缓存。

PathManager.get_root() -> Path

Path —— 项目根目录。


core

返回 core/ 目录路径(或兼容旧结构的 app/core/)。

PathManager.core() -> Path

Path —— core/ 目录。


userspace

返回 userspace/ 根目录。优先使用环境变量 NEW_TEA_QUANT_USERSPACE_ROOT / NTQ_USERSPACE_ROOT,否则回退到项目根下的 userspace/

PathManager.userspace() -> Path

Path —— userspace/ 根目录。


default_config / user_config

返回默认配置目录与用户配置目录路径。

 

  • PathManager.default_config() -> Path —— core/default_config/
  • PathManager.user_config() -> Path —— userspace/config/

strategy_settings / strategy_results

按策略名称返回策略配置文件与结果目录路径。

 

  • PathManager.strategy_settings(strategy_name: str) -> Path
  • PathManager.strategy_results(strategy_name: str) -> Path
参数类型说明
strategy_namestr策略名称

Path

settings_path = PathManager.strategy_settings("my_strategy")
results_dir = PathManager.strategy_results("my_strategy")

data_source_mapping / data_source_handlers / data_source_providers

Data Source 相关路径,供数据源管理和 Discovery 使用。

 

  • PathManager.data_source_mapping() -> Path —— userspace/data_source/mapping.py
  • PathManager.data_source_handlers() -> Path —— userspace/data_source/handlers
  • PathManager.data_source_providers() -> Path —— userspace/data_source/providers

find_config_recursively

在给定根目录下递归查找指定数据源 key 对应的 config.py,用于兼容不同层级结构的 Handler 目录。

PathManager.find_config_recursively(base_dir: Path, data_source_key: str, config_filename: str = "config.py") -> Optional[Path]

参数类型说明
base_dirPath搜索根目录
data_source_keystr数据源键名,用于匹配目录名
config_filenamestr配置文件名,默认 "config.py"

Optional[Path] —— 找到的配置文件路径;未找到返回 None


PathManager(路径管理)

find_file

在指定目录(可选递归)查找单个文件。

FileManager.find_file(filename: str, base_dir: Path, recursive: bool = True) -> Optional[Path]

参数类型说明
filenamestr文件名,如 "settings.py"
base_dirPath搜索根目录
recursivebool是否递归查找,默认 True

Optional[Path] —— 找到的文件路径;未找到返回 None


find_files

查找所有匹配的文件,返回列表。

FileManager.find_files(filename: str, base_dir: Path, recursive: bool = True) -> List[Path]


read_file

读取文件内容,文件不存在或读取失败时返回 None

FileManager.read_file(path: Path, encoding: str = "utf-8") -> Optional[str]


file_exists / dir_exists / ensure_dir

文件/目录存在性检查和目录创建。

 

  • FileManager.file_exists(path: Path) -> bool
  • FileManager.dir_exists(path: Path) -> bool
  • FileManager.ensure_dir(path: Path) -> Path

FileManager(文件管理)

load_with_defaults

加载「默认配置 + 用户配置」并合并,支持 JSON / Python 文件和深度合并字段。

ConfigManager.load_with_defaults(default_path: Path, user_path: Path, deep_merge_fields: Set[str] | None = None, override_fields: Set[str] | None = None, file_type: str = "json") -> Dict[str, Any]

参数(摘选)

参数类型说明
default_pathPath默认配置文件路径
user_pathPath用户配置文件路径(不存在时只返回默认配置)
deep_merge_fieldsSet[str] | None需要深度合并的字段名集合
override_fieldsSet[str] | None需要完全覆盖的字段名集合
file_typestr"json""py"

Dict[str, Any] —— 合并后的配置。

from pathlib import Path
from core.infra.project_context import ConfigManager, PathManager

default_path = PathManager.default_config() / "data.json"
user_path = PathManager.user_config() / "data.json"
settings = ConfigManager.load_with_defaults(default_path, user_path, deep_merge_fields={"stock_list_filter"})

load_database_config / get_database_type

加载数据库配置(合并默认与用户配置),并获取当前数据库类型。

 

  • ConfigManager.load_database_config(database_type: str | None = None) -> Dict[str, Any]
  • ConfigManager.get_database_type() -> str

load_data_config / load_worker_config / load_system_config / load_logging_config

加载各类核心配置(数据、Worker、系统、日志),内部均通过 load_core_config + load_with_defaults 实现。

 

  • ConfigManager.load_data_config() -> Dict[str, Any]
  • ConfigManager.load_worker_config() -> Dict[str, Any]
  • ConfigManager.load_system_config() -> Dict[str, Any]
  • ConfigManager.load_logging_config() -> Dict[str, Any]

get_module_config

获取某模块的 Worker 配置(用于并发控制),返回任务类型和预留核心数。

ConfigManager.get_module_config(module_name: str) -> Dict[str, Any]

Dict[str, Any] —— 如 {"task_type": TaskType, "reserve_cores": 2}


若干便捷访问方法

从配置中读取常用字段。

常用方法

  • ConfigManager.get_default_start_date() -> str
  • ConfigManager.get_decimal_places() -> int
  • ConfigManager.get_stock_list_filter() -> Dict[str, Any]

这些方法内部均基于 load_data_config() 实现。


ConfigManager(配置管理)