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.