Respect all rule-exemption sources when suppressing parser errors#3665
Merged
charliermarsh merged 1 commit intomainfrom Mar 23, 2023
Merged
Respect all rule-exemption sources when suppressing parser errors#3665charliermarsh merged 1 commit intomainfrom
charliermarsh merged 1 commit intomainfrom
Conversation
Contributor
PR Check ResultsEcosystem✅ ecosystem check detected no changes. BenchmarkLinuxWindows |
fc16769 to
c43e665
Compare
MichaReiser
approved these changes
Mar 23, 2023
Member
MichaReiser
left a comment
There was a problem hiding this comment.
The change looks reasonable to me. I'm a bit uncertain if it should be possible to suppress syntax errors because they'll ultimately result in a runtime error and other ruff analysis not running (more potential runtime errors).
Member
Author
|
Yeah I'm not sure either. This was important when we knowingly didn't support all valid syntax, and users needed a workaround. Now I'm not so sure. |
Member
Author
|
(But, as long as we have this behavior, I think this change is correct.) |
renovate bot
referenced
this pull request
in ixm-one/pytest-cmake-presets
Mar 23, 2023
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [ruff](https://togithub.com/charliermarsh/ruff) | `^0.0.258` -> `^0.0.259` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>charliermarsh/ruff</summary> ### [`v0.0.259`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.259) [Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.258...v0.0.259) <!-- Release notes generated using configuration in .github/release.yml at main --> #### Summary Follow-up release to `v0.0.258` to fix an issue related to rule resolution via `select` and `ignore`. #### What's Changed ##### Bug Fixes - Fix RuleSet.remove by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/3685](https://togithub.com/charliermarsh/ruff/pull/3685) - Respect all rule-exemption sources when suppressing parser errors by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3665](https://togithub.com/charliermarsh/ruff/pull/3665) - Avoid nested loops in `missing_whitespace` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3688](https://togithub.com/charliermarsh/ruff/pull/3688) **Full Changelog**: astral-sh/ruff@v0.0.258...v0.0.259 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/ixm-one/pytest-cmake-presets). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNy4xIiwidXBkYXRlZEluVmVyIjoiMzUuMTcuMSJ9--> Signed-off-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot
referenced
this pull request
in allenporter/flux-local
Mar 25, 2023
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [ruff](https://togithub.com/charliermarsh/ruff) | `==0.0.257` -> `==0.0.259` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>charliermarsh/ruff</summary> ### [`v0.0.259`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.259) [Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.258...v0.0.259) <!-- Release notes generated using configuration in .github/release.yml at main --> #### Summary Follow-up release to `v0.0.258` to fix an issue related to rule resolution via `select` and `ignore`. #### What's Changed ##### Bug Fixes - Fix RuleSet.remove by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/3685](https://togithub.com/charliermarsh/ruff/pull/3685) - Respect all rule-exemption sources when suppressing parser errors by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3665](https://togithub.com/charliermarsh/ruff/pull/3665) - Avoid nested loops in `missing_whitespace` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3688](https://togithub.com/charliermarsh/ruff/pull/3688) **Full Changelog**: astral-sh/ruff@v0.0.258...v0.0.259 ### [`v0.0.258`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.258) [Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.257...v0.0.258) <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### Rules - \[`flake8-comprehensions`] Update `C416` with dict comprehension (autofixable) by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3605](https://togithub.com/charliermarsh/ruff/pull/3605) - \[`pylint`]: Implement `assert-on-string-literal` (`W0129`) by [@​latonis](https://togithub.com/latonis) in [https://github.com/charliermarsh/ruff/pull/3610](https://togithub.com/charliermarsh/ruff/pull/3610) - \[`pyupgrade`] Convert single-argument %-style format calls by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3600](https://togithub.com/charliermarsh/ruff/pull/3600) - \[`pyupgrade`] Flag PEP 585 and PEP 604 violations in quoted annotations by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3593](https://togithub.com/charliermarsh/ruff/pull/3593) - \[`pyupgrade`] Enable autofix for annotations within 'simple' string literals by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3657](https://togithub.com/charliermarsh/ruff/pull/3657) - \[`pyflakes`] Add autofix functionality for `F523` ([#​3613](https://togithub.com/charliermarsh/ruff/issues/3613)) by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3613](https://togithub.com/charliermarsh/ruff/pull/3613) - \[`flake8-bandit`]: Implement deny-list rules for suspicious member calls by [@​colin99d](https://togithub.com/colin99d) in [https://github.com/charliermarsh/ruff/pull/3239](https://togithub.com/charliermarsh/ruff/pull/3239) - \[`flake8-annotations`] Add autofix for `ANN204` with magic methods by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3633](https://togithub.com/charliermarsh/ruff/pull/3633) - \[`pylint`] Implement `binary-op-exception` (`PLW0711`) by [@​latonis](https://togithub.com/latonis) in [https://github.com/charliermarsh/ruff/pull/3639](https://togithub.com/charliermarsh/ruff/pull/3639) - \[`flake8-django`]: Implement rule DJ012 by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/charliermarsh/ruff/pull/3659](https://togithub.com/charliermarsh/ruff/pull/3659) ##### Bug Fixes - Check exclusions prior to resolving `pyproject.toml` files by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3588](https://togithub.com/charliermarsh/ruff/pull/3588) - Fix D417 false positive by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3596](https://togithub.com/charliermarsh/ruff/pull/3596) - Avoid removing comment hash for noqa's with trailing content by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3589](https://togithub.com/charliermarsh/ruff/pull/3589) - Avoid panics for implicitly-concatenated docstrings by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3584](https://togithub.com/charliermarsh/ruff/pull/3584) - Fix infinite loop due to rules `D207` & `W605` by [@​vlindhol](https://togithub.com/vlindhol) in [https://github.com/charliermarsh/ruff/pull/3609](https://togithub.com/charliermarsh/ruff/pull/3609) - Avoid trimming escaped whitespace in D210 by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3635](https://togithub.com/charliermarsh/ruff/pull/3635) - Handle `UP032` autofix with adjacent keywords by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3636](https://togithub.com/charliermarsh/ruff/pull/3636) - Consider same-site fixes to be overlapping by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3638](https://togithub.com/charliermarsh/ruff/pull/3638) - Avoid `RUF007` fixes for more than two arguments by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3654](https://togithub.com/charliermarsh/ruff/pull/3654) - Allow `pairwise` diagnostics for `zip(..., strict=True)` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3669](https://togithub.com/charliermarsh/ruff/pull/3669) - isort: fix bad interaction between `force-sort-within-sections` and `force-to-top` by [@​bluetech](https://togithub.com/bluetech) in [https://github.com/charliermarsh/ruff/pull/3645](https://togithub.com/charliermarsh/ruff/pull/3645) - Gracefully handle lint panics by [@​MichaReiser](https://togithub.com/MichaReiser) in [https://github.com/charliermarsh/ruff/pull/3509](https://togithub.com/charliermarsh/ruff/pull/3509) - Fix TRY300 false positive by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [https://github.com/charliermarsh/ruff/pull/3634](https://togithub.com/charliermarsh/ruff/pull/3634) - Avoid raising PEP 604 errors with forward-referenced members by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3640](https://togithub.com/charliermarsh/ruff/pull/3640) - Avoid attempting infinite `open` fix with re-bound builtin by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3650](https://togithub.com/charliermarsh/ruff/pull/3650) - Check indentation level when executing E231 by [@​kyoto7250](https://togithub.com/kyoto7250) in [https://github.com/charliermarsh/ruff/pull/3668](https://togithub.com/charliermarsh/ruff/pull/3668) - Flag, but don't fix, unused imports (`F401`) in `ModuleNotFoundError` blocks by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/3658](https://togithub.com/charliermarsh/ruff/pull/3658) #### New Contributors - [@​Rogdham](https://togithub.com/Rogdham) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3607](https://togithub.com/charliermarsh/ruff/pull/3607) - [@​vlindhol](https://togithub.com/vlindhol) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3609](https://togithub.com/charliermarsh/ruff/pull/3609) - [@​dhruvmanila](https://togithub.com/dhruvmanila) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3605](https://togithub.com/charliermarsh/ruff/pull/3605) - [@​luke396](https://togithub.com/luke396) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3604](https://togithub.com/charliermarsh/ruff/pull/3604) - [@​fuziontech](https://togithub.com/fuziontech) made their first contribution in [https://github.com/charliermarsh/ruff/pull/3641](https://togithub.com/charliermarsh/ruff/pull/3641) **Full Changelog**: astral-sh/ruff@v0.0.257...v0.0.258 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/allenporter/flux-local). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNC4yIiwidXBkYXRlZEluVmVyIjoiMzUuMTQuMiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
By default, if we hit a syntax error when parsing a file, we show the user a warning in addition to adding a diagnostic (if the user has
E999enabled).The relevant discussion is here: #2505. In short, only logging the diagnostic is insufficient, since if a user does
ruff check --select F, and the file contains a syntax error, it would lead to a silent failure. However, if a user has explicitly ignored a syntax error, it's tedious to have it reported on every invocation. So this is the workaround.However, there's a bug in the current solution, which is that it only recognizes inline
noqacomments and not file-wide exemptions (e.g.,# ruff: noqaat the top of the file), which leads to a really subtle bug in which we think we've introduced a syntax error after removing the unusednoqacomment on a syntax-error-causing line.This PR fixes that bug (without changing behavior) by respecting all forms of error suppression when considering whether to report a warning back to the user.
Closes #3622.