
[bench-a2a]
a2a-protocol==0.1.0

[bench-acp]
agent-client-protocol==0.9.0

[bench-aes]
pycryptodome==3.23.0

[bench-cache]
cachetools==7.0.5

[bench-cdp]
websockets>=14.0

[bench-config]
python-decouple==3.8

[bench-diff]
unidiff==0.7.5

[bench-dotenv]
python-dotenv==1.2.2

[bench-frontmatter]
python-frontmatter==1.1.0

[bench-http]
httpx==0.28.1

[bench-httpserver]
flask==3.1.3
microdot==2.6.1
bottle==0.13.4

[bench-jsonc]
commentjson==0.9.0

[bench-jsonrpc]
jsonrpcserver==5.0.9

[bench-markdown]
mistune==3.2.1

[bench-persistdict]
sqlitedict==2.1.0

[bench-png]
Pillow==12.2.0
numpy>=1.26.0

[bench-protobuf]
protobuf==7.34.1

[bench-qr]
qrcode==8.2
Pillow==12.2.0

[bench-readability]
readability-lxml==0.8.4.1

[bench-retry]
tenacity==9.1.4

[bench-runner]
sh==2.2.2

[bench-scheduler]
APScheduler==3.11.2
schedule==1.2.2
croniter==6.2.2

[bench-search]
rank-bm25==0.2.2
bm25s>=0.3.0

[bench-semver]
packaging==26.1

[bench-soup]
beautifulsoup4==4.14.3

[bench-sse]
httpx-sse==0.4.3
httpx==0.28.1

[bench-structlog]
structlog==25.5.0

[bench-tabulate]
tabulate==0.10.0

[bench-toon]
toon-format>=0.9.0b1

[bench-useragent]
ua-generator>=2.0.0

[bench-validate]
pydantic==2.13.0

[bench-websocket]
websockets>=14.0

[bench-xml]
xmltodict==1.0.4

[bench-yaml]
PyYAML==6.0.3

[dev]
ruff>=0.1.0
ty>=0.0.24
complexipy>=5.2.0
build>=1.2.2.post1
twine>=6.1.0
zerodep[bench-a2a,bench-acp,bench-aes,bench-cache,bench-cdp,bench-config,bench-diff,bench-dotenv,bench-frontmatter,bench-http,bench-httpserver,bench-jsonc,bench-jsonrpc,bench-markdown,bench-persistdict,bench-png,bench-protobuf,bench-qr,bench-readability,bench-retry,bench-runner,bench-scheduler,bench-search,bench-semver,bench-soup,bench-sse,bench-structlog,bench-tabulate,bench-toon,bench-useragent,bench-validate,bench-websocket,bench-xml,bench-yaml,test]

[test]
pytest>=7.0.0
pytest-asyncio>=0.21.0
pytest-benchmark>=4.0.0
