repeated-isinstance-calls (PLR1701)#
Derived from the Pylint linter.
Warning: This rule has been removed and its documentation is only available for historical reasons.
Fix is always available.
Removed#
This rule is identical to SIM101 which should be used instead.
What it does#
Checks for repeated isinstance
calls on the same object.
Why is this bad?#
Repeated isinstance
calls on the same object can be merged into a
single call.
Fix safety#
This rule's fix is marked as unsafe on Python 3.10 and later, as combining
multiple isinstance
calls with a binary operator (|
) will fail at
runtime if any of the operands are themselves tuples.
For example, given TYPES = (dict, list)
, then
isinstance(None, TYPES | set | float)
will raise a TypeError
at runtime,
while isinstance(None, set | float)
will not.
Example#
Use instead:
Or, for Python 3.10 and later: