验证和分析库

trafaret的Python项目详细描述


Build statusGitterDownloadsDownloads

支持验证、上下文和aiohttp的最终转换库。

trafaret是一个刚性和强大的lib,用于处理外部数据、配置等。 它提供了一种简单的方法来检查任何东西,并根据需要进行相应的转换。

它具有快捷语法和表达任何可以编码的内容的能力:

>>>fromtrafaret.constructorimportconstruct>>>validator=construct({'a':int,'b':[str]})>>>validator({'a':5,'b':['lorem','ipsum']}){'a':5,'b':['lorem','ipsum']}>>>validator({'a':5,'b':['gorky',9]})Traceback(mostrecentcalllast):File"<console>",line1,in<module>File"/Users/mkrivushin/w/trafaret/trafaret/__init__.py",line204,in__call__returnself.check(val)File"/Users/mkrivushin/w/trafaret/trafaret/__init__.py",line144,incheckreturnself._convert(self.check_and_return(value))File"/Users/mkrivushin/w/trafaret/trafaret/__init__.py",line1105,incheck_and_returnraiseDataError(error=errors,trafaret=self)trafaret.DataError:{'b':DataError({1:DataError(valueisnotastring)})}

阅读文档宿主文档http://trafaret.readthedocs.org/en/latest/ 或者从docs/intro.rst开始。

trafaret甚至可以生成trafarets实例来从json构建转换器, 就像在json模式实现中一样Trafaret Schema

新的

  • 转换器和convert=False被删除,取而代之的是And&
  • String参数regex已删除,以支持RegexpRegexpRaw用法
  • 新的OnError用于自定义错误消息
  • context=something参数用于__call__checktrafaret方法。 由OrAndForward等支持。
  • 新的可自定义方法transform类似于change_and_return,但采用context=arg
  • 使用await
  • 的新trafaret_instance.async_check方法

文档

举个简单的例子:

importdatetimeimporttrafaretastdate=t.Dict(year=t.Int,month=t.Int,day=t.Int)>>(lambdad:datetime.datetime(**d))assertdate.check({'year':2012,'month':1,'day':12})==datetime.datetime(2012,1,12)

使用正则表达式:

>>>c=t.RegexpRaw(r'^name=(\w+)$')>>(lambdam:m.group(1))>>>c.check('name=Jeff')'Jeff'

重命名dict键:

>>>c=t.Dict(t.Key('uNJ')>>'user_name':t.String})>>>c.check({'uNJ':'Adam'}){'user_name':'Adam'}

Arrow日期检查:

importarrowdefcheck_datetime(str):try:returnarrow.get(str).naiveexceptarrow.parser.ParserError:returnt.DataError('value is not in proper date/time format')

是的,你可以这么简单地写trafarets。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Frida Java windows的逆向工程   Java术语中的对象初始化   java在何处放置maven参数化junit输入xml文件   java如何在Swift中创建以日期为键、布尔值为值的字典/地图?   java Velocity动态属性访问   java Maven站点我如何找到它们?   java JavaFX按钮在显示阶段时显示为选中状态   文件io字符串方法java赋值   java为SOAP头生成证书   java Android更改EditText的setError弹出消息的背景色   java格式存储为字符串的数字   java Testcontainers+dbrider:无法清除表X,消息:启用自动提交时无法提交。,原因:无效   java程序应该可以运行,但仍然没有输出?   Java在列表末尾添加一个节点?   java类对象中的默认构造函数做什么?   java如何更快地从映射返回键和值?