yield-in-for-loop (UP028)
Derived from the pyupgrade linter.
Fix is always available.
What it does
Checks for for
loops that can be replaced with yield from
expressions.
Why is this bad?
If a for
loop only contains a yield
statement, it can be replaced with a
yield from
expression, which is more concise and idiomatic.
Example
Use instead:
Fix safety
This rule's fix is marked as unsafe, as converting a for
loop to a yield from
expression can change the behavior of the program in rare cases.
For example, if a generator is being sent values via send
, then rewriting
to a yield from
could lead to an attribute error if the underlying
generator does not implement the send
method.
In most cases, however, the fix is safe, and such a modification should have no effect on the behavior of the program.