验证和分析库

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第三方库


热门话题
JavaSpringMVC控制器测试打印结果JSON字符串   若catch语句返回,那个么为什么它最终会阻塞呢?   java Grails中servletContext在哪里可用?   java Jhipster:如何为现有项目启用多种语言   java异常评估SpringEL表达式:“#fields.hasErrors('something')”   java如何验证SeleniumWebDriver中的文本颜色?   java在绘图时使用JPanel坐标   java如何初始化spring启动到project?   java如何通过JDBC的PreparedStatement将UUID数组插入HyperSQL数据库   java修改JVM以跨线程序列化文件访问   Javascript到Java正则表达式   使用Java运行时调用aspell程序时出现字符集问题。getRuntime()。执行官   执行RDP时的java Sukuli按钮识别   java如何使用okhttp更改connect请求的标头   java无法创建Maven Eclipse项目