安全布尔表达式求值器

boolexp的Python项目详细描述


boolexp提供布尔表达式的“安全”求值以供使用 评估可能有危险的案例。boolexp表达式是 上下文自由和模拟python sytax。只有基本的数学运算 并提供了数据结构。

安装

要安装boolexp,请切换到setup.py所在的目录 位置和类型:

python setup.py安装

要求:

  • python 2.7版
  • pyparsing 1.5.0或更高版本

表达式语法概述

基本数学运算符*,/,+,-具有最高优先级

>>>fromboolexpimportExpression>>>Expression("4 + 4 / 2").evaluate()>>>6>>>Expression("( 4 + 4 ) / 2 ").evaluate()>>>4

比较运算符!=,==,<;,>;,<;=,>;=,in是下一个in 优先。所有比较运算符的返回类型都是boolean, 它可以用作boolean运算符and的输入,或者不用作 优先级最低的。

>>>fromboolexpimportExpression>>>Expression(2==1).evaluate()>>>False>>>Expression("2 * - 2 == - 4").evaluate()>>>True>>>Expression("not 2 == 3").evaluate()>>>True>>>Expression("3 <= 8 and 2 == 5").evaluate()>>>False

变量

的表达式

如果没有使用的可能性,这一切都不会很有趣。 变量。变量的允许类型为 bool、int、float、str、list、dict

>>>fromboolexpimportExpression>>>Expression("1 in v").evaluate(dict(v=[1,2])).evaluate()>>>True>>>Expression("one[1].part == 2").evaluate(dict(one=[1,dict(part=2)],two=1)).evaluate()>>>True

迪克莱默

到目前为止,这个项目只处于概念证明的状态 适合生产环境。

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

推荐PyPI第三方库


热门话题
java如何使用从PreparedStatement返回的RowId。getGeneratedKeys()?   selenium chrome驱动程序中下一个网站url的java空白页   java如何将参数化匿名类转换为lambda?   java JUnit在AfterClass上获取测试结果   java将动态XML/JSON内容与静态标记化负载进行比较,并检索标记值   java共享一个需要数据持久性的项目[数据库]   java在调用方法时获取意外的参数类型。getParameterTypes()   java如何用jdbc在swing中用另一个字段替换外键?   需要java Jersey Tomcat CDI依赖项解释   java如何生成UML图   java如何编写Jersey rest服务可以通过给定的spring代码访问   SpringMaven存储库管理器Nexus与Java依赖项的Artifactory   java将包从另一个项目导入eclipse中的当前项目   加密Java使用密码加密文件