multiple-with-statements (SIM117)
Added in v0.0.211 · Related issues · View source
Derived from the flake8-simplify linter.
Fix is sometimes available.
What it does
Checks for the unnecessary nesting of multiple consecutive context managers.
Why is this bad?
In Python 3, a single with block can include multiple context
managers.
Combining multiple context managers into a single with statement
will minimize the indentation depth of the code, making it more
readable.
The following context managers are exempt when used as standalone statements:
anyio.{CancelScope,fail_after,move_on_after}asyncio.{timeout,timeout_at}trio.{fail_after,fail_at,move_on_after,move_on_at}
Example
Use instead: