Use `contextlib.suppress`
Documentation Index
Fetch the complete documentation index at: https://docs.sourcery.ai/llms.txt
Use this file to discover all available pages before exploring further.
Sourcery refactoring id: use-contextlib-suppress
Section titled “Sourcery refactoring id: use-contextlib-suppress”Description
Section titled “Description”Use contextlib’s
suppress method to silence a specific error, instead of passing in an
exception handler. This refactoring will add an import for contextlib if
needed.
Before
Section titled “Before”try: travel_world(days=80)except DistractionError: passimport contextlib
with contextlib.suppress(DistractionError): travel_world(days=80)Explanation
Section titled “Explanation”The context manager slightly shortens the code and significantly clarifies the author’s intention to ignore the specific errors. The standard library feature was introduced following a discussion, where the consensus was that
A key benefit here is in the priming effect for readers… The with statement form makes it clear before you start reading the code that certain exceptions won’t propagate.
Related Rules
Section titled “Related Rules”- merge-except-handler to merge except handlers with the same content
- remove-redundant-exception to clean up the tuple of an except clause
- remove-redundant-except-handler to
remove unreachable
exceptblocks - do-not-use-bare-except to always specify which
errors an
exceptblock is handling