You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Comparison extra fails to import VectorBT with Plotly 7 #144
The declared comparison extra cannot import VectorBT when installed with the visualization extra on supported Python 3.12-3.14.
Reproduction
At Backtest main 3fc7d74d9b0d582b89914ace0bfb74edb337327a, on Linux with Python 3.12:
uv sync --dev --locked --extra comparison --extra viz
uv run --no-sync python -c "import vectorbt"
The lock resolves VectorBT 1.0.0 and Plotly 7.0.0. Import raises Plotly InvalidPropertyPath: scattermapbox. The opt-in public cross-engine contract command fails all three VectorBT cases while the six Backtrader/Zipline cases pass:
ML4T_COMPARISON_INPROC=1 uv run --no-sync pytest -q --no-cov tests/contracts/test_cross_engine_contracts.py
Expected behavior and repair
The declared extra should install together and execute its native comparison contracts. Keep the shared comparison group on Plotly below 7 for Python below 3.15, and check that shared installation in the compatibility workflow. VectorBT 1.1.1 is not a compatible alternative for this group: its pandas requirement conflicts with the Pyfolio dependency. Isolated parity environments keep their own locks.
The repair passed all nine native contracts. Twelve Python/platform resolution contexts preserve every other resolved package version; the Python 3.15 graph is unchanged. The existing Python minimum remains 3.12.
AI assistance
Codex reproduced the install/import and native contract failures, produced the focused dependency and CI changes, and ran the recorded checks. No independent human review or new platform support claim is asserted.
Activity