-
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
Refactor noqa
directive parsing away from regex-based implementation
#5554
Merged
Conversation
This file contains 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
charliermarsh
added
performance
Potential performance improvement
suppression
Related to supression of violations e.g. noqa
labels
Jul 6, 2023
(The speed-up here is between 3x and 10x depending on the case.) |
charliermarsh
force-pushed
the
charlie/noqa-parser
branch
from
July 6, 2023 05:49
28d0adf
to
77ed42a
Compare
PR Check ResultsEcosystemℹ️ ecosystem check detected changes. (+7, -0, 0 error(s)) airflow (+6, -0)
+ airflow/kubernetes/pod_launcher.py:25:56: F401 [*] `airflow.kubernetes.pod_launcher_deprecated.PodLauncher` imported but unused
+ airflow/kubernetes/pod_launcher.py:25:69: F401 [*] `airflow.kubernetes.pod_launcher_deprecated.PodStatus` imported but unused
+ airflow/kubernetes/volume.py:27:69: F401 [*] `airflow.providers.cncf.kubernetes.backcompat.volume.Volume` imported but unused
+ airflow/kubernetes/volume_mount.py:27:75: F401 [*] `airflow.providers.cncf.kubernetes.backcompat.volume_mount.VolumeMount` imported but unused
+ dev/breeze/src/airflow_breeze/commands/release_candidate_command.py:205:111: E501 Line too long (244 > 110 characters)
+ dev/breeze/src/airflow_breeze/commands/release_candidate_command.py:205:232: COM812 [*] Trailing comma missing setuptools (+1, -0)
+ setuptools/tests/test_logging.py:23:12: F401 [*] `setuptools` imported but unused
BenchmarkLinux
Windows
|
konstin
reviewed
Jul 6, 2023
crates/ruff/src/noqa.rs
Outdated
Comment on lines
69
to
71
codes_start += text[codes_start..] | ||
.find(|c: char| !c.is_whitespace()) | ||
.unwrap_or(0); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How does this behave with # noqa:
?
that's a neat improvement! |
MichaReiser
approved these changes
Jul 6, 2023
charliermarsh
force-pushed
the
charlie/noqa-parser
branch
3 times, most recently
from
July 6, 2023 15:47
176be06
to
cdb295d
Compare
charliermarsh
force-pushed
the
charlie/noqa-parser
branch
from
July 6, 2023 15:53
cdb295d
to
dbc30ae
Compare
renovate bot
referenced
this pull request
in ixm-one/pytest-cmake-presets
Jul 12, 2023
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [ruff](https://beta.ruff.rs/docs) ([source](https://togithub.com/astral-sh/ruff), [changelog](https://togithub.com/astral-sh/ruff/releases)) | `^0.0.277` -> `^0.0.278` | [![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.278/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.278/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.278/compatibility-slim/0.0.277)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.278/confidence-slim/0.0.277)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>astral-sh/ruff (ruff)</summary> ### [`v0.0.278`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.278) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.0.277...v0.0.278) <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### Rules - \[`pylint`] Implement `typevar-bivariance` (`PLC0131`) by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5517](https://togithub.com/astral-sh/ruff/pull/5517) - \[`flake8-pyi`] Implement `unnecessary-literal-union` (`PYI030`) by [@​zanieb](https://togithub.com/zanieb) in [https://github.com/astral-sh/ruff/pull/5570](https://togithub.com/astral-sh/ruff/pull/5570) - \[`pylint`] Implement `type-name-incorrect-variance` (`PLC0105`) by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5651](https://togithub.com/astral-sh/ruff/pull/5651) - \[`ruff`] Implement `unnecessary-list-allocation-for-first-element` (`RUF015`) by [@​evanrittenhouse](https://togithub.com/evanrittenhouse) in [https://github.com/astral-sh/ruff/pull/5549](https://togithub.com/astral-sh/ruff/pull/5549) - \[`flake8-bugbear`] Implement `re-sub-positional-args` (`B034`) by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5669](https://togithub.com/astral-sh/ruff/pull/5669) - \[`ruff`] Implement `invalid-index-type` (`RUF016`) by [@​zanieb](https://togithub.com/zanieb) in [https://github.com/astral-sh/ruff/pull/5602](https://togithub.com/astral-sh/ruff/pull/5602) ##### Settings - \[`isort`] Add `--case-sensitive` flag by [@​qdegraaf](https://togithub.com/qdegraaf) in [https://github.com/astral-sh/ruff/pull/5539](https://togithub.com/astral-sh/ruff/pull/5539) - \[`isort`] Support globbing in `isort` options by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5473](https://togithub.com/astral-sh/ruff/pull/5473) ##### Bug Fixes - Support autofix for some multiline `str.format` calls by [@​harupy](https://togithub.com/harupy) in [https://github.com/astral-sh/ruff/pull/5638](https://togithub.com/astral-sh/ruff/pull/5638) - Avoid triggering `unnecessary-map` (`C417`) for late-bound lambdas by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5520](https://togithub.com/astral-sh/ruff/pull/5520) - Avoid triggering DTZ001-006 when using `.astimezone()` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5524](https://togithub.com/astral-sh/ruff/pull/5524) - Enable attribute lookups via semantic model by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5536](https://togithub.com/astral-sh/ruff/pull/5536) - Avoid syntax errors when rewriting str(dict) in f-strings by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5538](https://togithub.com/astral-sh/ruff/pull/5538) - Differentiate between runtime and typing-time annotations by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5575](https://togithub.com/astral-sh/ruff/pull/5575) - Only run pyproject.toml lint rules when enabled by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5578](https://togithub.com/astral-sh/ruff/pull/5578) - Refactor isort directive skips to use iterators by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5623](https://togithub.com/astral-sh/ruff/pull/5623) - Allow descriptor instantiations in dataclass fields by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5537](https://togithub.com/astral-sh/ruff/pull/5537) - Refactor `noqa` directive parsing away from regex-based implementation by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5554](https://togithub.com/astral-sh/ruff/pull/5554) - Emit warnings for invalid `# noqa` directives by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5571](https://togithub.com/astral-sh/ruff/pull/5571) - Support individual codes on `# flake8: noqa` directives by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5618](https://togithub.com/astral-sh/ruff/pull/5618) - Add `tkinter` import convention by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5626](https://togithub.com/astral-sh/ruff/pull/5626) - Avoid `PERF401` if conditional depends on list var by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5603](https://togithub.com/astral-sh/ruff/pull/5603) - Fix typo in complex-if-statement-in-stub message by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5635](https://togithub.com/astral-sh/ruff/pull/5635) - Make TRY301 trigger only if a `raise` throws a caught exception by [@​evanrittenhouse](https://togithub.com/evanrittenhouse) in [https://github.com/astral-sh/ruff/pull/5455](https://togithub.com/astral-sh/ruff/pull/5455) - Skip flake8-future-annotations checks in stub files by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5652](https://togithub.com/astral-sh/ruff/pull/5652) - Always allow PEP 585 and PEP 604 rewrites in stub files by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5653](https://togithub.com/astral-sh/ruff/pull/5653) - Add support for `Union` declarations without `|` to PYI016 by [@​zanieb](https://togithub.com/zanieb) in [https://github.com/astral-sh/ruff/pull/5598](https://togithub.com/astral-sh/ruff/pull/5598) - Ignore `_name_` and `_value_` accesses in `flake8-self` rules by [@​monosans](https://togithub.com/monosans) in [https://github.com/astral-sh/ruff/pull/5663](https://togithub.com/astral-sh/ruff/pull/5663) - Refactor `repeated_keys()` to use `ComparableExpr` by [@​qdegraaf](https://togithub.com/qdegraaf) in [https://github.com/astral-sh/ruff/pull/5696](https://togithub.com/astral-sh/ruff/pull/5696) #### New Contributors - [@​karosis88](https://togithub.com/karosis88) made their first contribution in [https://github.com/astral-sh/ruff/pull/5560](https://togithub.com/astral-sh/ruff/pull/5560) - [@​petermattia](https://togithub.com/petermattia) made their first contribution in [https://github.com/astral-sh/ruff/pull/5579](https://togithub.com/astral-sh/ruff/pull/5579) - [@​DimitriPapadopoulos](https://togithub.com/DimitriPapadopoulos) made their first contribution in [https://github.com/astral-sh/ruff/pull/5607](https://togithub.com/astral-sh/ruff/pull/5607) **Full Changelog**: astral-sh/ruff@v0.0.277...v0.0.278 </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://developer.mend.io/github/ixm-one/pytest-cmake-presets). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi41LjMiLCJ1cGRhdGVkSW5WZXIiOiIzNi41LjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=--> Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
jankatins
referenced
this pull request
in jankatins/pr-workflow-example
Jul 12, 2023
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [ruff](https://beta.ruff.rs/docs) ([source](https://togithub.com/astral-sh/ruff), [changelog](https://togithub.com/astral-sh/ruff/releases)) | `0.0.277` -> `0.0.278` | [![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.278/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.278/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.278/compatibility-slim/0.0.277)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.278/confidence-slim/0.0.277)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>astral-sh/ruff (ruff)</summary> ### [`v0.0.278`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.278) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.0.277...v0.0.278) <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### Rules - \[`pylint`] Implement `typevar-bivariance` (`PLC0131`) by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5517](https://togithub.com/astral-sh/ruff/pull/5517) - \[`flake8-pyi`] Implement `unnecessary-literal-union` (`PYI030`) by [@​zanieb](https://togithub.com/zanieb) in [https://github.com/astral-sh/ruff/pull/5570](https://togithub.com/astral-sh/ruff/pull/5570) - \[`pylint`] Implement `type-name-incorrect-variance` (`PLC0105`) by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5651](https://togithub.com/astral-sh/ruff/pull/5651) - \[`ruff`] Implement `unnecessary-list-allocation-for-first-element` (`RUF015`) by [@​evanrittenhouse](https://togithub.com/evanrittenhouse) in [https://github.com/astral-sh/ruff/pull/5549](https://togithub.com/astral-sh/ruff/pull/5549) - \[`flake8-bugbear`] Implement `re-sub-positional-args` (`B034`) by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5669](https://togithub.com/astral-sh/ruff/pull/5669) - \[`ruff`] Implement `invalid-index-type` (`RUF016`) by [@​zanieb](https://togithub.com/zanieb) in [https://github.com/astral-sh/ruff/pull/5602](https://togithub.com/astral-sh/ruff/pull/5602) ##### Settings - \[`isort`] Add `--case-sensitive` flag by [@​qdegraaf](https://togithub.com/qdegraaf) in [https://github.com/astral-sh/ruff/pull/5539](https://togithub.com/astral-sh/ruff/pull/5539) - \[`isort`] Support globbing in `isort` options by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5473](https://togithub.com/astral-sh/ruff/pull/5473) ##### Bug Fixes - Support autofix for some multiline `str.format` calls by [@​harupy](https://togithub.com/harupy) in [https://github.com/astral-sh/ruff/pull/5638](https://togithub.com/astral-sh/ruff/pull/5638) - Avoid triggering `unnecessary-map` (`C417`) for late-bound lambdas by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5520](https://togithub.com/astral-sh/ruff/pull/5520) - Avoid triggering DTZ001-006 when using `.astimezone()` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5524](https://togithub.com/astral-sh/ruff/pull/5524) - Enable attribute lookups via semantic model by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5536](https://togithub.com/astral-sh/ruff/pull/5536) - Avoid syntax errors when rewriting str(dict) in f-strings by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5538](https://togithub.com/astral-sh/ruff/pull/5538) - Differentiate between runtime and typing-time annotations by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5575](https://togithub.com/astral-sh/ruff/pull/5575) - Only run pyproject.toml lint rules when enabled by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5578](https://togithub.com/astral-sh/ruff/pull/5578) - Refactor isort directive skips to use iterators by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5623](https://togithub.com/astral-sh/ruff/pull/5623) - Allow descriptor instantiations in dataclass fields by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5537](https://togithub.com/astral-sh/ruff/pull/5537) - Refactor `noqa` directive parsing away from regex-based implementation by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5554](https://togithub.com/astral-sh/ruff/pull/5554) - Emit warnings for invalid `# noqa` directives by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5571](https://togithub.com/astral-sh/ruff/pull/5571) - Support individual codes on `# flake8: noqa` directives by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5618](https://togithub.com/astral-sh/ruff/pull/5618) - Add `tkinter` import convention by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5626](https://togithub.com/astral-sh/ruff/pull/5626) - Avoid `PERF401` if conditional depends on list var by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5603](https://togithub.com/astral-sh/ruff/pull/5603) - Fix typo in complex-if-statement-in-stub message by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5635](https://togithub.com/astral-sh/ruff/pull/5635) - Make TRY301 trigger only if a `raise` throws a caught exception by [@​evanrittenhouse](https://togithub.com/evanrittenhouse) in [https://github.com/astral-sh/ruff/pull/5455](https://togithub.com/astral-sh/ruff/pull/5455) - Skip flake8-future-annotations checks in stub files by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5652](https://togithub.com/astral-sh/ruff/pull/5652) - Always allow PEP 585 and PEP 604 rewrites in stub files by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5653](https://togithub.com/astral-sh/ruff/pull/5653) - Add support for `Union` declarations without `|` to PYI016 by [@​zanieb](https://togithub.com/zanieb) in [https://github.com/astral-sh/ruff/pull/5598](https://togithub.com/astral-sh/ruff/pull/5598) - Ignore `_name_` and `_value_` accesses in `flake8-self` rules by [@​monosans](https://togithub.com/monosans) in [https://github.com/astral-sh/ruff/pull/5663](https://togithub.com/astral-sh/ruff/pull/5663) - Refactor `repeated_keys()` to use `ComparableExpr` by [@​qdegraaf](https://togithub.com/qdegraaf) in [https://github.com/astral-sh/ruff/pull/5696](https://togithub.com/astral-sh/ruff/pull/5696) #### New Contributors - [@​karosis88](https://togithub.com/karosis88) made their first contribution in [https://github.com/astral-sh/ruff/pull/5560](https://togithub.com/astral-sh/ruff/pull/5560) - [@​petermattia](https://togithub.com/petermattia) made their first contribution in [https://github.com/astral-sh/ruff/pull/5579](https://togithub.com/astral-sh/ruff/pull/5579) - [@​DimitriPapadopoulos](https://togithub.com/DimitriPapadopoulos) made their first contribution in [https://github.com/astral-sh/ruff/pull/5607](https://togithub.com/astral-sh/ruff/pull/5607) **Full Changelog**: astral-sh/ruff@v0.0.277...v0.0.278 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **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://developer.mend.io/github/jankatins/pr-workflow-example). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi41LjMiLCJ1cGRhdGVkSW5WZXIiOiIzNi41LjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->
renovate bot
referenced
this pull request
in allenporter/pyrainbird
Jul 14, 2023
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [ruff](https://beta.ruff.rs/docs) ([source](https://togithub.com/astral-sh/ruff), [changelog](https://togithub.com/astral-sh/ruff/releases)) | `==0.0.277` -> `==0.0.278` | [![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.278/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.278/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.278/compatibility-slim/0.0.277)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.278/confidence-slim/0.0.277)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>astral-sh/ruff (ruff)</summary> ### [`v0.0.278`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.278) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.0.277...v0.0.278) <!-- Release notes generated using configuration in .github/release.yml at main --> See the [release blog post](https://astral.sh/blog/ruff-v0.0.278) for more, including detailed descriptions of any newly added rules. #### What's Changed ##### Rules - \[`pylint`] Implement `typevar-bivariance` (`PLC0131`) by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5517](https://togithub.com/astral-sh/ruff/pull/5517) - \[`flake8-pyi`] Implement `unnecessary-literal-union` (`PYI030`) by [@​zanieb](https://togithub.com/zanieb) in [https://github.com/astral-sh/ruff/pull/5570](https://togithub.com/astral-sh/ruff/pull/5570) - \[`pylint`] Implement `type-name-incorrect-variance` (`PLC0105`) by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5651](https://togithub.com/astral-sh/ruff/pull/5651) - \[`ruff`] Implement `unnecessary-list-allocation-for-first-element` (`RUF015`) by [@​evanrittenhouse](https://togithub.com/evanrittenhouse) in [https://github.com/astral-sh/ruff/pull/5549](https://togithub.com/astral-sh/ruff/pull/5549) - \[`flake8-bugbear`] Implement `re-sub-positional-args` (`B034`) by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5669](https://togithub.com/astral-sh/ruff/pull/5669) - \[`ruff`] Implement `invalid-index-type` (`RUF016`) by [@​zanieb](https://togithub.com/zanieb) in [https://github.com/astral-sh/ruff/pull/5602](https://togithub.com/astral-sh/ruff/pull/5602) ##### Settings - \[`isort`] Add `--case-sensitive` flag by [@​qdegraaf](https://togithub.com/qdegraaf) in [https://github.com/astral-sh/ruff/pull/5539](https://togithub.com/astral-sh/ruff/pull/5539) - \[`isort`] Support globbing in `isort` options by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5473](https://togithub.com/astral-sh/ruff/pull/5473) ##### Bug Fixes - Support autofix for some multiline `str.format` calls by [@​harupy](https://togithub.com/harupy) in [https://github.com/astral-sh/ruff/pull/5638](https://togithub.com/astral-sh/ruff/pull/5638) - Avoid triggering `unnecessary-map` (`C417`) for late-bound lambdas by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5520](https://togithub.com/astral-sh/ruff/pull/5520) - Avoid triggering DTZ001-006 when using `.astimezone()` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5524](https://togithub.com/astral-sh/ruff/pull/5524) - Enable attribute lookups via semantic model by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5536](https://togithub.com/astral-sh/ruff/pull/5536) - Avoid syntax errors when rewriting str(dict) in f-strings by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5538](https://togithub.com/astral-sh/ruff/pull/5538) - Differentiate between runtime and typing-time annotations by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5575](https://togithub.com/astral-sh/ruff/pull/5575) - Only run pyproject.toml lint rules when enabled by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5578](https://togithub.com/astral-sh/ruff/pull/5578) - Refactor isort directive skips to use iterators by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5623](https://togithub.com/astral-sh/ruff/pull/5623) - Allow descriptor instantiations in dataclass fields by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5537](https://togithub.com/astral-sh/ruff/pull/5537) - Refactor `noqa` directive parsing away from regex-based implementation by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5554](https://togithub.com/astral-sh/ruff/pull/5554) - Emit warnings for invalid `# noqa` directives by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5571](https://togithub.com/astral-sh/ruff/pull/5571) - Support individual codes on `# flake8: noqa` directives by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5618](https://togithub.com/astral-sh/ruff/pull/5618) - Add `tkinter` import convention by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5626](https://togithub.com/astral-sh/ruff/pull/5626) - Avoid `PERF401` if conditional depends on list var by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5603](https://togithub.com/astral-sh/ruff/pull/5603) - Fix typo in complex-if-statement-in-stub message by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5635](https://togithub.com/astral-sh/ruff/pull/5635) - Make TRY301 trigger only if a `raise` throws a caught exception by [@​evanrittenhouse](https://togithub.com/evanrittenhouse) in [https://github.com/astral-sh/ruff/pull/5455](https://togithub.com/astral-sh/ruff/pull/5455) - Skip flake8-future-annotations checks in stub files by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5652](https://togithub.com/astral-sh/ruff/pull/5652) - Always allow PEP 585 and PEP 604 rewrites in stub files by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5653](https://togithub.com/astral-sh/ruff/pull/5653) - Add support for `Union` declarations without `|` to PYI016 by [@​zanieb](https://togithub.com/zanieb) in [https://github.com/astral-sh/ruff/pull/5598](https://togithub.com/astral-sh/ruff/pull/5598) - Ignore `_name_` and `_value_` accesses in `flake8-self` rules by [@​monosans](https://togithub.com/monosans) in [https://github.com/astral-sh/ruff/pull/5663](https://togithub.com/astral-sh/ruff/pull/5663) - Refactor `repeated_keys()` to use `ComparableExpr` by [@​qdegraaf](https://togithub.com/qdegraaf) in [https://github.com/astral-sh/ruff/pull/5696](https://togithub.com/astral-sh/ruff/pull/5696) #### New Contributors - [@​karosis88](https://togithub.com/karosis88) made their first contribution in [https://github.com/astral-sh/ruff/pull/5560](https://togithub.com/astral-sh/ruff/pull/5560) - [@​petermattia](https://togithub.com/petermattia) made their first contribution in [https://github.com/astral-sh/ruff/pull/5579](https://togithub.com/astral-sh/ruff/pull/5579) - [@​DimitriPapadopoulos](https://togithub.com/DimitriPapadopoulos) made their first contribution in [https://github.com/astral-sh/ruff/pull/5607](https://togithub.com/astral-sh/ruff/pull/5607) **Full Changelog**: astral-sh/ruff@v0.0.277...v0.0.278 </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://developer.mend.io/github/allenporter/pyrainbird). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi41LjMiLCJ1cGRhdGVkSW5WZXIiOiIzNi41LjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot
referenced
this pull request
in allenporter/flux-local
Jul 15, 2023
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [ruff](https://beta.ruff.rs/docs) ([source](https://togithub.com/astral-sh/ruff), [changelog](https://togithub.com/astral-sh/ruff/releases)) | `==0.0.275` -> `==0.0.278` | [![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.278/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.278/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.278/compatibility-slim/0.0.275)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.278/confidence-slim/0.0.275)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>astral-sh/ruff (ruff)</summary> ### [`v0.0.278`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.278) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.0.277...v0.0.278) <!-- Release notes generated using configuration in .github/release.yml at main --> See the [release blog post](https://astral.sh/blog/ruff-v0.0.278) for more, including detailed descriptions of any newly added rules. #### What's Changed ##### Rules - \[`pylint`] Implement `typevar-bivariance` (`PLC0131`) by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5517](https://togithub.com/astral-sh/ruff/pull/5517) - \[`flake8-pyi`] Implement `unnecessary-literal-union` (`PYI030`) by [@​zanieb](https://togithub.com/zanieb) in [https://github.com/astral-sh/ruff/pull/5570](https://togithub.com/astral-sh/ruff/pull/5570) - \[`pylint`] Implement `type-name-incorrect-variance` (`PLC0105`) by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5651](https://togithub.com/astral-sh/ruff/pull/5651) - \[`ruff`] Implement `unnecessary-list-allocation-for-first-element` (`RUF015`) by [@​evanrittenhouse](https://togithub.com/evanrittenhouse) in [https://github.com/astral-sh/ruff/pull/5549](https://togithub.com/astral-sh/ruff/pull/5549) - \[`flake8-bugbear`] Implement `re-sub-positional-args` (`B034`) by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5669](https://togithub.com/astral-sh/ruff/pull/5669) - \[`ruff`] Implement `invalid-index-type` (`RUF016`) by [@​zanieb](https://togithub.com/zanieb) in [https://github.com/astral-sh/ruff/pull/5602](https://togithub.com/astral-sh/ruff/pull/5602) ##### Settings - \[`isort`] Add `--case-sensitive` flag by [@​qdegraaf](https://togithub.com/qdegraaf) in [https://github.com/astral-sh/ruff/pull/5539](https://togithub.com/astral-sh/ruff/pull/5539) - \[`isort`] Support globbing in `isort` options by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5473](https://togithub.com/astral-sh/ruff/pull/5473) ##### Bug Fixes - Support autofix for some multiline `str.format` calls by [@​harupy](https://togithub.com/harupy) in [https://github.com/astral-sh/ruff/pull/5638](https://togithub.com/astral-sh/ruff/pull/5638) - Avoid triggering `unnecessary-map` (`C417`) for late-bound lambdas by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5520](https://togithub.com/astral-sh/ruff/pull/5520) - Avoid triggering DTZ001-006 when using `.astimezone()` by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5524](https://togithub.com/astral-sh/ruff/pull/5524) - Enable attribute lookups via semantic model by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5536](https://togithub.com/astral-sh/ruff/pull/5536) - Avoid syntax errors when rewriting str(dict) in f-strings by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5538](https://togithub.com/astral-sh/ruff/pull/5538) - Differentiate between runtime and typing-time annotations by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5575](https://togithub.com/astral-sh/ruff/pull/5575) - Only run pyproject.toml lint rules when enabled by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5578](https://togithub.com/astral-sh/ruff/pull/5578) - Refactor isort directive skips to use iterators by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5623](https://togithub.com/astral-sh/ruff/pull/5623) - Allow descriptor instantiations in dataclass fields by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5537](https://togithub.com/astral-sh/ruff/pull/5537) - Refactor `noqa` directive parsing away from regex-based implementation by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5554](https://togithub.com/astral-sh/ruff/pull/5554) - Emit warnings for invalid `# noqa` directives by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5571](https://togithub.com/astral-sh/ruff/pull/5571) - Support individual codes on `# flake8: noqa` directives by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5618](https://togithub.com/astral-sh/ruff/pull/5618) - Add `tkinter` import convention by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5626](https://togithub.com/astral-sh/ruff/pull/5626) - Avoid `PERF401` if conditional depends on list var by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5603](https://togithub.com/astral-sh/ruff/pull/5603) - Fix typo in complex-if-statement-in-stub message by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5635](https://togithub.com/astral-sh/ruff/pull/5635) - Make TRY301 trigger only if a `raise` throws a caught exception by [@​evanrittenhouse](https://togithub.com/evanrittenhouse) in [https://github.com/astral-sh/ruff/pull/5455](https://togithub.com/astral-sh/ruff/pull/5455) - Skip flake8-future-annotations checks in stub files by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5652](https://togithub.com/astral-sh/ruff/pull/5652) - Always allow PEP 585 and PEP 604 rewrites in stub files by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5653](https://togithub.com/astral-sh/ruff/pull/5653) - Add support for `Union` declarations without `|` to PYI016 by [@​zanieb](https://togithub.com/zanieb) in [https://github.com/astral-sh/ruff/pull/5598](https://togithub.com/astral-sh/ruff/pull/5598) - Ignore `_name_` and `_value_` accesses in `flake8-self` rules by [@​monosans](https://togithub.com/monosans) in [https://github.com/astral-sh/ruff/pull/5663](https://togithub.com/astral-sh/ruff/pull/5663) - Refactor `repeated_keys()` to use `ComparableExpr` by [@​qdegraaf](https://togithub.com/qdegraaf) in [https://github.com/astral-sh/ruff/pull/5696](https://togithub.com/astral-sh/ruff/pull/5696) #### New Contributors - [@​karosis88](https://togithub.com/karosis88) made their first contribution in [https://github.com/astral-sh/ruff/pull/5560](https://togithub.com/astral-sh/ruff/pull/5560) - [@​petermattia](https://togithub.com/petermattia) made their first contribution in [https://github.com/astral-sh/ruff/pull/5579](https://togithub.com/astral-sh/ruff/pull/5579) - [@​DimitriPapadopoulos](https://togithub.com/DimitriPapadopoulos) made their first contribution in [https://github.com/astral-sh/ruff/pull/5607](https://togithub.com/astral-sh/ruff/pull/5607) **Full Changelog**: astral-sh/ruff@v0.0.277...v0.0.278 ### [`v0.0.277`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.277) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.0.276...v0.0.277) <!-- Release notes generated using configuration in .github/release.yml at v0.0.277 --> #### What's Changed ##### Breaking Changes - Add .ipynb_checkpoints, .pyenv, .pytest_cache, and .vscode to default excludes by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5513](https://togithub.com/astral-sh/ruff/pull/5513) ##### Rules - \[`pylint`] Implement Pylint `typevar-name-mismatch` (`C0132`) by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5501](https://togithub.com/astral-sh/ruff/pull/5501) ##### Settings - Add `ruff rule --all` subcommand (with JSON output) by [@​akx](https://togithub.com/akx) in [https://github.com/astral-sh/ruff/pull/5059](https://togithub.com/astral-sh/ruff/pull/5059) ##### Bug Fixes - Fix eval detection for suspicious-eval-usage by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5506](https://togithub.com/astral-sh/ruff/pull/5506) - Avoid PERF rules for iteration-dependent assignments by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5508](https://togithub.com/astral-sh/ruff/pull/5508) - Avoid returning first-match for rule prefixes by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5511](https://togithub.com/astral-sh/ruff/pull/5511) **Full Changelog**: astral-sh/ruff@v0.0.276...v0.0.277 ### [`v0.0.276`](https://togithub.com/astral-sh/ruff/releases/tag/v0.0.276) [Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.0.275...v0.0.276) <!-- Release notes generated using configuration in .github/release.yml at v0.0.276 --> See the [release blog post](https://astral.sh/blog/ruff-v0.0.276) for more, including detailed descriptions of any newly added rules. #### What's Changed Highlights include: experimental support for linting Jupyter Notebooks. To opt-in to linting Jupyter Notebook files, add the `*.ipynb` pattern to your [`include`](settings.md#include) setting, like so: ```toml [tool.ruff] ### Allow Ruff to discover `*.ipynb` files. include = ["*.py", "*.pyi", "**/pyproject.toml", "*.ipynb"] ``` This will prompt Ruff to discover Jupyter Notebook files in any specified directories, and lint them accordingly. Jupyter Notebook support is currently opt-in and experimental. We'd love your help testing it out. Have feedback? Run into issues? [Let us know!](https://togithub.com/astral-sh/ruff/issues/new) ##### New Rules - \[`flake8-pyi`] Implement `PYI002`, `PYI003`, `PYI004`, `PYI005` by [@​density](https://togithub.com/density) in [https://github.com/astral-sh/ruff/pull/5457](https://togithub.com/astral-sh/ruff/pull/5457) - \[`numpy`] Implement `numpy-deprecated-function` (`NPY003`) by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5468](https://togithub.com/astral-sh/ruff/pull/5468) - \[`perflint`] Implement `unnecessary-list-cast` (`PERF101`) by [@​qdegraaf](https://togithub.com/qdegraaf) in [https://github.com/astral-sh/ruff/pull/5121](https://togithub.com/astral-sh/ruff/pull/5121) - \[`perflint`] Implement `try-except-in-loop` (`PERF203`) by [@​evanrittenhouse](https://togithub.com/evanrittenhouse) in [https://github.com/astral-sh/ruff/pull/5166](https://togithub.com/astral-sh/ruff/pull/5166) - \[`perflint`] Implement `manual-list-comprehension` (`PERF401`) and `manual-list-copy` (`PERF402`) rules by [@​qdegraaf](https://togithub.com/qdegraaf) in [https://github.com/astral-sh/ruff/pull/5298](https://togithub.com/astral-sh/ruff/pull/5298) - \[`pylint`] Implement Pylint `single-string-used-for-slots` (`C0205`) as `single-string-slots` (`PLC0205`) by [@​tjkuson](https://togithub.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/5399](https://togithub.com/astral-sh/ruff/pull/5399) ##### Jupyter - Experimental release for Jupyter notebook integration by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5363](https://togithub.com/astral-sh/ruff/pull/5363) - Enable --watch for Jupyter notebooks by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5394](https://togithub.com/astral-sh/ruff/pull/5394) - Consider Jupyter index for code frames (`--show-source`) by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5402](https://togithub.com/astral-sh/ruff/pull/5402) - fixup! Consider Jupyter index for code frames (`--show-source`) ([#​5402](https://togithub.com/astral-sh/ruff/issues/5402)) by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5414](https://togithub.com/astral-sh/ruff/pull/5414) ##### Settings - \[`pyupgrade`] Restore the `keep-runtime-typing` setting by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5470](https://togithub.com/astral-sh/ruff/pull/5470) - Add `PythonVersion::Py312` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5316](https://togithub.com/astral-sh/ruff/pull/5316) ##### Bug Fixes - Support `pydantic.BaseSettings` in `mutable-class-default` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5312](https://togithub.com/astral-sh/ruff/pull/5312) - Allow `__slots__` assignments in `mutable-class-default` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5314](https://togithub.com/astral-sh/ruff/pull/5314) - Avoid syntax errors when removing f-string prefixes by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5319](https://togithub.com/astral-sh/ruff/pull/5319) - Ignore unpacking in `iteration-over-set` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5392](https://togithub.com/astral-sh/ruff/pull/5392) - Replace same length equal line with dash line in D407 by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5383](https://togithub.com/astral-sh/ruff/pull/5383) - Exclude docstrings from PYI053 by [@​intgr](https://togithub.com/intgr) in [https://github.com/astral-sh/ruff/pull/5405](https://togithub.com/astral-sh/ruff/pull/5405) - Use "manual" fixability for E731 in shadowed context by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5430](https://togithub.com/astral-sh/ruff/pull/5430) - Detect consecutive, non-newline-delimited NumPy sections by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5467](https://togithub.com/astral-sh/ruff/pull/5467) - Fix `unnecessary-encode-utf8` to fix `encode` on parenthesized strings correctly by [@​harupy](https://togithub.com/harupy) in [https://github.com/astral-sh/ruff/pull/5478](https://togithub.com/astral-sh/ruff/pull/5478) - Allow `Final` assignments in stubs by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5490](https://togithub.com/astral-sh/ruff/pull/5490) - Respect `abc` decorators when classifying function types by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5315](https://togithub.com/astral-sh/ruff/pull/5315) - Allow `@Author` format for "Missing Author" rule in `flake8-todos` by [@​mayrholu](https://togithub.com/mayrholu) in [https://github.com/astral-sh/ruff/pull/4903](https://togithub.com/astral-sh/ruff/pull/4903) - Ignore type aliases for RUF013 by [@​dhruvmanila](https://togithub.com/dhruvmanila) in [https://github.com/astral-sh/ruff/pull/5344](https://togithub.com/astral-sh/ruff/pull/5344) - Change W605 autofix to use raw strings if possible by [@​hauntsaninja](https://togithub.com/hauntsaninja) in [https://github.com/astral-sh/ruff/pull/5352](https://togithub.com/astral-sh/ruff/pull/5352) - Add space when migrating to raw string by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5358](https://togithub.com/astral-sh/ruff/pull/5358) - Update the `invalid-escape-sequence` rule by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5359](https://togithub.com/astral-sh/ruff/pull/5359) - Include BaseException in B017 rule by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5466](https://togithub.com/astral-sh/ruff/pull/5466) - \[`flake8-django`] Skip duplicate violations in `DJ012` by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/5469](https://togithub.com/astral-sh/ruff/pull/5469) #### New Contributors - [@​mayrholu](https://togithub.com/mayrholu) made their first contribution in [https://github.com/astral-sh/ruff/pull/4903](https://togithub.com/astral-sh/ruff/pull/4903) - [@​hauntsaninja](https://togithub.com/hauntsaninja) made their first contribution in [https://github.com/astral-sh/ruff/pull/5352](https://togithub.com/astral-sh/ruff/pull/5352) - [@​ethunk](https://togithub.com/ethunk) made their first contribution in [https://github.com/astral-sh/ruff/pull/5397](https://togithub.com/astral-sh/ruff/pull/5397) - [@​LouisDISPA](https://togithub.com/LouisDISPA) made their first contribution in [https://github.com/astral-sh/ruff/pull/5475](https://togithub.com/astral-sh/ruff/pull/5475) **Full Changelog**: astral-sh/ruff@v0.0.275...v0.0.276 </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://developer.mend.io/github/allenporter/flux-local). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNTkuNyIsInVwZGF0ZWRJblZlciI6IjM2LjUuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
performance
Potential performance improvement
suppression
Related to supression of violations e.g. noqa
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
This PR removes our regex-based implementation in favor of "manual" parsing.
I tried a couple different implementations. In the benchmarks below:
Directive/Regex
is our implementation onmain
.Directive/Find
just usestext.find("noqa")
, which is insufficient, since it doesn't cover case-insensitive variants likeNOQA
, and doesn't handle multiplenoqa
matches in a single like, like# Here's a noqa comment # noqa: F401
. But it's kind of a baseline.Directive/Memchr
uses threememchr
iterative finders (one fornoqa
,NOQA
, andNoQA
).Directive/AhoCorasick
is roughly the variant checked-in here.The raw results:
While memchr is faster than aho-corasick in some of the common cases (like
# noqa: F401
), the latter is way, way faster when there isn't a match (like 2x faster -- see the last two cases). Since most comments aren'tnoqa
comments, this felt like the right tradeoff. Note that all implementations are significantly faster than the regex version.(I know I originally reported a 10x speedup, but I ended up improving the regex version a bit in some prior PRs, so it got unintentionally faster via some refactors.)
There's also one behavior change in here, which is that we now allow variable spaces, e.g.,
#noqa
or# noqa
. Previously, we required exactly one space. This thus closes #5177.