-
Notifications
You must be signed in to change notification settings - Fork 40
Open
Labels
Description
BUG/PROBLEM REPORT (OR OTHER COMMON ISSUE)
If this ticket is accepted as a bug or feature request, I volunteer to work on it (once contributor agreement is approved).
What I did:
I tried to create a context manager in restricted python, here is the code:
from RestrictedPython import compile_restricted
source_code = """
class example:
def __enter__(self):
return self
def __exit__(self, exc_type, exc_value, exc_traceback):
pass
"""
compile_restricted(source_code, '<inline>', 'exec')
What I expect to happen:
I expected to have a context manager that I could use in a with
statement
What actually happened:
I get the following error:
SyntaxError: ('Line 3: "__enter__" is an invalid variable name because it starts with "_"', 'Line 6: "__exit__" is an invalid variable name because it starts with "_"')
These methods (__enter__
and __exit__
) are missing from transformer.ALLOWED_FUNC_NAMES
What version of Python and Zope/Addons I am using:
Python 3.8.2
RestrictedPython 5.2
macOS Monterey 12.5.1