unnecessary-double-cast-or-process (C414)
Added in v0.0.70 · Related issues · View source
Derived from the flake8-comprehensions linter.
Fix is always available.
What it does
Checks for unnecessary list(), reversed(), set(), sorted(), and
tuple() call within list(), set(), sorted(), and tuple() calls.
Why is this bad?
It's unnecessary to double-cast or double-process iterables by wrapping
the listed functions within an additional list(), set(), sorted(), or
tuple() call. Doing so is redundant and can be confusing for readers.
Example
Use instead:
This rule applies to a variety of functions, including list(), reversed(),
set(), sorted(), and tuple(). For example:
- Instead of
list(list(iterable)), uselist(iterable). - Instead of
list(tuple(iterable)), uselist(iterable). - Instead of
tuple(list(iterable)), usetuple(iterable). - Instead of
tuple(tuple(iterable)), usetuple(iterable). - Instead of
set(set(iterable)), useset(iterable). - Instead of
set(list(iterable)), useset(iterable). - Instead of
set(tuple(iterable)), useset(iterable). - Instead of
set(sorted(iterable)), useset(iterable). - Instead of
set(reversed(iterable)), useset(iterable). - Instead of
sorted(list(iterable)), usesorted(iterable). - Instead of
sorted(tuple(iterable)), usesorted(iterable). - Instead of
sorted(sorted(iterable)), usesorted(iterable). - Instead of
sorted(reversed(iterable)), usesorted(iterable).
Fix safety
This rule's fix is marked as unsafe, as it may occasionally drop comments when rewriting the call. In most cases, though, comments will be preserved.