Skip to main content

Safe boolean expression evaluator

Project description

Boolexp provides “safe” evaluation of boolean expressions for use cases where eval might be dangerous. Boolexp expressions are context-free and mimic Python sytax. Only basic math opearations and data structures are provided.

Instalation

To install Boolexp, change to the directory where setup.py is located and type:

python setup.py install

Requirements:

  • Python 2.7

  • pyparsing 1.5.0 or later

Expression Syntax Overview

Basic math operators *,/,+,- have highest priority

>>> from boolexp import Expression
>>> Expression("4 + 4 / 2").evaluate()
>>> 6
>>> Expression("( 4 + 4 ) / 2 ").evaluate()
>>> 4

Comparsion operators !=, ==, <, >, <=, >=, in are next in priority. All comparsion operators have return type of boolean, which can be used as input for boolean operators and, or, not with lowest priority.

>>> from boolexp import Expression
>>> 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

Expresions with with variables

This all would not be much of a fun without posibility to use variables. Allowed types for variables are bool,int,float,str,list,dict

>>> from boolexp import Expression
>>> 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

Diclaimer

This project is now in a state of proof of concept only, thus far from suitable for production enviroment.

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

boolexp-0.1.tar.gz (3.1 kB view details)

Uploaded Source

File details

Details for the file boolexp-0.1.tar.gz.

File metadata

  • Download URL: boolexp-0.1.tar.gz
  • Upload date:
  • Size: 3.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for boolexp-0.1.tar.gz
Algorithm Hash digest
SHA256 b5e9e0e057143d3d0e54c00be7ec243216ea4aae8b705699be44dda58cff2f07
MD5 999ee191454463ce864dc586431974a6
BLAKE2b-256 0862d2c0215982fe03ee35d0277e35af47c5f8aae1559038039a372c8f822eb8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page