# NumPy 1.x Environment - ONLY Libraries That REQUIRE NumPy 1.x
# These libraries are incompatible with NumPy 2.x

# Core dependencies
# numpy + pandas also power the prebuilt Fincept Notebook library
# (Intermediate/Hard notebooks under resources/notebooks/). Beginner notebooks
# use the Python standard library only and need no packages.
numpy>=1.26.4,<2.0
pandas>=2.0.0,<2.3.0

# Spreadsheet I/O (local xlsx/csv + Google Sheets)
openpyxl>=3.1.0
gspread>=6.0.0

# Backtesting and trading (NumPy 1.x dependent)
vectorbt==0.28.2
backtesting==0.6.5
zipline-reloaded>=3.0
exchange-calendars>=4.0
bt>=1.1.2
ffn>=1.1.2

# peewee is a transitive dependency of zipline-reloaded (via empyrical-reloaded)
# Pin it explicitly so UV can resolve it early; the PEEWEE_NO_SQLITE_EXTENSIONS=1
# env var set during install prevents the C extension build that fails on
# embedded Python (missing sqlite3.h header).
peewee>=3.17.0

# vectorbt's JIT core (old numba - incompatible with NumPy 2.x)
llvmlite==0.43.0
numba==0.60.0

# Charting used by the vectorbt/bt providers (plotly capped <6.0.0)
plotly>=5.18.0,<6.0.0
matplotlib>=3.8.0,<3.10.0

