-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Crash with dataclass enums #9100
Comments
Thanks Gunni for the catch! So, as a way forward, how about we catch the TypeError for this scenario in pylint and independently create an issue in astroid to be able to understand dataclass + enum classes? |
I think it depends on the difficulty of the fix in astroid. If it's very hard then sure let's prevent the crash temporarily in pylint with a try/except. |
…lasses.dataclass`` decorator is defined. Closes pylint-dev#9100
…lasses.dataclass`` decorator is defined. Closes pylint-dev#9100
* Fix a crash when an enum class which is also decorated with a ``dataclasses.dataclass`` decorator is defined. Closes #9100 * Update test to mention the `astroid` issue that addresses the missing ``__members__`` object. * Use an `if` instead of the `try/except` block. * Update pylint/checkers/utils.py Co-authored-by: Daniël van Noord <13665637+DanielNoord@users.noreply.github.com> --------- Co-authored-by: Daniël van Noord <13665637+DanielNoord@users.noreply.github.com>
* Fix a crash when an enum class which is also decorated with a ``dataclasses.dataclass`` decorator is defined. Closes #9100 * Update test to mention the `astroid` issue that addresses the missing ``__members__`` object. * Use an `if` instead of the `try/except` block. * Update pylint/checkers/utils.py Co-authored-by: Daniël van Noord <13665637+DanielNoord@users.noreply.github.com> --------- Co-authored-by: Daniël van Noord <13665637+DanielNoord@users.noreply.github.com> (cherry picked from commit 2c3425d)
* Fix a crash when an enum class which is also decorated with a ``dataclasses.dataclass`` decorator is defined. Closes #9100 * Update test to mention the `astroid` issue that addresses the missing ``__members__`` object. * Use an `if` instead of the `try/except` block. * Update pylint/checkers/utils.py Co-authored-by: Daniël van Noord <13665637+DanielNoord@users.noreply.github.com> --------- Co-authored-by: Daniël van Noord <13665637+DanielNoord@users.noreply.github.com> (cherry picked from commit 2c3425d) Co-authored-by: Mark Byrne <31762852+mbyrnepr2@users.noreply.github.com> Co-authored-by: Pierre Sassoulas <pierre.sassoulas@gmail.com>
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>`_)
Bug description
When parsing the following
a.py
:Configuration
No response
Command used
Pylint output
Expected behavior
No crash. Works on 2.17.7.
Pylint version
OS / Environment
Additional dependencies
No response
The text was updated successfully, but these errors were encountered: