px普贤教程PuXian
普贤教程 › 包参考

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_splits
df_linesa, b
df_ratioa, b
其余 5 个 def(内部与辅助,可直接调用但不属稳定接口)
函数参数
df_lcs_tablea, b
df_backtracka, b, dp
df_opcodesa, b
df_inlinea, b
df_unifieda, 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 同序直觉)
============================================================