pydantic<3.0.0,>=2.0.0
httpx<1.0.0,>=0.24.0
tiktoken<1.0.0,>=0.5.0

[all]
abstractcore[anthropic,dev,docs,embeddings,huggingface,lmstudio,media,mlx,ollama,openai,processing,server,test]

[all-providers]
abstractcore[anthropic,embeddings,huggingface,lmstudio,mlx,ollama,openai]

[anthropic]
anthropic<1.0.0,>=0.25.0

[api-providers]
abstractcore[anthropic,openai]

[dev]
pytest>=7.0.0
pytest-asyncio>=0.21.0
pytest-mock>=3.10.0
black>=23.0.0
isort>=5.12.0
mypy>=1.5.0
ruff>=0.1.0
pre-commit>=3.0.0

[docs]
mkdocs>=1.5.0
mkdocs-material>=9.0.0
mkdocstrings[python]>=0.22.0
mkdocs-autorefs>=0.4.0

[embeddings]
sentence-transformers<4.0.0,>=2.7.0
numpy<2.0.0,>=1.20.0

[full-dev]
abstractcore[all-providers,dev,docs,test]

[heavy-providers]
abstractcore[huggingface]

[huggingface]
transformers<5.0.0,>=4.30.0
torch<3.0.0,>=1.12.0
llama-cpp-python<1.0.0,>=0.2.0

[lightweight]
abstractcore[anthropic,embeddings,lmstudio,media,ollama,openai,processing,server]

[lmstudio]

[local-providers]
abstractcore[lmstudio,mlx,ollama]

[media]
Pillow<12.0.0,>=10.0.0
pymupdf4llm<1.0.0,>=0.0.20
unstructured[office]<1.0.0,>=0.10.0
pandas<3.0.0,>=1.0.0

[mlx]
mlx<1.0.0,>=0.15.0
mlx-lm<1.0.0,>=0.15.0

[ollama]

[openai]
openai<2.0.0,>=1.0.0

[processing]

[server]
fastapi<1.0.0,>=0.100.0
uvicorn[standard]<1.0.0,>=0.23.0
sse-starlette<2.0.0,>=1.6.0

[test]
pytest>=7.0.0
pytest-asyncio>=0.21.0
pytest-mock>=3.10.0
pytest-cov>=4.0.0
responses>=0.23.0
httpx>=0.24.0
