pydantic<3,>=2
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.142,>=0.138
starlette<2,>=1.3.1
uvicorn<1,>=0.41
python-multipart<1,>=0.0.20
weasyprint<70,>=69
cffi<3,>=2
python-docx>=1.0
python-pptx>=1.0
lxml<7,>=6.1.0

[desktop]
pywebview<7,>=5

[dev]
pytest>=7.0
build>=1.2
pypdf<7,>=6.14
httpx<1,>=0.27

[docs]
mkdocs-material==9.*

[docx]
python-docx>=1.0
lxml<7,>=6.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

[pptx]
python-pptx>=1.0
lxml<7,>=6.1.0

[solver]
ortools<9.16,>=9.15

[web]
streamlit<2,>=1.50
fastapi<0.142,>=0.138
starlette<2,>=1.3.1
uvicorn<1,>=0.41
python-multipart<1,>=0.0.20
