-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New check: use yield from
#9229
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Labels
Enhancement ✨
Improvement to a component
Good first issue
Friendly and approachable by new contributors
Milestone
Comments
crazybolillo
added a commit
to crazybolillo/pylint
that referenced
this issue
Feb 7, 2024
A new message has been added to suggest refactoring when yielding from a for loop can be replaced by 'yield from'. This message is only emitted when there are no other statements in the containing for loop. Closes pylint-dev#9229.
crazybolillo
added a commit
to crazybolillo/pylint
that referenced
this issue
Feb 8, 2024
A new message has been added to suggest refactoring when yielding from a for loop can be replaced by 'yield from'. This message is only emitted when there are no other statements in the containing for loop. Closes pylint-dev#9229.
crazybolillo
added a commit
to crazybolillo/pylint
that referenced
this issue
Feb 10, 2024
A new message has been added to suggest refactoring when yielding from a for loop can be replaced by 'yield from'. This message is only emitted when there are no other statements in the containing for loop. Closes pylint-dev#9229.
Pierre-Sassoulas
pushed a commit
that referenced
this issue
Feb 11, 2024
Suggest refactoring when yielding from a for loop can be replaced by 'yield from'. This message is only emitted when there are no other statements in the containing for loop. There are too many possible generators to use in a for loop and handling all the cases to provide a human friendly display name in emitted messages seems too cumbersome compared to the benefit it brings, specially considering this message will have a doc page with examples. It is invalid to use 'yield from' in async functions. Replacing yielding from an 'async for' loop may not be the same as using 'yield from' so the message won't be emitted for async loops as well. Closes #9229
Merged
netbsd-srcmastr
referenced
this issue
in NetBSD/pkgsrc
Mar 3, 2024
New Features ------------ - Skip ``consider-using-join`` check for non-empty separators if an ``suggest-join-with-non-empty-separator`` option is set to ``no``. Closes #8701 (`#8701 <https://github.com/pylint-dev/pylint/issues/8701>`_) - Discover ``.pyi`` files when linting. These can be ignored with the ``ignore-patterns`` setting. Closes #9097 (`#9097 <https://github.com/pylint-dev/pylint/issues/9097>`_) - Check ``TypeAlias`` and ``TypeVar`` (PEP 695) nodes for ``invalid-name``. Refs #9196 (`#9196 <https://github.com/pylint-dev/pylint/issues/9196>`_) - Support for resolving external toml files named pylintrc.toml and .pylintrc.toml. Closes #9228 (`#9228 <https://github.com/pylint-dev/pylint/issues/9228>`_) - Check for `.clear`, `.discard`, `.pop` and `remove` methods being called on a set while it is being iterated over. Closes #9334 (`#9334 <https://github.com/pylint-dev/pylint/issues/9334>`_) New Checks ---------- - New message `use-yield-from` added to the refactoring checker. This message is emitted when yielding from a loop can be replaced by `yield from`. Closes #9229. (`#9229 <https://github.com/pylint-dev/pylint/issues/9229>`_) - Added a ``deprecated-attribute`` message to check deprecated attributes in the stdlib. Closes #8855 (`#8855 <https://github.com/pylint-dev/pylint/issues/8855>`_) False Positives Fixed --------------------- - Fixed false positive for ``inherit-non-class`` for generic Protocols. Closes #9106 (`#9106 <https://github.com/pylint-dev/pylint/issues/9106>`_) - Exempt ``TypedDict`` from ``typing_extensions`` from ``too-many-ancestor`` checks. Refs #9167 (`#9167 <https://github.com/pylint-dev/pylint/issues/9167>`_) False Negatives Fixed --------------------- - Extend broad-exception-raised and broad-exception-caught to except*. Closes #8827 (`#8827 <https://github.com/pylint-dev/pylint/issues/8827>`_) - Fix a false-negative for unnecessary if blocks using a different than expected ordering of arguments. Closes #8947. (`#8947 <https://github.com/pylint-dev/pylint/issues/8947>`_) Other Bug Fixes --------------- - Improve the message provided for wrong-import-order check. Instead of the import statement ("import x"), the message now specifies the import that is out of order and which imports should come after it. As reported in the issue, this is particularly helpful if there are multiple imports on a single line that do not follow the PEP8 convention. The message will report imports as follows: For "import X", it will report "(standard/third party/first party/local) import X" For "import X.Y" and "from X import Y", it will report "(standard/third party/first party/local) import X.Y" The import category is specified to provide explanation as to why pylint has issued the message and guidence to the developer on how to fix the problem. Closes #8808 (`#8808 <https://github.com/pylint-dev/pylint/issues/8808>`_) Other Changes ------------- - Print how many files were checked in verbose mode. Closes #8935 (`#8935 <https://github.com/pylint-dev/pylint/issues/8935>`_) - Fix a crash when an enum class which is also decorated with a ``dataclasses.dataclass`` decorator is defined. Closes #9100 (`#9100 <https://github.com/pylint-dev/pylint/issues/9100>`_)
pmisik
added a commit
to pmisik/buildbot
that referenced
this issue
Mar 18, 2024
…nt one by one [use-yield-from]" pylint-dev/pylint#9229
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Enhancement ✨
Improvement to a component
Good first issue
Friendly and approachable by new contributors
Current problem
Yielding item by item from a generator:
Desired solution
It is cleaner and maybe even a little faster to use
yield from
:This should be an easy check to implement.
Additional context
Note that
yield from
does a lot more than just iterate.The text was updated successfully, but these errors were encountered: