本卡屬 FR-092(母卡 CM-1703),第 6 棒盤點(CM-1709)產出。改 pyproject.toml 的宣告,不改任何程式碼。報告 docs/features/FR-092-2609-dead-code-cleanup/scan-unused-deps.md 為準。

問題是什麼(白話)

主專案 pyproject 有三支套件從專案第一個 commit 起就沒有任何一行程式碼 import 過(gevent、flask-marshmallow、google-auth-oauthlib),每次出貨都白裝約 9.8 MB 與三份授權/CVE 面。反過來,有五支套件主專案天天在用卻沒宣告,全靠 jedi 套件當相依帶進來——其中 openpyxl 撐著 xlsx 匯入匯出核心功能(11 支活檔),哪天套件 pin 一換主專案就在執行期炸,而 pyproject 上完全看不出來。

首腦核對:gevent 全 monorepo 零 import(含 .venv 外)、gunicorn 無 worker_class、SocketIO 走 eventlet;openpyxl 12 支活檔模組層 import、pyproject 零宣告。屬實。

在哪裡

pyproject.toml:26   "flask-marshmallow==1.2.1"          拔
pyproject.toml:30   "gevent==24.11.1"                   拔
pyproject.toml:64   "google-auth-oauthlib (>=1.2.0,<2.0.0)"   拔
pyproject.toml [project].dependencies   補:openpyxl/werkzeug/cryptography/requests/httpx

怎麼修

要寫測試

不寫。驗:python main.py 起得來+RUN_MODE=socketio python main.py 起得來(驗 eventlet 路徑)+守衛三檔綠+python -m pytest test/ -k 'excel or xlsx or template' -q 綠(openpyxl 路徑)。

手測

連帶

紀律