ollama>=0.1.0
Pillow~=12.2
PyMuPDF~=1.23
python-docx~=1.0
openpyxl~=3.1
python-pptx<2,>=0.6.0
ebooklib<1,>=0.20
beautifulsoup4~=4.12
lxml~=6.1
defusedxml<1,>=0.7.1
mutagen~=1.47
snowballstemmer>=2.2.0
striprtf<1,>=0.0.26
tinytag~=2.2
py7zr<2,>=0.20.0
pypdf~=6.10
rarfile~=4.1
typer[all]~=0.12
rich~=13.0
Pygments>=2.20.0
sqlalchemy~=2.0
alembic~=1.13
Mako>=1.3.11
pyyaml~=6.0
platformdirs~=4.9
pydantic~=2.5
pydantic-settings~=2.1
python-dotenv~=1.0
click~=8.1
watchdog~=3.0
psutil<7,>=6.1
loguru<1,>=0.7.0
httpx~=0.27

[all]
fo-core[build,cad,claude,cloud,dedup-image,dedup-text,dev,llama,media,mlx,scientific,search]

[build]
pyinstaller~=6.0

[cad]
ezdxf~=1.1

[claude]
anthropic>=0.20.0

[cloud]
openai~=2.31

[dedup-image]
fo-core[dedup-text]
torch~=2.1

[dedup-image:python_version < "3.14"]
imagededup<1,>=0.3.0

[dedup-text]
numpy<3,>=1.24
scikit-learn<1.9,>=1.4

[dev]
pytest~=9.0
pytest-asyncio>=1.0
pytest-cov~=4.1
pytest-mock~=3.12
pytest-timeout<2.4.0,>=2.2.0
pytest-xdist~=3.5
pytest-randomly~=3.15
mypy!=1.20.2,~=1.8
types-PyYAML~=6.0
ruff>=0.1.0
black~=26.3
isort~=8.0
pre-commit~=3.6
codespell~=2.2
faker~=40.12
pytest-benchmark~=4.0
interrogate~=1.5
pymarkdownlnt>=0.9.25
deptry>=0.16.0
diff-cover~=7.0

[docs]
mkdocs~=1.5
mkdocs-material~=9.5
pymdown-extensions~=10.21
mkdocs-minify-plugin>=0.8.0
mkdocstrings[python]>=0.24.0

[llama]
llama-cpp-python>=0.2.0

[media]
faster-whisper~=1.0
torch~=2.1
pydub<1,>=0.25.0
opencv-python~=4.8
scenedetect[opencv]<1,>=0.6.0

[mlx]

[mlx:platform_system == "Darwin"]
mlx-lm<1,>=0.0.19

[scientific]
h5py~=3.10
netCDF4~=1.6
scipy~=1.11

[search]
numpy<3,>=1.24
rank-bm25>=0.2.0
scikit-learn<1.9,>=1.4
