# Python packages pre-baked into the runtime's system python (read-only
# bind-mounted into every Bash sandbox). The agent CANNOT `pip install` at
# runtime — it is rejected in all modes — so anything it might `import` must
# be listed here and re-provisioned. See docs/operations/bash-sandbox-provisioning.md.
#
# NOTE: the Bash sandbox runs with --unshare-net (no network), so network
# libraries (requests/httpx/aiohttp/yt-dlp/scrapy ...) are intentionally NOT
# listed — outbound HTTP must go through the WebFetch/DownloadFile/MCP tools.

# ── Documents / file-format readers ──────────────────────────
pypdf==6.14.2
pymupdf==1.28.0  # fitz; PDF render/extract (musllinux wheels >=1.24)
pdfplumber==0.11.10  # PDF text + table extraction (pdfminer.six based)
python-docx==1.2.0  # .docx read/write
python-pptx==1.0.2  # .pptx read/write
openpyxl==3.1.5  # .xlsx read/write
xlsxwriter==3.2.9  # .xlsx write with formatting/charts
xlrd==2.0.2  # legacy .xls (pre-2007 Excel) read
odfpy==1.4.1  # OpenDocument .odt / .ods
striprtf==0.0.32  # .rtf -> plain text
beautifulsoup4==4.15.0  # HTML/XML parsing
lxml==6.1.1  # fast XML/HTML backend
markdownify==1.2.3  # HTML -> Markdown
markdown==3.10.2  # Markdown -> HTML

# ── Data / analysis ──────────────────────────────────────────
# 版は **Python 3.10 で入るもの**に揃えてある。本番が 3.10 で、これより
# 新しい numpy / pandas / matplotlib は 3.11 以上を要求する。3.11 以上へ
# 上げたら、ここも上げ直してよい（issue #1090）。
numpy==2.2.6
pandas==2.3.3
tabulate==0.10.0  # render tables as markdown/plain text
python-dateutil==2.9.0.post0  # flexible date parsing
matplotlib==3.10.9  # offline charts -> image files in output/ (HEAVY: on
                       # alpine/musl needs freetype/libpng build deps; fine on host)

# ── Images / text ────────────────────────────────────────────
Pillow==12.3.0  # image processing
charset-normalizer==3.4.9  # robust encoding detection for messy text
PyYAML==6.0.3  # YAML read/write (stdlib json covers JSON)
