This repository has been archived on 2026-10-02. You can view files and clone it. You cannot open issues or pull requests or push a commit.
snowy-yang 133beab492 chore: 删除 HTTP 线三个垫片,同步/异步桥接层彻底清零
删 core/sync_http.py(requests 同形同步门面)、core/async_bridge.py(run_sync
同步↔异步桥)、core/http_errors.py(两垫片共用的 requests 同形异常层次),
以及 tests/test_async_bridge.py。

为什么必须一次删完:三者是**自闭环三角**——sync_http 是 async_bridge 与
http_errors 的唯一消费者,删掉任何一个其余两个立刻悬空。前序 B1 把 worker 变成
协程、B2 把 auth_system 迁到 aiosqlite、更早一轮把 music_api 改走
core.http_client 之后,这条链上的生产消费者已归零;http_errors 更是在 B2 之后
只剩 sync_http 一个使用者(此前 sync_http 的 docstring 还提到
models._RetryFromScratch 继承它的 RequestException——B1 已改为继承 Exception)。

删除前的核查(避免误删活代码):
- run_sync / get_loop / SyncResponse / Session( 全仓零残留引用(只剩
  aiohttp.ClientSession,那是真正的客户端,不受影响)。
- 所有 HTTPError 命中都是 core.http_client.UpstreamHTTPError——与
  core.http_errors 的 HTTPError **名字像但不是一个东西**,删除时别被 grep 骗。
- requests 早已不是声明依赖、全仓零导入;删掉 http_errors 后连 requests 同形
  异常的最后残影也没了。
- core/__init__.py 只有 docstring,无需改动;web/app.py 的 async_bridge.shutdown()
  已在 B1 移除。

顺带修正两处过时措辞:tests/test_search_music.py 的错误映射注释
RequestException → UpstreamError(异常层次已换);pyproject.toml 中 pyright
include 的理由注释 requests→sync_http → requests→aiohttp(去掉已删模块名、
保留原意)。auth_system/geo.py 的历史注释本就是过去时,保持不动。

门禁:ruff 全过 / pyright 0-0-0 / pytest 382 项全绿(0 失败 0 error 0 skipped)。
项数 384→382 是 test_async_bridge.py 两条用例**随被测对象一起删除**的预期减项,
不是跳过或漏跑。data/site.db 读写前后 sha256 一致(a19f5db…6487)。

至此「同步调异步 / 异步桥同步」两类垫片全部拆净:DB 线(B1 worker + B2
auth_system)、HTTP 线(本批)。生产代码里 to_thread 仅剩正当的阻塞卸载
(PBKDF2 / smtplib / 备份文件 IO / ZIP 组装 / rmtree),threading.Event 仅剩
取消与暂停的跨线程置位载体。
2026-09-28 20:18:08 +08:00
S
Description
云村小助手 · 网易云音乐解析/下载服务(FastAPI + asyncio + aiohttp)
1.5 MiB
0 Stars 1 Watchers 0 Forks
Languages
Python 61%
TypeScript 32.2%
CSS 6.6%
Dockerfile 0.1%