pep-550: Add a section about context isolation (#331)
This commit is contained in:
parent
70d0a63390
commit
1e260e7a1e
21
pep-0550.rst
21
pep-0550.rst
|
@ -968,6 +968,27 @@ trampoline, making it impossible to intercept their ``yield`` points
|
|||
outside of the Python interpreter.
|
||||
|
||||
|
||||
Is it possible to write a context manager to isolate EC changes?
|
||||
----------------------------------------------------------------
|
||||
|
||||
Yes!
|
||||
|
||||
::
|
||||
|
||||
@contextlib.contextmanager
|
||||
def isolated_context():
|
||||
old_ctx = sys.get_execution_context()
|
||||
try:
|
||||
yield
|
||||
finally:
|
||||
sys.set_execution_context(old_ctx)
|
||||
|
||||
|
||||
with isolated_context():
|
||||
# Any Execution Context changes will not be visible
|
||||
# outside of this block.
|
||||
|
||||
|
||||
Reference Implementation
|
||||
========================
|
||||
|
||||
|
|
Loading…
Reference in New Issue