aiohttp~=3.8
aiohttp-retry~=2.8
asyncio-pool~=0.6.0
beautifulsoup4~=4.12
bleach~=6.0
boto3~=1.28
certifi<2026.0,>=2023.7
click~=8.1
cssselect~=1.2
dataclasses-json~=0.6.0
diskcache~=5.6
elasticsearch~=7.0
elasticsearch-dsl~=7.0
expiringdict~=1.2
fastapi~=0.115.7
flasgger~=0.9.7
flask<4.0,>=2.3
flask-restful~=0.3.10
joblib~=1.3
lxml<6.0,>=4.9
marshmallow~=3.20
mergedeep~=1.3
more-itertools~=10.1
pandas~=2.0
publicsuffixlist~=0.10.0
python-dotenv~=1.0
python-slugify~=8.0
python-whois<0.10,>=0.8
pyyaml~=6.0
ranx~=0.3.16
requests~=2.31
requests-html~=0.10.0
requests-ratelimiter<0.8,>=0.4
resiliparse<0.16.0,>=0.14.5
tqdm~=4.66
unidecode~=1.3
urllib3~=1.26
warcio~=1.7
warc-s3~=1.0
warc-cache>=1.0.4,~=1.0
web-archive-api~=1.1

[documentation]
mkdocs~=1.5
mkdocs-material~=9.5

[examples]
jupyter~=1.0
matplotlib~=3.7
seaborn~=0.13.0

[tests]
approvaltests~=11.0
bandit[toml]~=1.7
boto3-stubs[s3]~=1.28
mypy~=1.5
pandas-stubs~=2.0
pytest~=8.0
pytest-cov~=4.0
ruff~=0.11.2
types-beautifulsoup4~=4.12
types-bleach~=6.0
types-lxml<2026.0,>=2023.10
types-python-dateutil~=2.8
types-python-slugify~=8.0
types-pyyaml~=6.0
types-requests~=2.31
types-tqdm~=4.66
