【发布时间】:2018-06-15 12:20:03
【问题描述】:
我一直听说 python 是一种对猴子补丁很友好的语言......现在我需要猴子补丁并且不知道该做什么。
我特别需要禁用解析异常的“引发”,以查看 iso 解析库是否正常运行。这不是那么简单,因为我正在使用 libmirage(它是一个 cdemu 一个 cd 模拟器底层库,用于处理任何类型的 mode2 形式 1 的第一个轨道或像 iso 一样混合,以便 iso 解析器库 pycdlib 可以读取它。
这几乎可以完美运行,除了...我正在测试的 redump 集合中的一些 psx cd 在 pycdlib 中由于各种解析错误而引发异常:
PyCdlibInvalidISO: data in 3rd unused field not zero
\
ValueError: year is out of range
\
PyCdlibInvalidISO: File structure version expected to be 1
等等
我真正想要的是在解析期间禁用引发异常,因为我正在寻找的信息与 iso 验证没有太大关系——基本上是单个 txt 文件中的序列号——以及那些 iso无论如何都要经过redump的审查。
有没有办法在不自己导入和编辑库的情况下做到这一点?
【问题讨论】:
-
不能只捕获异常吗?
-
捕获它们会阻止解析在 pycdlib 库代码中继续进行(它会将它们抛出)。我不控制图书馆,否则我已经破解了它。它是通过其 github 上的 pip 安装的。最终我想将程序或脚本分发给其他人。
-
你不能禁止加注。您需要提取模块源并直接修改它,也就是 fork 它。
标签: python exception monkeypatching