{ "info": { "author": "Nao YONASHIRO", "author_email": "owan.orisano@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Utilities" ], "description": "embexpr\n============\n.. image:: https://travis-ci.org/orisano/embexpr.svg?branch=master\n :target: https://travis-ci.org/orisano/embexpr\n\n| safe embedded python expression parser (for mainly easy DSL or config file).\n\nGetting Started\n------------\n.. code:: bash\n\n pip install embexpr\n\n\nHow to Use\n------------\n.. code:: python\n\n from embexpr import Expr, ParseError\n\n assert Expr('3 * 5')() == 15\n assert Expr('\"foo\" + \"bar\"')() == \"foobar\"\n assert Expr('len(\"example\")')() == 7\n assert Expr('s.startswith(\"prefix_\")')(s=\"prefix_suffix\") == True\n\n try:\n Expr('eval(\"1\")')()\n except ParseError as e:\n print(e)\n\n\nReference\n------------\nhttps://github.com/ansible/ansible/blob/devel/lib/ansible/template/safe_eval.py\nhttp://stackoverflow.com/questions/12523516/using-ast-and-whitelists-to-make-pythons-eval-safe\n\nLicense\n------------\nMIT\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/orisano/embexpr", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "embexpr", "package_url": "https://pypi.org/project/embexpr/", "platform": "", "project_url": "https://pypi.org/project/embexpr/", "project_urls": { "Homepage": "https://github.com/orisano/embexpr" }, "release_url": "https://pypi.org/project/embexpr/1.0.1/", "requires_dist": [ "six" ], "requires_python": "", "summary": "safe embedded python expression parser", "version": "1.0.1" }, "last_serial": 4050863, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "318f8bcd8511e41094713dd042e2e2cd", "sha256": "2c18efa5c143c355d926cd088da3ba9ec6ebb8038c4dd969ce0c07b13ab7586d" }, "downloads": -1, "filename": "embexpr-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "318f8bcd8511e41094713dd042e2e2cd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 2934, "upload_time": "2017-11-22T07:09:56", "url": "https://files.pythonhosted.org/packages/41/91/de498683fb779e300abd9c5d5fa9aafd748cfcec4142f1b3c3468908a0f2/embexpr-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "786a21e7513aaecab2443e0b74bf0029", "sha256": "6d3d4d469ca69b7dd5f7225e2dee70a85ce264c9cf444f8816aa7cfd42ebc1a9" }, "downloads": -1, "filename": "embexpr-0.0.1.tar.gz", "has_sig": false, "md5_digest": "786a21e7513aaecab2443e0b74bf0029", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2895, "upload_time": "2017-11-22T07:09:58", "url": "https://files.pythonhosted.org/packages/06/2f/51d0090fe91a0908dc59975b0440c8cf8956abba01913ad82813b8fee2ac/embexpr-0.0.1.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "c30dccec5436df2a30e4be61533142b8", "sha256": "b6e82807e4d6b0f180a5f35789a50a00a2b66cf859fd27e3606e53137c39500d" }, "downloads": -1, "filename": "embexpr-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c30dccec5436df2a30e4be61533142b8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4838, "upload_time": "2017-11-28T18:39:28", "url": "https://files.pythonhosted.org/packages/a4/94/6deea7dae6e510a393a31ebdd37ab803905902a1095b309cc5e258966e38/embexpr-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "16424af399236a89514f493687b34855", "sha256": "869057387ae53fd95d4944df4e180843ac77173168ffbb410a495edcd0b4a2ed" }, "downloads": -1, "filename": "embexpr-0.1.0.tar.gz", "has_sig": false, "md5_digest": "16424af399236a89514f493687b34855", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4025, "upload_time": "2017-11-28T18:39:29", "url": "https://files.pythonhosted.org/packages/1a/70/868908d7a4b9931d8be94dc504731d92f12370a7618101c37662cc2501df/embexpr-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "5f35f112a2d0e9a67df25df2c879a012", "sha256": "3222e60c77c25f0fa4a5a26d23708044b1a5d22f020517596b2ca97b09581ec2" }, "downloads": -1, "filename": "embexpr-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5f35f112a2d0e9a67df25df2c879a012", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4840, "upload_time": "2017-11-29T03:57:31", "url": "https://files.pythonhosted.org/packages/76/0c/65460d424ba283b86c339f44d9c589b952739d58fec3b89a7931fe31fe21/embexpr-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f032f9364886ea3c95e6ad546d42cdcf", "sha256": "0bf1c9f95bc379dec5f89c34e208addb18e01b48015cd3bbca6e925ef9578118" }, "downloads": -1, "filename": "embexpr-0.1.1.tar.gz", "has_sig": false, "md5_digest": "f032f9364886ea3c95e6ad546d42cdcf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4080, "upload_time": "2017-11-29T03:57:32", "url": "https://files.pythonhosted.org/packages/94/23/b3f2bc31652f17b18ae167bffbf64994861c61eb2b7addbe64b05d3ea174/embexpr-0.1.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "c0dd25b755d1ffc580989a01ad505070", "sha256": "9a49aeb5f29e73c064c7332d087e2c23f0b70252efc09ef6f3d6c4c22eb557af" }, "downloads": -1, "filename": "embexpr-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c0dd25b755d1ffc580989a01ad505070", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3527, "upload_time": "2018-07-06T17:37:09", "url": "https://files.pythonhosted.org/packages/2e/da/d686da6a63d7426c05e42398933352714768975272f41e6b8d2b05574530/embexpr-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "81240ac09d58b074ccdc100d04160e6a", "sha256": "8fc1b9926a9f7bbfad5693a79c19ef992ba6df477a0e9e621193fa23a153f797" }, "downloads": -1, "filename": "embexpr-1.0.0.tar.gz", "has_sig": false, "md5_digest": "81240ac09d58b074ccdc100d04160e6a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4048, "upload_time": "2018-07-06T17:37:11", "url": "https://files.pythonhosted.org/packages/7d/46/516fd3023baa2382745f6b8fbc9d00eb5692c226623634864e08306a9057/embexpr-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "e45cbb49ea462b801834e4a4cd8f91bc", "sha256": "46bda31a7d887f2bee5dea4ce2c0961d3fdb9facb4357210f5078c7af8391a24" }, "downloads": -1, "filename": "embexpr-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e45cbb49ea462b801834e4a4cd8f91bc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3530, "upload_time": "2018-07-11T13:28:47", "url": "https://files.pythonhosted.org/packages/7e/bc/62a20dc6c05cc3fc150c98771fd415d68fdb274943ed494b6284914d9e9d/embexpr-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ea25a682afd2285d5591fff5ece88a3", "sha256": "ac59fb473ae7a809e59171ac61343db44f72f28f4993ef6a20d791925c435bf1" }, "downloads": -1, "filename": "embexpr-1.0.1.tar.gz", "has_sig": false, "md5_digest": "7ea25a682afd2285d5591fff5ece88a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4052, "upload_time": "2018-07-11T13:28:48", "url": "https://files.pythonhosted.org/packages/65/d7/b9bfdbd59f8a6e15c2f8ad472dd64f8a6e27b3ee7490b245d50cdecc6a09/embexpr-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e45cbb49ea462b801834e4a4cd8f91bc", "sha256": "46bda31a7d887f2bee5dea4ce2c0961d3fdb9facb4357210f5078c7af8391a24" }, "downloads": -1, "filename": "embexpr-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e45cbb49ea462b801834e4a4cd8f91bc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3530, "upload_time": "2018-07-11T13:28:47", "url": "https://files.pythonhosted.org/packages/7e/bc/62a20dc6c05cc3fc150c98771fd415d68fdb274943ed494b6284914d9e9d/embexpr-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ea25a682afd2285d5591fff5ece88a3", "sha256": "ac59fb473ae7a809e59171ac61343db44f72f28f4993ef6a20d791925c435bf1" }, "downloads": -1, "filename": "embexpr-1.0.1.tar.gz", "has_sig": false, "md5_digest": "7ea25a682afd2285d5591fff5ece88a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4052, "upload_time": "2018-07-11T13:28:48", "url": "https://files.pythonhosted.org/packages/65/d7/b9bfdbd59f8a6e15c2f8ad472dd64f8a6e27b3ee7490b245d50cdecc6a09/embexpr-1.0.1.tar.gz" } ] }