安全布尔表达式求值器

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异步任务必须是抽象的   java从ArrayList更改对象中的变量<Object>   JAVAlang.NoClassDefFoundError与ANT生成的JAR   java如何创建卡片组构造函数   java JPA EclipseLink和@TableGenerator。为什么事务回滚后分配给id的值不为空?   java是一种简单的混合JTextField/JPasswordField的方法吗?   javajaxb(JAXWS):值为null时为空标记   关于ListActivity、游标和SQL数据更新的java问题   JFrame的java无响应KeyListener   堆栈Java类型转换。对象指向自定义类的实例   eclipse在我的java项目中使用其他java文件   Java字符串引用与new不同,与new相同   java游戏介绍页。使用JFrame   在java中设置代理   java轻松打印阿拉伯数字的方法   Java“优化”:低级类中的if控件   java在页面加载之前是否可以填充JSF视图?   升级到spring boot v2后java应用程序未启动。5.2   Spring模型类中的java静态工厂方法   java Lucene令牌流异常