Show HN: Modshim – a new alternative to monkey-patching in Python
4 months ago
- #Python
- #enhancement
- #library
- Modshim是一个无需修改源代码即可增强现有模块的Python库
- 它提供了分叉(forking)、供应商化(vendoring)和猴子补丁(monkey-patching)之外的清洁替代方案
- 核心功能包括修复第三方库的bug、修改现有函数行为以及添加新特性
- Modshim通过创建融合原始代码与增强功能的'shimmed'模块来工作
- 典型用例:为textwrap模块中的TextWrapper添加prefix参数
- Modshim保留原始模块,确保不会产生意外副作用
- 支持复杂场景,例如为requests库添加重试机制
- 采用AST重写技术重定向内部引用,保持一致性
- 相比猴子补丁的优势包括无全局污染和更好的可维护性
- 与代码分叉相比,modshim能降低维护开销和依赖复杂度