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

## Download files

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

Filename, size & hash SHA256 hash help | File type | Python version | Upload date |
---|---|---|---|

boolexp-0.1.tar.gz (3.1 kB) Copy SHA256 hash SHA256 | Source | None | Sep 24, 2013 |