Back to module index
Go to module by name
contextlib
Utilities for with-statement contexts. See PEP 343.
Classes
AbstractAsyncContextManager
An abstract base class for asynchronous context managers.
AbstractContextManager
An abstract base class for context managers.
AsyncExitStack
Async context manager for dynamic management of a stack of exit
callbacks.
For example:
async with AsyncExitStack() as stack:
connections = [await stack.enter_async_context(get_connection())
for i in range(5)]
# All opened connections will automatically be released at the
# end of the async with statement, even if attempts to open a
# connection later in the list raise an exception.
aclose(self)
Immediately unwind the context stack.
callback(self, callback, /, *args, **kwds)
Registers an arbitrary callback and arguments.
Cannot suppress exceptions.
enter_async_context(self, cm)
Enters the supplied async context manager.
If successful, also pushes its __aexit__ method as a callback and
returns the result of the __aenter__ method.
enter_context(self, cm)
Enters the supplied context manager.
If successful, also pushes its __exit__ method as a callback and
returns the result of the __enter__ method.
pop_all(self)
Preserve the context stack by transferring it to a new instance.
push(self, exit)
Registers a callback with the standard __exit__ method signature.
Can suppress exceptions the same way __exit__ method can.
Also accepts any object with an __exit__ method (registering a call
to the method instead of the object itself).
push_async_callback(self, callback, /, *args, **kwds)
Registers an arbitrary coroutine function and arguments.
Cannot suppress exceptions.
push_async_exit(self, exit)
Registers a coroutine function with the standard __aexit__ method
signature.
Can suppress exceptions the same way __aexit__ method can.
Also accepts any object with an __aexit__ method (registering a call
to the method instead of the object itself).
ContextDecorator
A base class or mixin that enables context managers to work as decorators.
ExitStack
Context manager for dynamic management of a stack of exit callbacks.
For example:
with ExitStack() as stack:
files = [stack.enter_context(open(fname)) for fname in filenames]
# All opened files will automatically be closed at the end of
# the with statement, even if attempts to open files later
# in the list raise an exception.
callback(self, callback, /, *args, **kwds)
Registers an arbitrary callback and arguments.
Cannot suppress exceptions.
close(self)
Immediately unwind the context stack.
enter_context(self, cm)
Enters the supplied context manager.
If successful, also pushes its __exit__ method as a callback and
returns the result of the __enter__ method.
pop_all(self)
Preserve the context stack by transferring it to a new instance.
push(self, exit)
Registers a callback with the standard __exit__ method signature.
Can suppress exceptions the same way __exit__ method can.
Also accepts any object with an __exit__ method (registering a call
to the method instead of the object itself).
GenericAlias
Represent a PEP 585 generic type
E.g. for t = list[int], t.__origin__ is list and t.__args__ is (int,).
method
method(function, instance)
Create a bound instance method object.
closing
Context to automatically close something at the end of a block.
Code like this:
with closing(<module>.open(<arguments>)) as f:
<block>
is equivalent to this:
f = <module>.open(<arguments>)
try:
<block>
finally:
f.close()
deque
deque([iterable[, maxlen]]) --> deque object
A list-like sequence optimized for data accesses near its endpoints.
append(...)
Add an element to the right side of the deque.
appendleft(...)
Add an element to the left side of the deque.
clear(...)
Remove all elements from the deque.
copy(...)
Return a shallow copy of a deque.
count(...)
D.count(value) -> integer -- return number of occurrences of value
extend(...)
Extend the right side of the deque with elements from the iterable
extendleft(...)
Extend the left side of the deque with elements from the iterable
index(...)
D.index(value, [start, [stop]]) -> integer -- return first index of value.
Raises ValueError if the value is not present.
insert(...)
D.insert(index, object) -- insert object before index
pop(...)
Remove and return the rightmost element.
popleft(...)
Remove and return the leftmost element.
remove(...)
D.remove(value) -- remove first occurrence of value.
reverse(...)
D.reverse() -- reverse *IN PLACE*
rotate(...)
Rotate the deque n steps to the right (default n=1). If n is negative, rotates left.
maxlen = <attribute 'maxlen' of 'collections.deque' objects>
maximum size of a deque or None if unbounded
nullcontext
Context manager that does no additional processing.
Used as a stand-in for a normal context manager, when a particular
block of code is only sometimes used with a normal context manager:
cm = optional_cm if condition else nullcontext()
with cm:
# Perform operation, using optional_cm if condition is True
redirect_stderr
Context manager for temporarily redirecting stderr to another file.
redirect_stdout
Context manager for temporarily redirecting stdout to another file.
# How to send help() to stderr
with redirect_stdout(sys.stderr):
help(dir)
# How to write help() to a file
with open('help.txt', 'w') as f:
with redirect_stdout(f):
help(pow)
suppress
Context manager to suppress specified exceptions
After the exception is suppressed, execution proceeds with the next
statement following the with statement.
with suppress(FileNotFoundError):
os.remove(somefile)
# Execution still resumes here if the file was already removed
Functions
asynccontextmanager
asynccontextmanager(func)
@asynccontextmanager decorator.
Typical usage:
@asynccontextmanager
async def some_async_generator(<arguments>):
<setup>
try:
yield <value>
finally:
<cleanup>
This makes this:
async with some_async_generator(<arguments>) as <variable>:
<body>
equivalent to this:
<setup>
try:
<variable> = <value>
<body>
finally:
<cleanup>
contextmanager
contextmanager(func)
@contextmanager decorator.
Typical usage:
@contextmanager
def some_generator(<arguments>):
<setup>
try:
yield <value>
finally:
<cleanup>
This makes this:
with some_generator(<arguments>) as <variable>:
<body>
equivalent to this:
<setup>
try:
<variable> = <value>
<body>
finally:
<cleanup>
wraps
wraps(wrapped, assigned=('__module__', '__name__', '__qualname__', '__doc__', '__annotations__'), updated=('__dict__',))
Decorator factory to apply update_wrapper() to a wrapper function
Returns a decorator that invokes update_wrapper() with the decorated
function as the wrapper argument and the arguments to wraps() as the
remaining arguments. Default arguments are as for update_wrapper().
This is a convenience function to simplify applying partial() to
update_wrapper().
Modules
abc
sys