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.6.tar.gz (52.1 kB view details)

Uploaded Source

Built Distribution

asteval-1.0.6-py3-none-any.whl (22.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: asteval-1.0.6.tar.gz
  • Upload date:
  • Size: 52.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for asteval-1.0.6.tar.gz
Algorithm Hash digest
SHA256 1aa8e7304b2e171a90d64dd269b648cacac4e46fe5de54ac0db24776c0c4a19f
MD5 35475b3aadf23f83bdda7f7b8b78a29b
BLAKE2b-256 2bf0ad92c4bc565918713f9a4b54f06d06ec370e48079fdb50cf432befabee8b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: asteval-1.0.6-py3-none-any.whl
  • Upload date:
  • Size: 22.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for asteval-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 5e119ed306e39199fd99c881cea0e306b3f3807f050c9be79829fe274c6378dc
MD5 61ec6eed69dee3402478755f5ba69807
BLAKE2b-256 13ac19dbba27e891f39feb4170b884da449ee2699ef4ebb88eefeda364bbbbcf

See more details on using hashes here.

Supported by

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