multiple-starts-ends-with (PIE810)#
Derived from the flake8-pie linter.
Fix is always available.
What it does#
Checks for startswith
or endswith
calls on the same value with
different prefixes or suffixes.
Why is this bad?#
The startswith
and endswith
methods accept tuples of prefixes or
suffixes respectively. Passing a tuple of prefixes or suffixes is more
efficient and readable than calling the method multiple times.
Example#
Use instead:
Fix safety#
This rule's fix is unsafe, as in some cases, it will be unable to determine
whether the argument to an existing .startswith
or .endswith
call is a
tuple. For example, given msg.startswith(x) or msg.startswith(y)
, if x
or y
is a tuple, and the semantic model is unable to detect it as such,
the rule will suggest msg.startswith((x, y))
, which will error at
runtime.