build: make smartmoneyconcepts an extra and drop the <3.14 cap
`requires-python` capped Python at <3.14 because smartmoneyconcepts pulls numba -> llvmlite, and llvmlite had no cp314 wheel. Two things are now true that were not when that cap was written: - llvmlite 0.49.0 does ship cp314 wheels (macOS arm64, manylinux x86_64 and aarch64, win_amd64, win_arm64), so the cap blocks 3.14 everywhere for a reason that no longer holds; - llvmlite ships no macOS x86_64 wheel at all from 0.46 on (0.45.1 is the last, cp310-cp313), so Intel Macs hit a cmake source build on *every* Python version. That is the failure in discussion #1035, and the cap never addressed it. The cap also backfired: only 0.1.13 carries it, so on 3.14 pip backtracks to 0.1.12 and installs the very thing the cap exists to prevent. smartmoneyconcepts is imported by exactly one file, the skill example src/skills/smc/example_signal_engine.py, whose SKILL.md already told the reader to install it. Nothing else imports numba, and no test depends on it. Every other extra (pyharmonics, statsmodels, arch, baostock, pykrx, openbb-ai, langchain-anthropic) is already absent from agent/requirements.txt and the lock, so this just brings smartmoneyconcepts in line. Verified on a throwaway CPython 3.14.4 venv: base install carries neither numba nor llvmlite nor smartmoneyconcepts, `vibe-trading --version` runs, and the suite is 10774 passed / 23 skipped / 0 failed under CI's own extras ([dev,openbb,stats]). The regenerated lock differs by exactly the three removed packages, with no incidental version bumps, and still passes `pip install --dry-run --require-hashes` on 3.11. Note for CI: the test job pins python-version 3.11, so 3.14 is now supported but unexercised.
This commit is contained in:
1 parent
b27367171f
commit
0bb1d87045
4 files changed
+12
-69
No files matched your search
@@ -33,8 +33,8 @@ scikit-learn>=1.3.0
|
||||
joblib>=1.3.0
|
||||
|
||||
# Signal Skills
|
||||
smartmoneyconcepts>=0.0.27 # floor bumped 2026-07-13: 0.0.10 pulls in zigzag, an abandoned transitive dep with no arm64/py3.11 wheel (sdist Cython build fails); 0.0.27 (current latest) confirmed dependency-free of it
|
||||
# optional: pip install "vibe-trading-ai[harmonic]" for the pyharmonics-backed harmonic pattern detector
|
||||
# optional: pip install "vibe-trading-ai[smc]" for the smartmoneyconcepts-backed Smart Money Concepts engine
|
||||
|
||||
# Data Providers
|
||||
tushare>=1.2.89
|
||||
|
||||
@@ -27,7 +27,7 @@ Direction from ChoCH + confirmation from BOS + filtering by FVG:
|
||||
## Dependencies
|
||||
|
||||
```bash
|
||||
pip install smartmoneyconcepts pandas numpy requests
|
||||
pip install "vibe-trading-ai[smc]"
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
+10
-6
@@ -2,11 +2,7 @@
|
||||
name = "vibe-trading-ai"
|
||||
version = "0.1.13"
|
||||
description = "Natural-language finance research AI agent with backtesting"
|
||||
# Upper bound is real, not cautionary: smartmoneyconcepts -> numba -> llvmlite,
|
||||
# and llvmlite ships no 3.14 wheel, so pip falls back to a source build that
|
||||
# needs cmake and fails with a 103-line traceback. Raise this once llvmlite
|
||||
# publishes cp314 wheels.
|
||||
requires-python = ">=3.11,<3.14"
|
||||
requires-python = ">=3.11"
|
||||
license = "MIT"
|
||||
readme = "README.md"
|
||||
authors = [
|
||||
@@ -46,7 +42,6 @@ dependencies = [
|
||||
"duckdb>=1.2.0",
|
||||
"scikit-learn>=1.3.0",
|
||||
"joblib>=1.3.0",
|
||||
"smartmoneyconcepts>=0.0.27",
|
||||
"tushare>=1.2.89",
|
||||
"requests>=2.31.0",
|
||||
"yfinance>=0.2.30",
|
||||
@@ -159,6 +154,15 @@ ashare = [
|
||||
harmonic = [
|
||||
"pyharmonics>=1.5.0",
|
||||
]
|
||||
smc = [
|
||||
# Smart Money Concepts (ICT) signal engine — used by exactly one skill
|
||||
# example, src/skills/smc/example_signal_engine.py, whose SKILL.md already
|
||||
# tells the reader to install it. It is an extra rather than a base
|
||||
# dependency because it drags in numba -> llvmlite, and llvmlite ships no
|
||||
# macOS x86_64 wheel from 0.46 on: as a base dependency it turned every
|
||||
# Intel-Mac install into a source build that needs cmake (discussion #1035).
|
||||
"smartmoneyconcepts>=0.0.27",
|
||||
]
|
||||
dingtalk = [
|
||||
"dingtalk-stream>=0.24.0",
|
||||
]
|
||||
|
||||
@@ -1621,33 +1621,6 @@ langsmith==0.10.16 \
|
||||
--hash=sha256:7dc5ff6477d50101b4944a985773bf9a3e2a9374e5d71ed2549ada929ca500b2 \
|
||||
--hash=sha256:f0b3882e0d2d69bda596c7b452a7857943aefb2c531c047677470b0a394cc490
|
||||
# via langchain-core
|
||||
llvmlite==0.48.0 \
|
||||
--hash=sha256:02853fe4214acb3780fc920c3fee10564b61d58a35e1b78afcc8a546c2deaba3 \
|
||||
--hash=sha256:054aa7d46595935565f276cf0c1659b4f10929c996dd4a606875fae26fba2a23 \
|
||||
--hash=sha256:05f0103c8f2f96a37441337e3643863c01b8e83e530aff38960dcb383c54a065 \
|
||||
--hash=sha256:13532f248960ba888ad5ab8150494e2f3a3d20e5f59f264e63741ea5b0ba844c \
|
||||
--hash=sha256:1d9f952dff6c350c529997423d4fa43abae9722a884ac7ffafc37a3af676e7db \
|
||||
--hash=sha256:2fe5cb59b2063bfa039dcb8ca6481c0181bf552f340d10dcf61d7996a665556e \
|
||||
--hash=sha256:321f1ac39b462603f0b589751aecf2d237d056f6d005749c1752b6f23ec3f074 \
|
||||
--hash=sha256:37d66fae72802175b0bfe1ea06e624b51e2d7aee6c3c34bbd09739b8f88e8e0b \
|
||||
--hash=sha256:3ee0c77685a18f5fca994ae21d0763007fca5c5c64b41de37accc78b69079176 \
|
||||
--hash=sha256:416fa4c2c66c2c6dc6d0a402648c19206e548efa0aa1eff01ad5cdad0af8217d \
|
||||
--hash=sha256:543b19f9ef8f3c7c60d1468191e4ee1b1537bf9f8a3d56f64c0ddd98de92edd2 \
|
||||
--hash=sha256:56a7e24607d3f02d7b1bae8d29c7e1e423d53143d68b072999777f19678fe77b \
|
||||
--hash=sha256:614aad57df707e3172efd5165f2aa7da6a0c6897e40dce590bf756396815ba76 \
|
||||
--hash=sha256:6fa532d6bb3fd3f0803567c736401c54aecfe1a396d3ad25d2440d220e09f0e7 \
|
||||
--hash=sha256:7a5c413317050a1d67c34708bde97707f9b2257ef1017f7532d21fe7d9a9ff30 \
|
||||
--hash=sha256:8761b9e522f55207e24424fcd98370289eec2710bf8e915c82d1053f642450dc \
|
||||
--hash=sha256:91c7e24e74cde3f02b88aa5acca678373f9e069f3b98531b3dbb3a142d9d10bb \
|
||||
--hash=sha256:966dcab0a598e2bd8fb5f2cc082cf7b07bae564fc485a3a8692393caf986facf \
|
||||
--hash=sha256:979a66a3f28a02565383ff463527dce78e9b856298872a361283132488e83591 \
|
||||
--hash=sha256:a83a99ef0c05b4ccddf9b6218ed9fe84b653a0caf7c1d9dbe148d6d16c67f518 \
|
||||
--hash=sha256:d0b3c61aac83b42fb48cc96bffbf57c81b82b2aa92276b7ed6420c814629a99a \
|
||||
--hash=sha256:d45c7541a80934ec6d8ab0defe67439494ecd2193cbf852a44ba827808976ac1 \
|
||||
--hash=sha256:d66c3beb4209087ddd4cf4ed2a0856b6887e6a913bdcf1aacfec9851cf2cba4e \
|
||||
--hash=sha256:efaee0276e5e17c2b99b92e0c974bd484ef5977cf5dbc9168e82b71578edb47f \
|
||||
--hash=sha256:f5e5a5131045b72345c71062ea1a91910dde913792b6c9b28ebb2c1c0a712e98
|
||||
# via numba
|
||||
lxml==6.1.1 \
|
||||
--hash=sha256:05a82eb6e1530a64f26225b55cbd178113bd0b5af1c2b625f25e5296742c26d2 \
|
||||
--hash=sha256:07a4a68e286ee7a1ed7dfb8af83e615757c0ccfe9f18c6b4ea6771388d9ba8c9 \
|
||||
@@ -2116,33 +2089,6 @@ narwhals==2.24.0 \
|
||||
--hash=sha256:42fdedf44e5b2ca7505630d45b4ac3058f38d8485cba9fe1652ca23152df7489 \
|
||||
--hash=sha256:b5c0f684ccd9d7475b564111e319a4964abcf2baf79d3cf6b1003d06ac9b828d
|
||||
# via scikit-learn
|
||||
numba==0.66.0 \
|
||||
--hash=sha256:0999e3ee1b18c48e1fb51d11af35ef59852c7f4f50569c9550c25faef0616ad1 \
|
||||
--hash=sha256:2338cc0d43609fe448930848fd35a5bc688761b986f81b597a6f45cc0f8c9577 \
|
||||
--hash=sha256:27951c47e0def9bf8afe580eb961102902e2fd23cb77924b7d9d7cc0f8b444cb \
|
||||
--hash=sha256:380b2556a2019ccd1e956ae77dd257eaa39403f7520768b626d44b755112785e \
|
||||
--hash=sha256:46ae5f2b19e2af3c33c2df100306a90ea2f981c8158b0390f8bf6c20eee7357e \
|
||||
--hash=sha256:53ca5900b7cab15109796030113a6b28576bae5ad7bb507ad6dd1360ddd81ba4 \
|
||||
--hash=sha256:63b943eb2c9ba371908ce2cd6dfc643db51fc40f7966993376a1701bc922f537 \
|
||||
--hash=sha256:651a2b53298340956db26ecbe7ab043106b50a40c2807e66d617a4917245a4ab \
|
||||
--hash=sha256:7c14c044c06b453ec3fa7715dfe75425e2ba72c73377a7ffde6d9ec511dfd94c \
|
||||
--hash=sha256:8c1144ba1720ea59ad79f4f488ed54d149b2613b357f7e445678b7d0739c70e9 \
|
||||
--hash=sha256:939316d5d8619751207b8972a67852b5a7646665298cb4de693cd6bf135152f4 \
|
||||
--hash=sha256:aac69f3ccb8af100f5913c1241edc9692bad1cdd2508721713f426eb06c9a659 \
|
||||
--hash=sha256:b075a4e7ebc43dc6294f223e2821659656209fd5e0ce53245877c23d66d6e1a9 \
|
||||
--hash=sha256:b900e63a0e26c05ea9a6d5a3a5a0a177cb64c5011887bf43edb8c3ed2c38d363 \
|
||||
--hash=sha256:bbd531c327557a9004507fa6bff06c53ab51a7a5776b75261bb9cef1efe2b2ea \
|
||||
--hash=sha256:bd57790acd20f6a468e0ad333ef6b82355e309a92310fb7dff80e919f01a21a9 \
|
||||
--hash=sha256:c5bfe5350284509ab0474390321454c3a8627a188af5b68c910e83df3e2db4a7 \
|
||||
--hash=sha256:cc408c54b450f41582f4be1608f8981c1dcc44c7f40355cc150dd93015753407 \
|
||||
--hash=sha256:cdf506775d9f02eb92a87bf5c5b1e0d25506fd18cafd769f4ed914a8feac73e7 \
|
||||
--hash=sha256:d426178fb991a85714c43112a8ea7b9d9579ea856ad8dcdb9c1c3941903ba5be \
|
||||
--hash=sha256:db7735d15ea17a283d6485b9fa3504769f78fd86e5146638ad5e8da57c031b9e \
|
||||
--hash=sha256:e2b101f23b8b63978d334574d2039f27f0dccfe1d891756f33a2e2f3e4c88cf4 \
|
||||
--hash=sha256:efe0d2d5099790df945e0cb6e1b3104bd965d7bbfac50d62f1d5d1d6ade0825d \
|
||||
--hash=sha256:fb601841d9e02e6237bb6522e36d0741614be3cfe2b482a6f00a41b5ba209443 \
|
||||
--hash=sha256:fc6629becb21a867d85401ec89f426dd24c484a4193ade8a38309debfd1529ca
|
||||
# via smartmoneyconcepts
|
||||
numpy==2.4.6 \
|
||||
--hash=sha256:001fbb8e08d942dd57599e781f2472269ee7f2755fae407b4f67b2f0b17da3f1 \
|
||||
--hash=sha256:0280e0356c0829a18d9de1cb7eee50ec22ca639878d7240307ca0943d73cd2c4 \
|
||||
@@ -2221,11 +2167,9 @@ numpy==2.4.6 \
|
||||
# bottleneck
|
||||
# contourpy
|
||||
# matplotlib
|
||||
# numba
|
||||
# pandas
|
||||
# scikit-learn
|
||||
# scipy
|
||||
# smartmoneyconcepts
|
||||
# yfinance
|
||||
oauth-cli-kit==0.1.6 \
|
||||
--hash=sha256:7252f57e1a2f9dba7a94894c11b979f83884b3c88af3b4fe0206370a2b120499 \
|
||||
@@ -2446,7 +2390,6 @@ pandas==2.3.3 \
|
||||
# via
|
||||
# -r agent/requirements.txt
|
||||
# akshare
|
||||
# smartmoneyconcepts
|
||||
# tushare
|
||||
# yfinance
|
||||
pathable==0.6.0 \
|
||||
@@ -3558,10 +3501,6 @@ six==1.17.0 \
|
||||
# via
|
||||
# html5lib
|
||||
# python-dateutil
|
||||
smartmoneyconcepts==0.0.27 \
|
||||
--hash=sha256:aa5094fa3a361abbbbba358fe885d859537e2eba27374a934e28db353b97ae9b \
|
||||
--hash=sha256:f1b28cdbe869de5f5eb845d2cf2c99f74f18f9c9d7d948d12ec5ada42af5abd9
|
||||
# via -r agent/requirements.txt
|
||||
sniffio==1.3.1 \
|
||||
--hash=sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2 \
|
||||
--hash=sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc
|
||||
|
||||
Reference in new issue
Block a user