requests>=2.31.0
aiohttp>=3.9.0
beautifulsoup4>=4.12.0
lxml>=4.9.0
lxml_html_clean
selectolax>=0.3.0
pydantic>=2.5.0
pydantic-settings>=2.0.0
orjson>=3.9.0
fake-useragent
aiofiles>=23.2.0
aiosqlite>=0.19.0
pybloom-live
fastapi

[all]
playwright>=1.40.0
motor>=3.3.0
asyncpg>=0.29.0
sentence-transformers>=2.2.0
numpy>=1.24.0
newspaper3k>=0.2.8
goose3>=3.1.0
readability-lxml>=0.8.0
pyvis>=0.3.0
networkx>=3.6
celery>=5.3.0
redis>=5.0.0
g4f>=0.3.0
scikit-learn>=1.0.0
aiodns>=3.1.0

[all:platform_system != "Windows"]
uvloop>=0.19.0

[articles]
newspaper3k>=0.2.8
goose3>=3.1.0
readability-lxml>=0.8.0

[celery]
celery>=5.3.0
redis>=5.0.0

[dev]
pytest>=7.4.0
pytest-asyncio>=0.21.0
pytest-cov>=4.1.0
black>=23.0.0
ruff>=0.1.0
mypy>=1.5.0

[embeddings]
sentence-transformers>=2.2.0
numpy>=1.24.0

[goose]
goose3>=3.1.0

[ml]
g4f>=0.3.0
scikit-learn>=1.0.0

[mongodb]
motor>=3.3.0

[native]
cython>=3.0.0
mmh3>=4.0.0

[newspaper]
newspaper3k>=0.2.8

[performance]
aiodns>=3.1.0

[performance:platform_system != "Windows"]
uvloop>=0.19.0

[playwright]
playwright>=1.40.0

[postgresql]
asyncpg>=0.29.0

[readability]
readability-lxml>=0.8.0

[viz]
pyvis>=0.3.0
networkx>=3.6
