utils.sync_all
从 __init__.py 的 from X import Y 语句自动生成 __all__。
- 用法:
python -m backend.tools.sync_all
- 设计原则:
import 行是公开接口的唯一真实来源
以下划线开头的名称不会被加入 __all__
脚本不增加不减少导入,只生成 __all__
Attributes
Functions
|
解析源码中所有 from X import Y 语句,收集公开名称。 |
|
扫描 AST 找到最后一个 import 行,截断后追加 __all__ 列表。 |
|
对单个 __init__.py 执行同步:解析 import 行 → 生成 __all__ → 写回文件。 |
|
扫描 backend/ 下所有 __init__.py,同步 __all__ 后输出变更清单。 |
Module Contents
- utils.sync_all.BACKEND
- utils.sync_all._collect_names(source: str) list[str]
解析源码中所有 from X import Y 语句,收集公开名称。
- utils.sync_all._rebuild(source: str, names: list[str]) str
扫描 AST 找到最后一个 import 行,截断后追加 __all__ 列表。
策略:丢弃 import 行之后的所有内容(已有 __all__ 或其他代码), 从最后一个 import 行截断,在末尾生成新的 __all__ 块。 自动检测原始换行符风格(LF / CRLF)并保持一致。
- Args:
source: __init__.py 的原始源码。 names: 需要加入 __all__ 的公开名称列表。
- Returns:
str: 替换 __all__ 后的完整源码。
- utils.sync_all.sync_file(path: str) bool
对单个 __init__.py 执行同步:解析 import 行 → 生成 __all__ → 写回文件。
- Args:
path: __init__.py 的绝对路径。
- Returns:
bool: True 表示文件已被修改,False 表示无需变更。
- utils.sync_all.main()
扫描 backend/ 下所有 __init__.py,同步 __all__ 后输出变更清单。