[build-system] requires = ["setuptools>=68", "wheel"] build-backend = "setuptools.build_meta" [project] name = "quant_engine" version = "0.1.0" description = "量化研究引擎 —— alpha 因子库 + 执行仿真 + 技术指标 + 数据适配 + 回测工具(v1.2.0 从 research_results 抽出)" readme = "README.md" requires-python = ">=3.11" license = { text = "MIT" } authors = [ { name = "researchhub team" }, ] keywords = ["quant", "alpha", "backtest", "qlib-style", "execution", "indicators"] # 仅必要依赖(零重型依赖原则) dependencies = [ "numpy>=1.24", "pandas>=2.0", "scipy>=1.10", "loguru>=0.7", # logging.py 可选 loguru fallback(标准库 logging 是默认) ] [project.optional-dependencies] dev = [ "pytest>=8.0", "pytest-asyncio>=0.23", "pytest-cov>=4.1", "ruff>=0.4", "mypy>=1.10", ] [project.urls] Homepage = "https://github.com/your-org/quant_engine" [tool.setuptools.packages.find] where = ["src"] [tool.ruff] line-length = 100 target-version = "py311" [tool.ruff.lint] select = ["E", "F", "W", "I", "N", "UP", "B", "A", "C4", "PT", "RUF"] ignore = [ "E501", # line too long "B008", # function call in default argument "RUF001", "RUF002", "RUF003", # ambiguous unicode # 遗留 88 errors 待 v0.2.x 清理(与 research_results 对齐) "F401", "I001", "N806", "N803", "N999", "UP035", "RUF022", "B905", "B007", "B023", "F841", "A005", "PT006", # legacy parametrize list 风格 ] [tool.mypy] python_version = "3.11" strict = true ignore_missing_imports = true [tool.pytest.ini_options] testpaths = ["tests"] addopts = "-v --tb=short" markers = [ "integration: 需要真实数据库或网络", ]