安全布尔表达式求值器

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使用split函数分割字符串,但没有得到期望的结果   未找到包含derby数据库嵌入架构的sql Java桌面应用程序错误   java elasticsearch vs solr用于定制全文搜索系统   java Android:创建没有startOffset的动画延迟?   java如何查看其他应用程序接收的数据?   java如何在Linux中使用D和classpath选项运行jar文件   java和域设计最佳实践   具有相同内存位置的java数组,将显示为输出   连接到java中的elasticsearch?   Java Playframework重定向到带有Json负载的外部url   java无法在Android平台上使用InputStream为蓝牙socket创建ObjectInputStream   使用POI将Excel日期转换为Java日期,年份未正确显示   oracle从数据库层还是Java层调用webservice?