mirror of https://github.com/python/cpython.git
Docs tweaks for contextlib additions
This commit is contained in:
parent
ed7bb488b4
commit
b4534ae704
|
@ -99,22 +99,27 @@ Functions and classes provided:
|
||||||
Return a context manager that ignores the specified exceptions if they
|
Return a context manager that ignores the specified exceptions if they
|
||||||
occur in the body of a with-statement.
|
occur in the body of a with-statement.
|
||||||
|
|
||||||
|
As with any other mechanism that completely suppresses exceptions, it
|
||||||
|
should only be used to cover very specific errors where silently
|
||||||
|
ignoring the exception is known to be the right thing to do.
|
||||||
|
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
from contextlib import ignore
|
from contextlib import ignore
|
||||||
|
|
||||||
with ignore(OSError):
|
with ignore(FileNotFoundError):
|
||||||
os.remove('somefile.tmp')
|
os.remove('somefile.tmp')
|
||||||
|
|
||||||
This code is equivalent to::
|
This code is equivalent to::
|
||||||
|
|
||||||
try:
|
try:
|
||||||
os.remove('somefile.tmp')
|
os.remove('somefile.tmp')
|
||||||
except OSError:
|
except FileNotFoundError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
.. versionadded:: 3.4
|
.. versionadded:: 3.4
|
||||||
|
|
||||||
|
|
||||||
.. function:: redirect_stdout(new_target)
|
.. function:: redirect_stdout(new_target)
|
||||||
|
|
||||||
Context manager for temporarily redirecting :data:`sys.stdout` to
|
Context manager for temporarily redirecting :data:`sys.stdout` to
|
||||||
|
@ -144,6 +149,11 @@ Functions and classes provided:
|
||||||
with redirect_stdout(sys.stderr):
|
with redirect_stdout(sys.stderr):
|
||||||
help(pow)
|
help(pow)
|
||||||
|
|
||||||
|
Note that the global side effect on :data:`sys.stdout` means that this
|
||||||
|
context manager is not suitable for use in library code and most threaded
|
||||||
|
applications. It also has no effect on the output of subprocesses.
|
||||||
|
However, it is still a useful approach for many utility scripts.
|
||||||
|
|
||||||
.. versionadded:: 3.4
|
.. versionadded:: 3.4
|
||||||
|
|
||||||
.. class:: ContextDecorator()
|
.. class:: ContextDecorator()
|
||||||
|
|
|
@ -205,6 +205,19 @@ been expanded so that they match the FCC NTSC versions. The change in
|
||||||
results should be less than 1% and may better match results found elsewhere.
|
results should be less than 1% and may better match results found elsewhere.
|
||||||
|
|
||||||
|
|
||||||
|
contextlib
|
||||||
|
----------
|
||||||
|
|
||||||
|
The new :class:`contextlib.ignore` context manager helps to clarify the
|
||||||
|
intent of code that deliberately ignores failures from a particular
|
||||||
|
operation.
|
||||||
|
|
||||||
|
The new :class:`contextlib.redirect_stdio` context manager makes it easier
|
||||||
|
for utility scripts to handle inflexible APIs that don't provide any
|
||||||
|
options to retrieve their output as a string or direct it to somewhere
|
||||||
|
other than :data:`sys.stdout`.
|
||||||
|
|
||||||
|
|
||||||
dis
|
dis
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue