Skip to content

Use contextlib.suppress

Sourcery refactoring id: use-contextlib-suppress

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

try:
    travel_world(days=80)
except DistractionError:
    pass

After

import contextlib

with contextlib.suppress(DistractionError):
    travel_world(days=80)

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.