# MediaCrawler 精简依赖 —— 只保留本 wrapper 的 search + 一级评论 + jsonl 落盘路径
# 所需的包。与上游 requirements.txt 的差异：砍掉 webui/API 服务（fastapi/uvicorn）、
# Excel 导出（openpyxl）、测试（pytest/pytest-asyncio）、数据库迁移（alembic）、
# 未使用的驱动（asyncmy/aiosqlite）和 python-dotenv。redis 虽然只当缓存用，但
# proxy_ip_pool 在 import 期就实例化 IpCache，砍不掉。
# 仅适配 mediacrawler_search.py 里的 PINNED_COMMIT；setup 时 smoke test 失败会
# 自动回退上游全量 requirements。
httpx==0.28.1
pillow>=12.2.0
playwright>=1.61.0
tenacity==8.2.2
typer>=0.12.3
opencv-python
aiomysql==0.2.0
redis~=4.6.0
pydantic>=2.13.4
aiofiles~=23.2.1
jieba==0.42.1
wordcloud>=1.9.6
matplotlib>=3.11.0
requests==2.32.3
parsel==1.9.1
pyexecjs==1.5.1
pandas==2.2.3
pyhumps==3.8.0
sqlalchemy>=2.0.43
motor>=3.3.0
xhshow>=0.2.0
