本文同时发布于我的知乎专栏
在之前打一些比赛的过程中,遇到了以下问题:数据清洗和预处理的过程复杂,耗费计算时间长,并需要尝试多种参数的组合。
如果每次运行都重复计算会浪费大量时间,对每种参数下处理结果进行手动保存也比较麻烦。由此产生了一个需求,即根据特定参数对运算结果进行缓存,并且在第二次运行时直接读取缓存避免计算。这就是写这个库的源动力。
from Lutil.checkpoints import InlineCheckpoint
a, b = 1, 2
with InlineCheckpoint(watch=["a", "b"], produce=["c"]):
p