verfun是一个用于为python函数生成校验和的实用工具
verfun的Python项目详细描述
非常有趣
verfun是一个用于为python函数生成校验和的实用工具,忽略空白、注释、变量名等。
太好了,为什么这个有用?
给定一个您想要的用例
- 对您的数据执行操作的算法版本
- 如果算法更改,则在受影响的数据上重新运行所述算法
- 如果只添加注释、重构变量名等,则不重新运行
特点:
生成给定函数的md5校验和,忽略以下内容:
- 函数名
- 文档字符串和注释
- 空白
- 缩进
示例用法
示例取自example.py
from verfun import version_hash_for_function, version_hash_for_function_list
def some_strange_looking_function(param1, callback_fn):
tail = param1[-1]
return callback_fn(tail)
def same_strange_looking_function(param1, callback_fn):
"""
This function is documented, but the function is identical to some_strange_looking_function
and should result in the same hash
"""
tail = param1[-1]
# return the callback value from the tail of param whatever that is
return callback_fn(tail)
def different_function():
return "this one is different"
# generate checksum for each function
print(version_hash_for_function(some_strange_looking_function))
# c4cb4d2638d790016cbee29a6ed5af8c
print(version_hash_for_function(same_strange_looking_function))
# c4cb4d2638d790016cbee29a6ed5af8c
print(version_hash_for_function(different_function))
# 8515c1678211e93362800b30ef7234cf
# generate a checksum for multiple functions
print(version_hash_for_function_list([some_strange_looking_function, different_function]))
# 1fa4dc521f63cd5a8faac4cc8402d63d