RestrictedPython 8.3a1.dev0__py3-none-any.whl → 8.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- RestrictedPython/Eval.py +31 -17
- RestrictedPython/Guards.py +12 -1
- RestrictedPython/Limits.py +23 -4
- RestrictedPython/PrintCollector.py +4 -4
- RestrictedPython/Utilities.py +21 -6
- RestrictedPython/_types.py +25 -0
- RestrictedPython/compile.py +104 -61
- RestrictedPython/py.typed +0 -0
- RestrictedPython/transformer.py +178 -127
- {restrictedpython-8.3a1.dev0.dist-info → restrictedpython-8.4.dist-info}/METADATA +28 -1
- restrictedpython-8.4.dist-info/RECORD +16 -0
- restrictedpython-8.3a1.dev0.dist-info/RECORD +0 -14
- {restrictedpython-8.3a1.dev0.dist-info → restrictedpython-8.4.dist-info}/WHEEL +0 -0
- {restrictedpython-8.3a1.dev0.dist-info → restrictedpython-8.4.dist-info}/licenses/LICENSE.txt +0 -0
- {restrictedpython-8.3a1.dev0.dist-info → restrictedpython-8.4.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: RestrictedPython
|
|
3
|
-
Version: 8.
|
|
3
|
+
Version: 8.4
|
|
4
4
|
Summary: RestrictedPython is a defined subset of the Python language which allows to provide a program input into a trusted environment.
|
|
5
5
|
Author-email: Zope Foundation and contributors <zope-dev@zope.dev>
|
|
6
6
|
Maintainer-email: Plone Foundation and contributors <zope-dev@zope.dev>
|
|
@@ -21,6 +21,7 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
21
21
|
Classifier: Programming Language :: Python :: 3.14
|
|
22
22
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
23
23
|
Classifier: Topic :: Security
|
|
24
|
+
Classifier: Typing :: Typed
|
|
24
25
|
Requires-Python: <3.16,>=3.10
|
|
25
26
|
Description-Content-Type: text/x-rst
|
|
26
27
|
License-File: LICENSE.txt
|
|
@@ -30,6 +31,8 @@ Requires-Dist: pytest-mock; extra == "test"
|
|
|
30
31
|
Provides-Extra: docs
|
|
31
32
|
Requires-Dist: Sphinx; extra == "docs"
|
|
32
33
|
Requires-Dist: furo; extra == "docs"
|
|
34
|
+
Provides-Extra: typecheck
|
|
35
|
+
Requires-Dist: mypy; extra == "typecheck"
|
|
33
36
|
Dynamic: license-file
|
|
34
37
|
|
|
35
38
|
.. image:: https://github.com/zopefoundation/RestrictedPython/actions/workflows/tests.yml/badge.svg
|
|
@@ -123,6 +126,30 @@ the documentation `Contributing page
|
|
|
123
126
|
Changes
|
|
124
127
|
=======
|
|
125
128
|
|
|
129
|
+
8.4 (2026-07-10)
|
|
130
|
+
----------------
|
|
131
|
+
|
|
132
|
+
- Add type annotations to the package code.
|
|
133
|
+
For clarification, restricted Python code does not support type annotations.
|
|
134
|
+
|
|
135
|
+
- Allow ``ast.Module``, ``ast.Expression`` and ``ast.Interactive`` as body in compile_restricted_function
|
|
136
|
+
|
|
137
|
+
- Disallow ``mode="function"`` in ``compile_restricted`` (it never worked).
|
|
138
|
+
|
|
139
|
+
- Prevent access to ``string.Formatter`` and its unsafe traversal methods via
|
|
140
|
+
``safer_getattr``.
|
|
141
|
+
|
|
142
|
+
8.3 (2026-06-16)
|
|
143
|
+
----------------
|
|
144
|
+
|
|
145
|
+
- Switch to PyPI Trusted Publishing for the package release process
|
|
146
|
+
|
|
147
|
+
- Also validate positional-only argument names (parameters before ``/``) so
|
|
148
|
+
they cannot start with an underscore, closing a sandbox escape where a
|
|
149
|
+
positional-only parameter could shadow an injected protected name such as
|
|
150
|
+
``_getattr_``, ``_getitem_``, ``_write_`` or ``_print_``.
|
|
151
|
+
|
|
152
|
+
|
|
126
153
|
8.3a1.dev0 (2026-05-29)
|
|
127
154
|
-----------------------
|
|
128
155
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
RestrictedPython/Eval.py,sha256=3_MA_V-bvb19jl3SU5Nbsx4X-x5pKKNo20ncAkcM858,3820
|
|
2
|
+
RestrictedPython/Guards.py,sha256=YQ3NxdiBgr52nc74ddXZ2V6XHBsz2922saUrwdl8Kok,8680
|
|
3
|
+
RestrictedPython/Limits.py,sha256=nYWJ1K1TmwR14pVlPtrSDEOai2U0mnhm3c8mEKaBa-s,2429
|
|
4
|
+
RestrictedPython/PrintCollector.py,sha256=YPcm8nUr-GnyCPrtGKt8R6f3uYvJ2hMoK7teTAOsch0,1221
|
|
5
|
+
RestrictedPython/Utilities.py,sha256=fI4aBUo4tEJplBEagCuIAvPE98jrq_5t6YZV0qKeCig,3568
|
|
6
|
+
RestrictedPython/__init__.py,sha256=qB_s6zDxuXPAGMoKYKBMc-xZ0gTnQ0ZvtY5FxdAG3aM,1862
|
|
7
|
+
RestrictedPython/_compat.py,sha256=eGzz9dyKpYrhyytUV1Ul860zu5GZq9Ew9EQ3CqjVl0Y,385
|
|
8
|
+
RestrictedPython/_types.py,sha256=9dD3CL01g70rgjFsB_RbOJZHWkOfDX2DGb5Z7WPdb5E,744
|
|
9
|
+
RestrictedPython/compile.py,sha256=nAOr3qexyDavNID5AVvbtE7a3mUvG5qNyzz0-i582M4,8735
|
|
10
|
+
RestrictedPython/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
+
RestrictedPython/transformer.py,sha256=8fhhMIzJZOzobL4l1HMYT6g_0xKO8l_NoAmA-kqwvmU,45173
|
|
12
|
+
restrictedpython-8.4.dist-info/licenses/LICENSE.txt,sha256=PmcdsR32h1FswdtbPWXkqjg-rKPCDOo_r1Og9zNdCjw,2070
|
|
13
|
+
restrictedpython-8.4.dist-info/METADATA,sha256=MngyUyNxFc6gdQCkzjQ20r07w-3rAYqcuBqF3P9CgRo,15536
|
|
14
|
+
restrictedpython-8.4.dist-info/WHEEL,sha256=YLJXdYXQ2FQ0Uqn2J-6iEIC-3iOey8lH3xCtvFLkd8Q,91
|
|
15
|
+
restrictedpython-8.4.dist-info/top_level.txt,sha256=E1-3ARWcduVJnQAScms0FgqnBx_PovrzYsNMYuLGwa0,17
|
|
16
|
+
restrictedpython-8.4.dist-info/RECORD,,
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
RestrictedPython/Eval.py,sha256=pa79tc-JsT7xfzwg0ceMkxyioIEnFbNHc_PsKUhkkj8,3201
|
|
2
|
-
RestrictedPython/Guards.py,sha256=e8xUs0VbvEQxnUu7ylyJNq7xyhGhQ4QuiiAEJIl4mc4,8105
|
|
3
|
-
RestrictedPython/Limits.py,sha256=dORpuly21vSjy8gzNac9IYfIXMMWRVFvqUiKKIeZ3OM,1866
|
|
4
|
-
RestrictedPython/PrintCollector.py,sha256=bBCpnUPOuKz1wJDuSgh7wo2aoKfcTJeeT8OYnM-K9F8,1137
|
|
5
|
-
RestrictedPython/Utilities.py,sha256=u4HUdyjGawaeHyXSakyt4gRT17BZietXnF5WqicujjE,3033
|
|
6
|
-
RestrictedPython/__init__.py,sha256=qB_s6zDxuXPAGMoKYKBMc-xZ0gTnQ0ZvtY5FxdAG3aM,1862
|
|
7
|
-
RestrictedPython/_compat.py,sha256=eGzz9dyKpYrhyytUV1Ul860zu5GZq9Ew9EQ3CqjVl0Y,385
|
|
8
|
-
RestrictedPython/compile.py,sha256=IhcF733t-bkPcvfQ2_NyBeCbSIPtHYxR-GQNNHnaMHM,6727
|
|
9
|
-
RestrictedPython/transformer.py,sha256=Oggxl6_xDYy2R5hctTr3VosDrjlJhji4bfKpakEb77k,40181
|
|
10
|
-
restrictedpython-8.3a1.dev0.dist-info/licenses/LICENSE.txt,sha256=PmcdsR32h1FswdtbPWXkqjg-rKPCDOo_r1Og9zNdCjw,2070
|
|
11
|
-
restrictedpython-8.3a1.dev0.dist-info/METADATA,sha256=KNWa7DLZYb9HVciRTXYiGmiK-VF4U9wPMy4ih9viZgc,14613
|
|
12
|
-
restrictedpython-8.3a1.dev0.dist-info/WHEEL,sha256=YLJXdYXQ2FQ0Uqn2J-6iEIC-3iOey8lH3xCtvFLkd8Q,91
|
|
13
|
-
restrictedpython-8.3a1.dev0.dist-info/top_level.txt,sha256=E1-3ARWcduVJnQAScms0FgqnBx_PovrzYsNMYuLGwa0,17
|
|
14
|
-
restrictedpython-8.3a1.dev0.dist-info/RECORD,,
|
|
File without changes
|
{restrictedpython-8.3a1.dev0.dist-info → restrictedpython-8.4.dist-info}/licenses/LICENSE.txt
RENAMED
|
File without changes
|
|
File without changes
|