click>=8.1
rich>=13.7
httpx>=0.27
pydantic>=2.6
pydantic-settings>=2.2
numpy>=1.26
scipy>=1.12
pandas>=2.2
openpyxl>=3.1
pymupdf>=1.24
pdfplumber>=0.11
python-dateutil>=2.9
diskcache>=5.6
pyyaml>=6.0
imagehash>=4.3
pillow>=10.0
opencv-python-headless>=4.8
biopython>=1.83
piexif>=1.1
networkx>=3.0

[dev]
pytest>=8.0
pytest-cov>=5.0
pytest-asyncio>=0.23
httpx>=0.27
hypothesis>=6.99
ruff>=0.4
fastapi>=0.110
uvicorn>=0.27
python-multipart>=0.0.9
sqlalchemy>=2.0
aiosqlite>=0.20
bcrypt>=4.0
itsdangerous>=2.2
greenlet>=3.0
mypy>=1.10
pandas-stubs>=2.2
scipy-stubs>=1.12
types-pyyaml>=6.0
redis>=4.0
fakeredis>=2.0

[industrial]
h5py>=3.10

[legacy-doc]
olefile>=0.47

[ocr]
pytesseract>=0.3.10
Pillow>=10.0

[webui]
fastapi>=0.110
uvicorn>=0.27
python-multipart>=0.0.9
sqlalchemy>=2.0
aiosqlite>=0.20
bcrypt>=4.0
itsdangerous>=2.2
greenlet>=3.0
redis>=4.0
