Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Use
dict
,list
, andset
comprehensions to improve the readability and performance of Python code.%
ruff check --select=C4,PERF401
%
ruff check --select=C4 --fix --unsafe-fixes
%
ruff rule C414
unnecessary-double-cast-or-process (C414)
Derived from the flake8-comprehensions linter.
Fix is always available.
What it does
Checks for unnecessary
list
,reversed
,set
,sorted
, andtuple
call within
list
,set
,sorted
, andtuple
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
, ortuple
call. Doing so is redundant and can be confusing for readers.Examples
Use instead:
This rule applies to a variety of functions, including
list
,reversed
,set
,sorted
, andtuple
. For example:list(list(iterable))
, uselist(iterable)
.list(tuple(iterable))
, uselist(iterable)
.tuple(list(iterable))
, usetuple(iterable)
.tuple(tuple(iterable))
, usetuple(iterable)
.set(set(iterable))
, useset(iterable)
.set(list(iterable))
, useset(iterable)
.set(tuple(iterable))
, useset(iterable)
.set(sorted(iterable))
, useset(iterable)
.set(reversed(iterable))
, useset(iterable)
.sorted(list(iterable))
, usesorted(iterable)
.sorted(tuple(iterable))
, usesorted(iterable)
.sorted(sorted(iterable))
, usesorted(iterable)
.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.