普贤教程 › 包参考
diff 包
行级 diff(LCS)
| 项 | 值 |
|---|---|
| 包名 | diff |
| 版本 | 0.2.0 |
| 可用版本 | 0.1.0 / 0.2.0 |
| 入口 | diff.px |
| 分类 | 可观测与测试 |
| 文件数 / 行数 | 1 / 242 |
安装与引入
bash
pxpkg init # 首次 pxpkg add diff@0.2.0 pxpkg install
px
import diff所属分类教程:可观测与测试
公开接口
| 函数 | 参数 |
|---|---|
df_split | s |
df_lines | a, b |
df_ratio | a, b |
其余 5 个 def(内部与辅助,可直接调用但不属稳定接口)
| 函数 | 参数 |
|---|---|
df_lcs_table | a, b |
df_backtrack | a, b, dp |
df_opcodes | a, b |
df_inline | a, b |
df_unified | a, b, context=3 |
包内说明(源码头注释)
text
============================================================ 普贤生态库:registry/diff —— 行级 diff(LCS) ------------------------------------------------------------ 纯函数库(无 IO、无状态),编译(px build)与解释(px run)双模式一致。 df_lines(a, b) → [str] 行级 diff:前缀 " "(共有)/"-"(仅 a)/"+"(仅 b) df_ratio(a, b) → float 相似度 2*LCS/(len_a+len_b)(0..1) df_split(s) → [str] 按 "\n" 切行 说明: - LCS 用 DP 表(O(n*m) 空间);适合小规模文本(配置/日志/短文本) - 行比较为整串字节相等;行内字符级 diff(SequenceMatcher opcodes)留给 0.2.0 - b 中的新增行在 a 的对应位置之后按序出现(与 difflib.unified 同序直觉) ============================================================