我的想法是主要实现这么一个库:使用 Python 定义模式,然后可以用改模式来:
- 验证一个 Python 对象是否符合该模式
- 将一个对象转换成符合该模式的对象
- 随机生成符合该模式的对象
- 基于该模式,提供一些其他库的扩展,比如:
- flask/django 的参数验证扩展
- pymongo 的简单 orm
PyPI 上面类似的库是有的,但是觉得其 API 不好用,因此打算重新造一个轮子,下面是已经实现了的判断对象是否符合模式的例子:
schema = {
'a': [],
'b': [
{
'c': int,
'd': Int(default=3),
'e': [str]
}
],
'c': Int(validator=lambda x: 1 < x < 10)
}
rubric.validate(schema, {
'a': [],
'b': [
{
'c': 1,
'd': 2,
'e': ['hello', 'world']
}
],
'c': 7
}) # pass
目前功能都只实现了部分(只作了验证,很多类型的验证规则也还没定义),代码也不到 200 行,因此特意来此找感兴趣的朋友来一起完成这个项目,主要是:
- 一起设计出更好用的 API
- 完成其他未完成的功能
代码注释丰富,测试也很多,除了 pytest 之外不依赖任何第三方库.稍微熟悉 python 就可以了~,感兴趣的朋友快一起来吧~~