# Book Learning Tutor（授业）—— 运行时依赖
#
# 安装（下载本项目后一键就绪，见 setup_env.py）：
#   python setup_env.py            # 建 venv_slim + 装下面「核心」依赖
# 或手动：
#   venv_slim\Scripts\python.exe -m pip install -r requirements.txt
#
# 目标运行时：Python 3.13（3.11+ 亦可）。

# ============================================================
# 核心（必装）—— 本地「格式转换 + 课程化」全流程都依赖这些。
# teach.py / pipeline all-local 的导入链会用到全部核心包，
# 缺一都会在启动 CLI 时报 ImportError。
# ============================================================
pymupdf==1.28.2          # PDF / EPUB / DJVU 解析主力（book_formats.extract）
httpx==0.28.1            # 获取层 HTTP 客户端（fetcher；0.28 已移除 proxies=）
beautifulsoup4==4.15.0   # HTML 解析（rules.py 选择器后端 + MOBI 解包后清洗）
lxml==6.1.1              # bs4 的 XPath 解析后端
python-docx==1.2.0       # DOCX 读取（标题/表格/元数据）
mobi==0.4.1              # MOBI/AZW/AZW3 纯 Python 解包为 HTML（零膨胀，不捆绑 calibre）
pycryptodome==3.23.0     # 书源内容解密（transforms；pipeline 导入链硬依赖，必须装）

# ============================================================
# 可选（不装也能跑核心流程；特定能力才需要）
# ============================================================
ebooklib>=0.18           # EPUB 文本解析主用（pymupdf 对 EPUB3 常解析不出 TOC，仅作后备）
# —— 以下为「在线书源 / 爬虫」可选依赖，见 requirements-extra.txt ——
# djvulibre（djvutxt.exe）# DJVU 兜底：放 vendor/djvulibre/ 或系统 PATH（非 pip 包）
# tesseract / MinerU / Nougat # 扫描版 PDF/DJVU 的 OCR；缺则标 needs_ocr 不崩
