pydantic<3,>=1.10.26
typer<0.28,>=0.26.7

[all]
ortools<9.16,>=9.15
openpyxl>=3.1
Pillow<13,>=11.3
streamlit<2,>=1.50
fastapi<0.116,>=0.115
uvicorn<1,>=0.41
python-multipart<1,>=0.0.20
weasyprint<70,>=69
cffi<3,>=2
python-docx>=1.0

[dev]
pytest>=7.0
build>=1.2
pypdf>=5

[docs]
mkdocs-material==9.*

[docx]
python-docx>=1.0

[e2e]
playwright<2,>=1.40
pytest-playwright<1,>=0.5

[excel]
openpyxl>=3.1

[image]
Pillow<13,>=11.3

[pdf]
weasyprint<70,>=69
cffi<3,>=2

[solver]
ortools<9.16,>=9.15

[web]
streamlit<2,>=1.50
fastapi<0.116,>=0.115
uvicorn<1,>=0.41
python-multipart<1,>=0.0.20
