{ "info": { "author": "Zope Foundation and Contributors", "author_email": "zope-dev@zope.org", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: Zope Public License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Security" ], "description": ".. image:: https://github.com/zopefoundation/RestrictedPython/raw/master/docs/logo.jpg\n\n================\nRestrictedPython\n================\n\nRestrictedPython is a tool that helps to define a subset of the Python language which allows to provide a program input into a trusted environment.\nRestrictedPython is not a sandbox system or a secured environment, but it helps to define a trusted environment and execute untrusted code inside of it.\n\n.. warning::\n\n RestrictedPython only supports CPython. It does _not_ support PyPy and other Python implementations as it cannot provide its restrictions there.\n\nFor full documentation please see http://restrictedpython.readthedocs.io/.\n\nExample\n=======\n\nTo give a basic understanding what RestrictedPython does here two examples:\n\nAn unproblematic code example\n-----------------------------\n\nPython allows you to execute a large set of commands.\nThis would not harm any system.\n\n.. code-block:: pycon\n\n >>> from RestrictedPython import compile_restricted\n >>> from RestrictedPython import safe_globals\n >>>\n >>> source_code = \"\"\"\n ... def example():\n ... return 'Hello World!'\n ... \"\"\"\n >>>\n >>> loc = {}\n >>> byte_code = compile_restricted(source_code, '', 'exec')\n >>> exec(byte_code, safe_globals, loc)\n >>>\n >>> loc['example']()\n 'Hello World!'\n\nProblematic code example\n------------------------\n\nThis example directly executed in Python could harm your system.\n\n.. code-block:: pycon\n\n >>> from RestrictedPython import compile_restricted\n >>> from RestrictedPython import safe_globals\n >>>\n >>> source_code = \"\"\"\n ... import os\n ...\n ... os.listdir('/')\n ... \"\"\"\n >>> byte_code = compile_restricted(source_code, '', 'exec')\n >>> exec(byte_code, safe_globals, {})\n Traceback (most recent call last):\n ImportError: __import__ not found\n\nChanges\n=======\n\n5.0 (2019-09-03)\n----------------\n\nBreaking changes\n----------------\n\n- Revert the Allowance of the ``...`` (Ellipsis) statement, as of 4.0. It is not needed to support Python 3.8.\n The security implications of the Ellipsis Statement is not 100 % clear and is not checked.\n ``...`` (Ellipsis) is disallowed again.\n\nFeatures\n--------\n\n- Add support for f-strings in Python 3.6+.\n (`#123 `_)\n\n\n4.0 (2019-05-10)\n----------------\n\nChanges since 3.6.0:\n\nBreaking changes\n----------------\n\n- The ``compile_restricted*`` functions now return a\n ``namedtuple CompileResult`` instead of a simple ``tuple``.\n\n- Drop the old implementation of version 3.x: `RCompile.py`,\n `SelectCompiler.py`, `MutatingWorker.py`, `RestrictionMutator.py` and\n `tests/verify.py`.\n\n- Drop support for long-deprecated ``sets`` module.\n\nSecurity related issues\n-----------------------\n\n- RestrictedPython now ships with a default implementation for\n ``_getattr_`` which prevents from using the ``format()`` method on\n str/unicode as it is not safe, see:\n http://lucumr.pocoo.org/2016/12/29/careful-with-str-format/\n\n **Caution:** If you do not already have secured the access to this\n ``format()`` method in your ``_getattr_`` implementation use\n ``RestrictedPython.Guards.safer_getattr()`` in your implementation to\n benefit from this fix.\n\nFeatures\n--------\n\n- Mostly complete rewrite based on Python AST module.\n [loechel (Alexander Loechel), icemac (Michael Howitz),\n stephan-hof (Stephan Hofmockel), tlotze (Thomas Lotze)]\n\n- Add support for Python 3.5, 3.6, 3.7.\n\n- Add preliminary support for Python 3.8. as of 3.8.0a3 is released.\n\n- Warn when using another Python implementation than CPython as it is not safe\n to use RestrictedPython with other versions than CPyton.\n See https://bitbucket.org/pypy/pypy/issues/2653 for PyPy.\n\n- Allow the ``...`` (Ellipsis) statement. It is needed to support Python 3.8.\n\n- Allow `yield` and `yield from` statements.\n Generator functions would now work in RestrictedPython.\n\n- Allow the following magic methods to be defined on classes.\n (`#104 `_)\n They cannot be called directly but by the built-in way to use them (e. g.\n class instantiation, or comparison):\n\n + ``__init__``\n + ``__contains__``\n + ``__lt__``\n + ``__le__``\n + ``__eq__``\n + ``__ne__``\n + ``__gt__``\n + ``__ge__``\n\n- Imports like ``from a import *`` (so called star imports) are now forbidden\n as they allow to import names starting with an underscore which could\n override protected build-ins.\n (`#102 `_)\n\n- Allow to use list comprehensions in the default implementation of\n ``RestrictionCapableEval.eval()``.\n\n- Switch to pytest as test runner.\n\n- Bring test coverage to 100 %.\n\nBug fixes\n---------\n\n- Improve `.Guards.safer_getattr` to prevent accessing names starting with\n underscore.\n (`#142 `_)\n\n\n3.6.0 (2010-07-09)\n------------------\n\n- Add name check for names assigned during imports using the\n ``from x import y`` format.\n\n- Add test for name check when assigning an alias using multiple-context\n ``with`` statements in Python 2.7.\n\n- Add tests for protection of the iterators for dict and set comprehensions\n in Python 2.7.\n\n3.6.0a1 (2010-06-05)\n--------------------\n\n- Remove support for ``DocumentTemplate.sequence`` - this is handled in the\n DocumentTemplate package itself.\n\n3.5.2 (2010-04-30)\n------------------\n\n- Remove a testing dependency on ``zope.testing``.\n\n3.5.1 (2009-03-17)\n------------------\n\n- Add tests for ``Utilities`` module.\n\n- Filter DeprecationWarnings when importing Python's ``sets`` module.\n\n3.5.0 (2009-02-09)\n------------------\n\n- Drop legacy support for Python 2.1 / 2.2 (``__future__`` imports\n of ``nested_scopes`` / ``generators``.).\n\n3.4.3 (2008-10-26)\n------------------\n\n- Fix deprecation warning: ``with`` is now a reserved keyword on\n Python 2.6. That means RestrictedPython should run on Python 2.6\n now. Thanks to Ranjith Kannikara, GSoC Student for the patch.\n\n- Add tests for ternary if expression and for ``with`` keyword and\n context managers.\n\n3.4.2 (2007-07-28)\n------------------\n\n- Changed homepage URL to the PyPI site\n\n- Improve ``README.txt``.\n\n3.4.1 (2007-06-23)\n------------------\n\n- Fix http://www.zope.org/Collectors/Zope/2295: Bare conditional in\n a Zope 2 PythonScript followed by a comment causes SyntaxError.\n\n3.4.0 (2007-06-04)\n------------------\n\n- RestrictedPython now has its own release cycle as a separate project.\n\n- Synchronized with RestrictedPython from Zope 2 tree.\n\n3.2.0 (2006-01-05)\n------------------\n\n- Corresponds to the verison of the RestrictedPython package shipped\n as part of the Zope 3.2.0 release.\n\n- No changes from 3.1.0.\n\n3.1.0 (2005-10-03)\n------------------\n\n- Corresponds to the verison of the RestrictedPython package shipped\n as part of the Zope 3.1.0 release.\n\n- Remove unused fossil module, ``SafeMapping``.\n\n- Replaced use of deprecated ``whrandom`` module with ``random`` (aliased\n to ``whrandom`` for backward compatibility).\n\n3.0.0 (2004-11-07)\n------------------\n\n- Corresponds to the verison of the RestrictedPython package shipped\n as part of the Zope X3.0.0 release.\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/zopefoundation/RestrictedPython", "keywords": "restricted execution security untrusted code", "license": "ZPL 2.1", "maintainer": "", "maintainer_email": "", "name": "RestrictedPython", "package_url": "https://pypi.org/project/RestrictedPython/", "platform": "", "project_url": "https://pypi.org/project/RestrictedPython/", "project_urls": { "Homepage": "https://github.com/zopefoundation/RestrictedPython" }, "release_url": "https://pypi.org/project/RestrictedPython/5.0/", "requires_dist": [ "setuptools", "pytest ; extra == 'test'", "pytest-mock ; extra == 'test'" ], "requires_python": "", "summary": "RestrictedPython is a defined subset of the Python language which allows to provide a program input into a trusted environment.", "version": "5.0" }, "last_serial": 5774144, "releases": { "3.4.2": [ { "comment_text": "", "digests": { "md5": "cde0f77dcea0acae71f51be773376ab0", "sha256": "84606bfbfbb03ed20c63c1625aee611b459c0012bd0cffe54eb132164a0650e5" }, "downloads": -1, "filename": "RestrictedPython-3.4.2-py2.4.egg", "has_sig": false, "md5_digest": "cde0f77dcea0acae71f51be773376ab0", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 80060, "upload_time": "2007-07-28T09:59:32", "url": "https://files.pythonhosted.org/packages/c6/43/a0dabac04782ed0237c9ee676f4282f01d32a33d27d4696099a1e406fabc/RestrictedPython-3.4.2-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "20947dbbb0c8a7e6304a1d632dd9ea3f", "sha256": "3b6af39652ab12b04e4a3c798d5d47a08268bb3c1ccf01a8f7393526f84e3dc6" }, "downloads": -1, "filename": "RestrictedPython-3.4.2.tar.gz", "has_sig": false, "md5_digest": "20947dbbb0c8a7e6304a1d632dd9ea3f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32632, "upload_time": "2007-07-28T09:59:31", "url": "https://files.pythonhosted.org/packages/0a/7e/801c02a6f90a14ee511c19e39bb56be47e62e40f5e351e381fd42fda5e62/RestrictedPython-3.4.2.tar.gz" } ], "3.4.3": [ { "comment_text": "", "digests": { "md5": "8002effa228b8425e515edf34d433865", "sha256": "a0bd470600bf4b79e87821c40ec4a71cd38ddb426ce89bbd04ce43a6e658044f" }, "downloads": -1, "filename": "RestrictedPython-3.4.3.tar.gz", "has_sig": false, "md5_digest": "8002effa228b8425e515edf34d433865", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33778, "upload_time": "2008-10-26T05:41:52", "url": "https://files.pythonhosted.org/packages/e4/1c/f62ca7d0a3e04014f7f3d3cd6d4e2e56148d4e87b4560daf10a7fb1295d2/RestrictedPython-3.4.3.tar.gz" } ], "3.5.0": [ { "comment_text": "", "digests": { "md5": "78c44568e4a1dfa6afcf06b903a8ed21", "sha256": "3d94f083eac3db9d9883f40fcc19cfe8f67379a63d7c173b5cbd6935786fd6e0" }, "downloads": -1, "filename": "RestrictedPython-3.5.0.tar.gz", "has_sig": false, "md5_digest": "78c44568e4a1dfa6afcf06b903a8ed21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31617, "upload_time": "2009-02-09T19:34:20", "url": "https://files.pythonhosted.org/packages/ab/1c/94d6f2c7c49f0d17edd233c681b96683ca537a7771b8e862c00a50cf5d6c/RestrictedPython-3.5.0.tar.gz" } ], "3.5.1": [ { "comment_text": "", "digests": { "md5": "cf3f886ff07538395cf3e035967bc17a", "sha256": "ac751e15dff1e85afcc2081287722c9133492c15c9daeb34d39d7c47d79fb550" }, "downloads": -1, "filename": "RestrictedPython-3.5.1.tar.gz", "has_sig": false, "md5_digest": "cf3f886ff07538395cf3e035967bc17a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32681, "upload_time": "2009-03-17T17:48:22", "url": "https://files.pythonhosted.org/packages/55/a6/9ffb464cb774a2cd50c3827ff68089de783ecb4788dab04f4d221b7c1339/RestrictedPython-3.5.1.tar.gz" } ], "3.5.2": [ { "comment_text": "", "digests": { "md5": "10ba285f679d26d0833fafb63601fd8b", "sha256": "caba60f1371a71d2951388c87a69675101708cb0c0094472e74b3be91f3c4c3f" }, "downloads": -1, "filename": "RestrictedPython-3.5.2.zip", "has_sig": false, "md5_digest": "10ba285f679d26d0833fafb63601fd8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55025, "upload_time": "2010-04-30T19:09:31", "url": "https://files.pythonhosted.org/packages/15/c0/ce2a6eec500822e5a8795480774a66dd2d2a7c0c839da9b67cafabaa8c87/RestrictedPython-3.5.2.zip" } ], "3.6.0": [ { "comment_text": "", "digests": { "md5": "aa75a7dcc7fbc966357837cc66cacec6", "sha256": "0edb2579b4174282bee3997abc6316d122c7ca6dcd02f4423352213cde571434" }, "downloads": -1, "filename": "RestrictedPython-3.6.0.zip", "has_sig": true, "md5_digest": "aa75a7dcc7fbc966357837cc66cacec6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56739, "upload_time": "2010-07-09T19:11:26", "url": "https://files.pythonhosted.org/packages/22/f1/557f90f0881f4b2d1d343bcae31f6dfa992a364bd51f1d8ca180249e62ad/RestrictedPython-3.6.0.zip" } ], "3.6.0a1": [ { "comment_text": "", "digests": { "md5": "dedb34bc54807392e2c029c23f824b23", "sha256": "004836bd7f940501685e9b77bcc1501770abf6a22cb87373444f306cb788ebbb" }, "downloads": -1, "filename": "RestrictedPython-3.6.0a1.zip", "has_sig": false, "md5_digest": "dedb34bc54807392e2c029c23f824b23", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55319, "upload_time": "2010-06-05T18:36:31", "url": "https://files.pythonhosted.org/packages/57/36/a892ebae7185e7d2a7ef7a0571d1a693092bd600189954eff13d557123da/RestrictedPython-3.6.0a1.zip" } ], "4.0": [ { "comment_text": "", "digests": { "md5": "d9c007435e01dc366e731e88434810be", "sha256": "3122bdb1681e72893caa4c5bff93df889d4b8548e75caec95f1b4b8713a2e0ce" }, "downloads": -1, "filename": "RestrictedPython-4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d9c007435e01dc366e731e88434810be", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 29035, "upload_time": "2019-05-10T09:49:48", "url": "https://files.pythonhosted.org/packages/c2/82/ebe9a2bd3b7f1bb778491de03fc791a559e275e8707915786874843e0c0d/RestrictedPython-4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "837a2d5e0748c631ded78a8547332aba", "sha256": "998bcd1648796e238d1cebbefcd2ffd34b1b750e8d5b6ef5c4774780c51449e4" }, "downloads": -1, "filename": "RestrictedPython-4.0.tar.gz", "has_sig": false, "md5_digest": "837a2d5e0748c631ded78a8547332aba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 437679, "upload_time": "2019-05-10T09:49:50", "url": "https://files.pythonhosted.org/packages/53/73/f5831ec421b13336b20caa0c82b21dd6a07a72f1dac31af196fbfbe59da1/RestrictedPython-4.0.tar.gz" } ], "4.0a1": [ { "comment_text": "", "digests": { "md5": "6219f0b57f956ba9d36d7c14e96476db", "sha256": "53ced9e6c6e23cb8370bc20b139d54000f353aee6fb032322a1e5f953f381a26" }, "downloads": -1, "filename": "RestrictedPython-4.0a1.tar.gz", "has_sig": false, "md5_digest": "6219f0b57f956ba9d36d7c14e96476db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 81585, "upload_time": "2017-05-05T11:53:59", "url": "https://files.pythonhosted.org/packages/ce/e4/af6448c19f0455640b2c3ff7b20c94bba7a3f6e59e301a84fc5de264ccb3/RestrictedPython-4.0a1.tar.gz" } ], "4.0a2": [ { "comment_text": "", "digests": { "md5": "139c9965c06e1c2ba855215d9042cf47", "sha256": "34b55ecfa1edf1451b30c000aca8afc4b1d616a8ff0cf52c1ab6ff6a9385b1d7" }, "downloads": -1, "filename": "RestrictedPython-4.0a2.tar.gz", "has_sig": false, "md5_digest": "139c9965c06e1c2ba855215d9042cf47", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83399, "upload_time": "2017-05-26T11:33:59", "url": "https://files.pythonhosted.org/packages/15/32/e6d54801637b4c1596932d0ab29f841fc24e2719f4a30acee551415bfa8d/RestrictedPython-4.0a2.tar.gz" } ], "4.0a3": [ { "comment_text": "", "digests": { "md5": "f7a747a02fcb6eb72bd3227c0710abc3", "sha256": "9df16603db24c9d40de285da9e57d43d934f656cf90fd034fd58ff1f8a79c027" }, "downloads": -1, "filename": "RestrictedPython-4.0a3.tar.gz", "has_sig": false, "md5_digest": "f7a747a02fcb6eb72bd3227c0710abc3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 87265, "upload_time": "2017-06-20T07:25:51", "url": "https://files.pythonhosted.org/packages/e8/42/cf7a2b7ee46918c19abc7858fbfd762555a8e4efd20dfdd8cc2617134dc9/RestrictedPython-4.0a3.tar.gz" } ], "4.0b1": [ { "comment_text": "", "digests": { "md5": "62a7d9f27e74764bd0352d22fb051b19", "sha256": "9b609136688d03b22af6271a2e504c93011da355800d937188da35142b3e9186" }, "downloads": -1, "filename": "RestrictedPython-4.0b1.tar.gz", "has_sig": false, "md5_digest": "62a7d9f27e74764bd0352d22fb051b19", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 73952, "upload_time": "2017-09-15T13:03:37", "url": "https://files.pythonhosted.org/packages/df/ce/d1b911d4473d1d9082bcbaad9dc84c8b783462a0b0ee797c2d646f9459a8/RestrictedPython-4.0b1.tar.gz" } ], "4.0b2": [ { "comment_text": "", "digests": { "md5": "3587ed56f55015526c502e71cbc3c39a", "sha256": "8aa8923f68e26c2a1dc42d6ad34284d92b34c8e96faed55efdd8c01195031393" }, "downloads": -1, "filename": "RestrictedPython-4.0b2.tar.gz", "has_sig": false, "md5_digest": "3587ed56f55015526c502e71cbc3c39a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 74045, "upload_time": "2017-09-15T15:14:27", "url": "https://files.pythonhosted.org/packages/9b/03/95de93272093d2df1f6e1a2db72720546bd3c157f4b157a0ec2f2e255f51/RestrictedPython-4.0b2.tar.gz" } ], "4.0b3": [ { "comment_text": "", "digests": { "md5": "791132603cb1ff427d300f21fc3db3e5", "sha256": "e62349501eca6c9dd87fea4fc0957b1a5d1c2c7505b9ad1262f0c01b4852f362" }, "downloads": -1, "filename": "RestrictedPython-4.0b3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "791132603cb1ff427d300f21fc3db3e5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 30355, "upload_time": "2018-04-12T09:00:41", "url": "https://files.pythonhosted.org/packages/88/9e/4b7d7142c76fcae2ca19098143f6d234e040b3cdda5138e6fe1562f7fadc/RestrictedPython-4.0b3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b0b6bdbbb6e5ee6f0b12aa3772c33bf0", "sha256": "0881dc2a78486720f6f2c255ee32c91a24563fd2bad32cd52d0c971279935249" }, "downloads": -1, "filename": "RestrictedPython-4.0b3.tar.gz", "has_sig": false, "md5_digest": "b0b6bdbbb6e5ee6f0b12aa3772c33bf0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72924, "upload_time": "2018-04-12T09:00:43", "url": "https://files.pythonhosted.org/packages/23/22/9abb4908112a0ac5c9b89e639a7a73653bea3b2fcbd6d5f86f976f6dd809/RestrictedPython-4.0b3.tar.gz" } ], "4.0b4": [ { "comment_text": "", "digests": { "md5": "bafcac2d85875741625854c638811832", "sha256": "ccba5c97382528e2b3ac48137146d332963dee99a63280a392bb13f8ff45ff92" }, "downloads": -1, "filename": "RestrictedPython-4.0b4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bafcac2d85875741625854c638811832", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 29043, "upload_time": "2018-05-18T12:29:36", "url": "https://files.pythonhosted.org/packages/fb/e1/b271496af6fde656258827ab611b9e1a4e52e331929d2480250ca118ca8a/RestrictedPython-4.0b4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fb80e48be9084760b74481afbc5d469d", "sha256": "051fcc623788c15358ca158a0fd7cbbe530f5cd2dcb70680db1322b90e1b9465" }, "downloads": -1, "filename": "RestrictedPython-4.0b4.tar.gz", "has_sig": false, "md5_digest": "fb80e48be9084760b74481afbc5d469d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 74926, "upload_time": "2018-05-18T12:29:38", "url": "https://files.pythonhosted.org/packages/d0/fb/cc7e2205044e56fd17b715cb5ac4e60ad50c626ad1d376bf02d74d5c4481/RestrictedPython-4.0b4.tar.gz" } ], "4.0b5": [ { "comment_text": "", "digests": { "md5": "3384e0ff224a5e93252c6b801ffaf4e4", "sha256": "7bc89dbc482309bae0c32f0e86067926586d70a624fbdde42f7e2ef16ad9f06f" }, "downloads": -1, "filename": "RestrictedPython-4.0b5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3384e0ff224a5e93252c6b801ffaf4e4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 29269, "upload_time": "2018-09-05T09:14:06", "url": "https://files.pythonhosted.org/packages/4f/16/9baf76db41548207f84b0e2be11802d7d9cc28094bfb9a47eff3c0e9041a/RestrictedPython-4.0b5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a8d7bfe196cad75b01557d1afe18fad5", "sha256": "d204b6c5686fbb51fb34335cd87b52a2c689146baea0fc98dedb4c358d0eaa13" }, "downloads": -1, "filename": "RestrictedPython-4.0b5.tar.gz", "has_sig": false, "md5_digest": "a8d7bfe196cad75b01557d1afe18fad5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75180, "upload_time": "2018-09-05T09:14:08", "url": "https://files.pythonhosted.org/packages/d3/3e/7886ece00151c94de1437cfcea648ce8b603963a89681e93390b8b76bab3/RestrictedPython-4.0b5.tar.gz" } ], "4.0b6": [ { "comment_text": "", "digests": { "md5": "9362b45fe80f5a583cc60d9541f72948", "sha256": "8237cbb0302079eaf1ee4b5216d721a35af087dd7872617869762abe66b5ef01" }, "downloads": -1, "filename": "RestrictedPython-4.0b6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9362b45fe80f5a583cc60d9541f72948", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 29381, "upload_time": "2018-10-05T11:01:30", "url": "https://files.pythonhosted.org/packages/23/3e/37a9a2649ae3e9cbfa44cee3d8f0efb628dd2e3f64710b4aeb9d9200ac60/RestrictedPython-4.0b6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f9334f55e2269cefc549d5ad1feb3ada", "sha256": "f6feffa02e836a1e97b8170e68f3822fc2ac81e7f2fa585fdb21d0aa35fdb8cc" }, "downloads": -1, "filename": "RestrictedPython-4.0b6.tar.gz", "has_sig": false, "md5_digest": "f9334f55e2269cefc549d5ad1feb3ada", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76529, "upload_time": "2018-10-05T11:01:31", "url": "https://files.pythonhosted.org/packages/f4/18/77d8dc6f50f5f43cb23ce4988772b3c83899f17445a19b5efc4dbb3bb4dc/RestrictedPython-4.0b6.tar.gz" } ], "4.0b7": [ { "comment_text": "", "digests": { "md5": "43348ce7be0a4cd4eeb69549564bb74d", "sha256": "4a59877e3cde0a31f6eb99f73a5be3a629d6b3d43f4d7d71a49fef188745b455" }, "downloads": -1, "filename": "RestrictedPython-4.0b7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "43348ce7be0a4cd4eeb69549564bb74d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 29810, "upload_time": "2018-10-30T08:58:10", "url": "https://files.pythonhosted.org/packages/77/53/c745941f7b77a6cd9f63bf522502bbcfbfbb36a8335c527344d6081b8f4e/RestrictedPython-4.0b7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ef62ac0cf5fd6d668039c23a75f2d1c", "sha256": "6b4b667d15d9258a38c02f27d68915655397364342d7a1905a4ac4471cd6eec4" }, "downloads": -1, "filename": "RestrictedPython-4.0b7.tar.gz", "has_sig": false, "md5_digest": "7ef62ac0cf5fd6d668039c23a75f2d1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77087, "upload_time": "2018-10-30T08:58:11", "url": "https://files.pythonhosted.org/packages/dd/b0/29e817d8e4ac133aa8e6166c7ac4766ed6060b3502463e634aa8f2b52422/RestrictedPython-4.0b7.tar.gz" } ], "4.0b8": [ { "comment_text": "", "digests": { "md5": "787e2b7d8c16136519bca85b93e32378", "sha256": "7ab8baf8b1b49bfafb9416b55339ca34ff5e7a26bd5d33c5d3dd4c2b5addca43" }, "downloads": -1, "filename": "RestrictedPython-4.0b8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "787e2b7d8c16136519bca85b93e32378", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 30076, "upload_time": "2019-02-09T13:49:08", "url": "https://files.pythonhosted.org/packages/1d/5c/150bf32f5ab8a4f0601823cf3bb2ab6cbab2104fa6f6f1ec1d3608ac0884/RestrictedPython-4.0b8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5b80b0a7dcec731f0eb5d3b886880fc9", "sha256": "6cc9a58020f97ce63643c2f06feb24c105cfce615856039784c1c7a35b18130e" }, "downloads": -1, "filename": "RestrictedPython-4.0b8.tar.gz", "has_sig": false, "md5_digest": "5b80b0a7dcec731f0eb5d3b886880fc9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77407, "upload_time": "2019-02-09T13:49:12", "url": "https://files.pythonhosted.org/packages/4f/ff/12a5bcf571c912b58dbc2a360572c8360c55650e0391dc59ac534971c962/RestrictedPython-4.0b8.tar.gz" } ], "5.0": [ { "comment_text": "", "digests": { "md5": "ca665fe60b4c76210786e25b535e6378", "sha256": "9bd69505147b0ff8c68f4ff5a275975a3ab66fc43cbf3b61a195650ed767cd4e" }, "downloads": -1, "filename": "RestrictedPython-5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ca665fe60b4c76210786e25b535e6378", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26840, "upload_time": "2019-09-03T06:16:39", "url": "https://files.pythonhosted.org/packages/0b/8f/6a956c1c2eb58a9fd209c9f90124576d7ea830d7cc54c78e95cc967eb1d0/RestrictedPython-5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b4d0399a6666fb9a85ab4da6bb4309db", "sha256": "a080569bffdf53371ae3e754ab1732f43054b1bab904fc100f74ba68ac731abc" }, "downloads": -1, "filename": "RestrictedPython-5.0.tar.gz", "has_sig": false, "md5_digest": "b4d0399a6666fb9a85ab4da6bb4309db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 437251, "upload_time": "2019-09-03T06:16:41", "url": "https://files.pythonhosted.org/packages/28/45/d5c1e8793d457b2ad31abb29d36f5a8f30e9649760361136d4fc45b4428f/RestrictedPython-5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ca665fe60b4c76210786e25b535e6378", "sha256": "9bd69505147b0ff8c68f4ff5a275975a3ab66fc43cbf3b61a195650ed767cd4e" }, "downloads": -1, "filename": "RestrictedPython-5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ca665fe60b4c76210786e25b535e6378", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26840, "upload_time": "2019-09-03T06:16:39", "url": "https://files.pythonhosted.org/packages/0b/8f/6a956c1c2eb58a9fd209c9f90124576d7ea830d7cc54c78e95cc967eb1d0/RestrictedPython-5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b4d0399a6666fb9a85ab4da6bb4309db", "sha256": "a080569bffdf53371ae3e754ab1732f43054b1bab904fc100f74ba68ac731abc" }, "downloads": -1, "filename": "RestrictedPython-5.0.tar.gz", "has_sig": false, "md5_digest": "b4d0399a6666fb9a85ab4da6bb4309db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 437251, "upload_time": "2019-09-03T06:16:41", "url": "https://files.pythonhosted.org/packages/28/45/d5c1e8793d457b2ad31abb29d36f5a8f30e9649760361136d4fc45b4428f/RestrictedPython-5.0.tar.gz" } ] }