Skip to main content

Safe, minimalistic evaluator of python expression using ast module

Project description

https://github.com/lmfit/asteval/actions/workflows/ubuntu_numpy.yml/badge.svg https://github.com/lmfit/asteval/actions/workflows/ubuntu_nonumpy.yml/badge.svg https://github.com/lmfit/asteval/actions/workflows/macos_numpy.yml/badge.svg https://github.com/lmfit/asteval/actions/workflows/windows_numpy.yml/badge.svg https://codecov.io/gh/lmfit/asteval/branch/master/graph/badge.svg https://img.shields.io/pypi/v/asteval.svg https://img.shields.io/pypi/dm/asteval.svg https://img.shields.io/badge/docs-read-brightgreen https://zenodo.org/badge/4185/newville/asteval.svg

Installation

Use pip install asteval to install the asteval library.

Asteval requires Python 3.8 or higher. If installed, many functions and constants from Numpy will be used by default.

About ASTEVAL

ASTEVAL is a safe(ish) evaluator of Python expressions and statements, using Python’s ast module. The idea is to provide a simple, safe, and robust miniature mathematical language that can handle user input. The emphasis here is on mathematical expressions so that many functions from numpy are imported and used if available.

Many Python language constructs are supported by default, These include slicing, subscripting, list comprehension, conditionals (if-elif-else blocks and if expressions), flow control (for loops, while loops, and try-except-finally blocks). All data are Python objects and built-in data structures (dictionaries, tuples, lists, Numpy arrays, strings) are fully supported by default.

Many of the standard built-in Python functions are available, as are all mathematical functions from the math module. If the Numpy module is installed, many of its functions will also be available. Users can define and run their own functions within the confines of the limitations of Asteval.

There are several absences and differences with Python, and Asteval is by no means an attempt to reproduce Python with its own ast module. Some of the most important differences and absences are:

  1. Variable and function symbol names are held in a simple symbol table (a single dictionary), giving a flat namespace.

  2. creating classes is not supported.

  3. importing modules is not supported by default - it can be enabled.

  4. function decorators, yield, lambda, exec, and eval are not supported.

  5. files can only be opened in read-only mode.

In addition, accessing many internal methods and classes of objects is forbidden in order to strengthen Asteval against malicious user code.

Matt Newville <newville@cars.uchicago.edu> Last Update: 30-June-2024

Project details


Download files

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

Source Distribution

asteval-1.0.1.tar.gz (50.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

asteval-1.0.1-py3-none-any.whl (21.4 kB view details)

Uploaded Python 3

File details

Details for the file asteval-1.0.1.tar.gz.

File metadata

  • Download URL: asteval-1.0.1.tar.gz
  • Upload date:
  • Size: 50.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.5

File hashes

Hashes for asteval-1.0.1.tar.gz
Algorithm Hash digest
SHA256 377f4917e5b717bc525b887345231791945fe89c43660b7902a64e69827db87f
MD5 1488a1f84381c4bd49fcf3dba2719839
BLAKE2b-256 41090592a4dde5defa2547234a101b3105f2487af5644ac7853fa008a4586044

See more details on using hashes here.

File details

Details for the file asteval-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: asteval-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 21.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.5

File hashes

Hashes for asteval-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c7992cc6d0487ab29700b4531d9e7870e4b2e16cf94603cd5b71b21503fb0cde
MD5 59f671b016849a9f6543083ade06f2a6
BLAKE2b-256 fef3444d97e43a6df0c9203d7bbbe9bbbf33fae0c36e004c43487f71e2b3a596

See more details on using hashes here.

Supported by

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