SafeEvaluator

digraph inheritance1536c5813d { rankdir=UD; ratio=compress; size="8.0, 12.0"; "SafeEvaluator" [color=dodgerblue1,fontcolor=black,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.5,shape=box,style=rounded,tooltip="This class provides a safe eval replacement."]; }
class SafeEvaluator(safedict=None, defaultSafe=True)[source]

Bases: object

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.

eval(expr)[source]

safe eval

getSafe()[source]

returns the currently whitelisted expressions

removeSafe(name, permanent=False)[source]

Removes an object from the whitelist

resetSafe()[source]

restores the safe dict with wich the evaluator was instantiated