Metadata-Version: 2.1
Name: embexpr
Version: 1.1.1
Summary: safe embedded python expression parser
Home-page: https://github.com/orisano/embexpr
Author: Nao Yonashiro
Author-email: owan.orisano@gmail.com
License: MIT
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Requires-Dist: six


embexpr
============
.. image:: https://travis-ci.org/orisano/embexpr.svg?branch=master
    :target: https://travis-ci.org/orisano/embexpr
.. image:: https://badge.fury.io/py/embexpr.svg
    :target: https://badge.fury.io/py/embexpr
.. image:: https://img.shields.io/pypi/pyversions/embexpr.svg
    :target: https://pypi.org/project/embexpr/

| safe embedded python expression parser (for mainly easy DSL or config file).

Getting Started
-----------------
.. code:: bash

  pip install embexpr


How to Use
------------
.. code:: python

  from embexpr import Expr, ParseError

  assert Expr('3 * 5')() == 15
  assert Expr('"foo" + "bar"')() == "foobar"
  assert Expr('len("example")')() == 7
  assert Expr('s.startswith("prefix_")')(s="prefix_suffix") == True

  try:
      Expr('eval("1")')()
  except ParseError as e:
      print(e)

Reference
------------
https://github.com/ansible/ansible/blob/devel/lib/ansible/template/safe_eval.py
http://stackoverflow.com/questions/12523516/using-ast-and-whitelists-to-make-pythons-eval-safe

Author
------------
Nao Yonashiro(@orisano)

License
------------
MIT


