27 lines
888 B
Plaintext
27 lines
888 B
Plaintext
# Core engine. The streaming fallback parser uses only stdlib; python-calamine is the fast
|
|
# (Rust) default parser — set AR_USE_CALAMINE=0 to force the low-memory streaming reader.
|
|
openpyxl==3.1.5
|
|
python-calamine>=0.3.0
|
|
|
|
# API layer
|
|
fastapi==0.115.6
|
|
# Pinned deliberately: fastapi 0.115.6 requires starlette <0.42, and Starlette 1.x dropped the
|
|
# `on_startup` argument from Router.__init__. An unpinned upgrade to 1.3.1 broke every route
|
|
# module at import time with "Router.__init__() got an unexpected keyword argument 'on_startup'".
|
|
starlette==0.41.3
|
|
uvicorn[standard]==0.34.0
|
|
python-multipart==0.0.20
|
|
pydantic==2.10.4
|
|
SQLAlchemy==2.0.36
|
|
PyMySQL==1.1.1
|
|
cryptography>=42.0.0
|
|
python-dotenv==1.0.1
|
|
# CA bundle for the FX-rate fetch — the Windows OS cert store is unreliable on some machines
|
|
certifi>=2024.2.2
|
|
|
|
# Data helpers (optional / analysis)
|
|
pandas>=2.2
|
|
|
|
# Testing
|
|
pytest==8.3.4
|