textual<1,>=0.89
PyYAML>=6
jsonschema<5,>=4.18

[ai]
google-genai>=1.0
json-repair<1,>=0.30

[all]
openpyxl>=3.1
google-genai>=1.0
json-repair<1,>=0.30
mammoth>=1.8
PyMuPDF<3,>=1.24
Pillow>=10
rarfile>=4.2
pypdf>=6.20.1
python-docx>=1.1
docxcompose<3,>=2.2
docxtpl>=0.16
jinja2>=3.1
lxml>=5
markdown-it-py<5,>=3
matplotlib>=3.8
requests>=2.31
urllib3>=2.8.0

[attachments]
mammoth>=1.8
PyMuPDF<3,>=1.24
Pillow>=10
pypdf>=6.20.1
python-docx>=1.1
rarfile>=4.2
requests>=2.31

[benchmarks]
psutil<8,>=5.9

[charts]
matplotlib>=3.8

[dev]
bandit<2,>=1.9.4
build<2,>=1.2
coverage<8,>=7.0
pip-audit<3,>=2.10
pre-commit<5,>=4.6
ruff<0.16,>=0.15.14
twine<7,>=6
virtualenv>=21.7.13

[downloads]
requests>=2.31
urllib3>=2.8.0

[report-parity]
lxml>=5
Pillow>=10
PyMuPDF<3,>=1.24

[reports]
docxcompose<3,>=2.2
docxtpl>=0.16
jinja2>=3.1
lxml>=5
markdown-it-py<5,>=3
python-docx>=1.1

[workbooks]
openpyxl>=3.1
