collapse-isinstance-checks¶
The built-in isinstance function, instead of a single type,
can take a tuple of types and check whether given target suits
any of them. Rather than chaining multiple isinstance calls
with a boolean-or operation, a single isinstance call where
the second argument is a tuple of all types can be used.
Message¶
Multiple isinstance calls with the same target but different types can be collapsed into a single call with a tuple of types.
Valid examples¶
foo() or foo()
foo(x, y) or foo(x, z)
foo(x, y) or foo(x, z) or foo(x, q)
isinstance() or isinstance()
isinstance(x) or isinstance(x)
isinstance(x, y) or isinstance(x)
Show more
isinstance(x) or isinstance(x, y)
isinstance(x, y) or isinstance(t, y)
isinstance(f(), A) or isinstance(f(), B)
isinstance(x, y) and isinstance(x, z)
isinstance(x, y) or isinstance(x, (z, q))
isinstance(x, (y, z)) or isinstance(x, q)
isinstance(x, a) or isinstance(y, b) or isinstance(z, c)
def foo():
def isinstance(x, y):
return _foo_bar(x, y)
if isinstance(x, y) or isinstance(x, z):
print("foo")
Invalid examples¶
isinstance(x, y) or isinstance(x, z)
Suggested fix
isinstance(x, (y, z))
isinstance(x, y) or isinstance(x, z) or isinstance(x, q)
Suggested fix
isinstance(x, (y, z, q))
something or isinstance(x, y) or isinstance(x, z) or another
Suggested fix
something or isinstance(x, (y, z)) or another
Show more
isinstance(x, y) or isinstance(x, z) or isinstance(x, q) or isinstance(x, w)
Suggested fix
isinstance(x, (y, z, q, w))
isinstance(x, a) or isinstance(x, b) or isinstance(y, c) or isinstance(y, d)
Suggested fix
isinstance(x, (a, b)) or isinstance(y, (c, d))
isinstance(x, a) or isinstance(x, b) or isinstance(y, c) or isinstance(y, d) or isinstance(z, e)
Suggested fix
isinstance(x, (a, b)) or isinstance(y, (c, d)) or isinstance(z, e)
isinstance(x, a) or isinstance(x, b) or isinstance(y, c) or isinstance(y, d) or isinstance(z, e) or isinstance(q, f) or isinstance(q, g) or isinstance(q, h)
Suggested fix
isinstance(x, (a, b)) or isinstance(y, (c, d)) or isinstance(z, e) or isinstance(q, (f, g, h))