-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathpyproject.toml
More file actions
executable file
·126 lines (116 loc) · 4.29 KB
/
Copy pathpyproject.toml
File metadata and controls
executable file
·126 lines (116 loc) · 4.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
[build-system]
build-backend = "setuptools.build_meta"
requires = [
"setuptools",
"setuptools-scm",
]
[project]
authors = [
{email = "wangrlink@qq.com", name = "Rui Wang"},
]
classifiers = [
"Development Status :: 3 - Alpha",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
]
description = "AlphaPilot: LLM-driven alpha factor mining agent"
dynamic = [
"dependencies",
"version",
]
keywords = [
"Autonomous Agents",
"Large Language Models",
"Research and Development",
]
name = "alphapilot"
readme = "README.md"
requires-python = ">=3.10"
[project.scripts]
alphapilot = "alphapilot.app.cli:app"
# Built-in systems/modules. Third-party packages can register additional
# entries under these groups to be auto-discovered by the kernel's
# MainEngine.discover_plugins() (vnpy-style plug-and-play extensions).
[project.entry-points."alphapilot.systems"]
data = "alphapilot.systems.data.service:QlibDataSystem"
factor = "alphapilot.systems.factor.service:FactorSystem"
strategy = "alphapilot.systems.strategy.service:StrategySystem"
trading = "alphapilot.systems.trading.service:TradingStrategySystem"
backtest = "alphapilot.systems.backtest.service:QlibBacktestSystem"
notify = "alphapilot.systems.notify.service:NotificationSystem"
live = "alphapilot.systems.live.service:LiveSystem"
[project.entry-points."alphapilot.modules"]
alpha_mining = "alphapilot.modules.alpha_mining.module:AlphaMiningModule"
report_factor = "alphapilot.modules.report_factor.module:ReportFactorModule"
platform = "alphapilot.modules.platform.module:PlatformModule"
portal = "alphapilot.modules.portal.module:PortalModule"
data_viz = "alphapilot.modules.data_viz.module:DataVizModule"
backtest_viz = "alphapilot.modules.backtest_viz.module:BacktestVizModule"
strategy_backtest = "alphapilot.modules.strategy_backtest.module:StrategyBacktestModule"
daily_trade = "alphapilot.modules.daily_trade.module:DailyTradeModule"
qlib_yaml = "alphapilot.modules.qlib_yaml.module:QlibYamlModule"
factor = "alphapilot.modules.factor.module:FactorModule"
alphaforge_aff = "alphapilot.modules.alphaforge_aff.module:AlphaForgeAFFModule"
alphaforge_search = "alphapilot.modules.alphaforge_search.module:AlphaForgeSearchModule"
stock_pool = "alphapilot.modules.stock_pool.module:StockPoolModule"
live = "alphapilot.modules.live.module:LiveModule"
trading_cli = "alphapilot.modules.trading.module:TradingModule"
# Optional deps for the AlphaForge-derived mining modules: ``alphaforge``
# covers AFF (GAN) + GP + RL.
[project.optional-dependencies]
alphaforge = [
"torch",
"gym",
"stable-baselines3",
"sb3-contrib",
"shimmy",
]
test = [
"coverage>=7.6",
]
[project.urls]
homepage = "https://github.com/ai-yang/money_is_all_you_need"
issue = "https://github.com/ai-yang/money_is_all_you_need/issues"
[tool.setuptools.packages.find]
include = ["alphapilot*"]
[tool.setuptools.dynamic]
dependencies = {file = ["requirements.txt"]}
[tool.setuptools_scm]
local_scheme = "no-local-version"
version_scheme = "guess-next-dev"
[tool.pytest.ini_options]
testpaths = [
"tests",
"plugins/alphapilot_broker_emt/tests",
"plugins/alphapilot_broker_xtp/tests",
]
pythonpath = [
"plugins/alphapilot_broker_xcommon",
"plugins/alphapilot_broker_emt",
"plugins/alphapilot_broker_xtp",
]
# Default run = fast, offline tier only. Opt into the heavier/external tiers with
# an explicit ``-m`` (which overrides this), e.g. ``pytest -m real_llm``.
addopts = "-m 'not real_cli and not real_data and not slow and not real_llm and not real_notify'"
norecursedirs = [
".git",
".pytest_cache",
"__pycache__",
"alphapilot/modules/alphaforge/vendor",
"alphapilot/modules/portal/web/node_modules",
"alphapilot/modules/portal/web/dist",
"docker-data",
"git_ignore_folder",
"log",
"pickle_cache",
]
markers = [
"real_cli: runs real AlphaPilot CLI smoke tests with network and subprocesses",
"real_data: needs network + TUSHARE_TOKEN to download real market data",
"slow: heavy local computation (factor mining gp/aff/rl, qlib backtest)",
"real_llm: needs OPENAI_API_KEY and consumes LLM API quota",
"real_notify: sends real messages to external channels (telegram/feishu/email)",
"real_tts: requires TTS credentials and may submit orders to the simulation counter",
]