Skip to content

Comparison extra fails to import VectorBT with Plotly 7 #144

Closed

Description

@stefan-jansen

Problem

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions