Inheritance diagram of SafeEvaluator
class SafeEvaluator(safedict=None, defaultSafe=True)[source]

Bases: future.types.newobject.newobject

This class provides a safe eval replacement.

The method eval() will only evaluate the expressions considered safe (whitelisted). By default it has a whitelist of mathematical expressions that can be turn off using defaultSafe=False at init

The user can add more safe functions passing a safedict to the addSafe() or init methods.

Functions can be removed by name using removeSafe()

Note: In order to use variables defined outside, the user must explicitly declare them safe.

addSafe(safedict, permanent=False)[source]

The values in safedict will be evaluable (whitelisted) The safedict is as follows: {“eval_name”:object, ...}. The evaluator will interpret eval_name as object.


safe eval


returns the currently whitelisted expressions

removeSafe(name, permanent=False)[source]

Removes an object from the whitelist


restores the safe dict with wich the evaluator was instantiated