-
Notifications
You must be signed in to change notification settings - Fork 944
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
[pycodestyle] trailing-whitespace, blank-line-contains-whitespace (W291, W293) #3122
[pycodestyle] trailing-whitespace, blank-line-contains-whitespace (W291, W293) #3122
Conversation
31d39c1
to
066f97b
Compare
Is this code Unicode-safe? Rust strings behave in unexpected ways when there are Unicode characters, and there are in fact a few whitespace characters that are non-ASCII (e.g. '\u{A0}'). For example, if Unicode characters are present, the byte count does not equal the character count, so
May be worth adding some tests with UTF-8 encoded (as that's Python's default encoding) lines with some whitespace and non-whitespace Unicode characters to do some TDD and make sure everything works as expected. |
( |
066f97b
to
c620aff
Compare
Looking good, thank you! |
It appears that characters such as This does however raise an interesting point; it appears that |
Yeah I did read that source and asked myself the same question. I was originally going to comment that this shouldn't be done on physical lines for that very reason RE multiline strings, but then saw that pycodestyle was using physical lines so I just ignored it. (FWIW we could omit lines that are included in multiline strings -- we'd probably want to track those lines on |
Aha, good to know! For what it's worth, Another consideration in favor of continuing to use I can't imagine |
Yeah that's a good argument in favor of keeping it as-is. Honestly I could go either way -- I'll defer to the author in this case @mknaw, totally up to you. |
https://github.com/python/cpython/blob/main/Parser/tokenizer.c#L1597 /* Skip spaces */
do {
c = tok_nextc(tok);
} while (c == ' ' || c == '\t' || c == '\014'); \014 is Control-L (formfeed). |
@mknaw - I say we merge this as-is -- ok with you? Wdyt? |
Sounds reasonable to me 👍 |
[![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://togithub.com/charliermarsh/ruff) | `^0.0.252` -> `^0.0.253` | [![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.253/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.253/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.253/compatibility-slim/0.0.252)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.253/confidence-slim/0.0.252)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>charliermarsh/ruff</summary> ### [`v0.0.253`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.253) [Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.252...v0.0.253) <!-- Release notes generated using configuration in .github/release.yml at 386ca7c9a1bb7ebeb1457b605695c6a09e67092b --> #### What's Changed ##### Rules - \[`pyupgrade`] Avoid rewriting any PEP 604 runtime annotations by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3217 - \[`pycodestyle`] Missing whitespace after keyword by [@​carlosmiei](https://togithub.com/carlosmiei) in [astral-sh/ruff#3225 - \[`pycodestyle`] trailing-whitespace, blank-line-contains-whitespace (W291, W293) by [@​mknaw](https://togithub.com/mknaw) in [astral-sh/ruff#3122 - \[`flake8-pyi`]: PYI009, PYI010, PYI021 by [@​sbdchd](https://togithub.com/sbdchd) in [astral-sh/ruff#3230 - \[`flake8-pyi`]: PYI011, PYI014 by [@​sbdchd](https://togithub.com/sbdchd) in [astral-sh/ruff#3238 - \[`flake8-django`] DJ003, DJ006, DJ007 by [@​lkh42t](https://togithub.com/lkh42t) in [astral-sh/ruff#3236 - \[`pylint`] Implement pylint's `else-if-used` rule (`PLR5501`) by [@​chanman3388](https://togithub.com/chanman3388) in [astral-sh/ruff#3231 - \[`pylint`] W0603: global-statement by [@​igozali](https://togithub.com/igozali) in [astral-sh/ruff#3227 - \[`flake8-pie`] Unnecessary list comprehension, with autofix (PIE802) by [@​matthewlloyd](https://togithub.com/matthewlloyd) in [astral-sh/ruff#3149 ##### Settings - Allow ruff.toml file to be dot-prefixed (as .ruff.toml) by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3221 - \[`pydocstyle`]: Implement `ignore-decorators` by [@​edgarrmondragon](https://togithub.com/edgarrmondragon) in [astral-sh/ruff#3229 ##### Bug Fixes - Avoid suggesting 'is' for constant literals by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3146 - Omit non-.py\[i] files from module naming rules by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3153 - Bind star patterns in match statements by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3169 - Update RustPython to support \*tuple annotations by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3178 - Use `writeln` with --show-settings by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3180 - Avoid boolean-trap rules for ConfigParser get() methods by [@​monosans](https://togithub.com/monosans) in [astral-sh/ruff#3209 - Avoid flagging logging-too-few-args with no arguments by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3220 - Expand the range of the COM812 autofix to include the preceding token by [@​matthewlloyd](https://togithub.com/matthewlloyd) in [astral-sh/ruff#3241 - Avoid flagging Pylint logging rules with starred arguments by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3244 - Avoid flagging unfixable `TypedDict` and `NamedTuple` definitions by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3148 - Fix ExceptionGroup F821 false positive by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [astral-sh/ruff#3167 - Avoid autofixing some PT violations when comments are present by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3198 - Exclude globsets for --show-settings by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3201 - \[`flake8-tidy-imports`] fix autofix for relative imports by [@​sciyoshi](https://togithub.com/sciyoshi) in [astral-sh/ruff#3197 - Fix Markdown errors in docs by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [astral-sh/ruff#3187 - Normalize treatment of aliased and unaliased imports by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3216 - Avoid EXE001 and EXE002 errors from stdin input by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3218 - \[bandit]: Do not treat "passed" as "password" for `S105`/`S106`/`S107` by [@​edgarrmondragon](https://togithub.com/edgarrmondragon) in [astral-sh/ruff#3222 #### New Contributors - [@​mknaw](https://togithub.com/mknaw) made their first contribution in [astral-sh/ruff#3122 - [@​monosans](https://togithub.com/monosans) made their first contribution in [astral-sh/ruff#3209 - [@​lkh42t](https://togithub.com/lkh42t) made their first contribution in [astral-sh/ruff#3236 - [@​igozali](https://togithub.com/igozali) made their first contribution in [astral-sh/ruff#3227 **Full Changelog**: astral-sh/ruff@v0.0.252...v0.0.253 </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:eyJjcmVhdGVkSW5WZXIiOiIzNC4xNTIuNSIsInVwZGF0ZWRJblZlciI6IjM0LjE1Mi41In0=--> Signed-off-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![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://togithub.com/charliermarsh/ruff) | `==0.0.247` -> `==0.0.253` | [![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.253/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.253/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.253/compatibility-slim/0.0.247)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.253/confidence-slim/0.0.247)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>charliermarsh/ruff</summary> ### [`v0.0.253`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.253) [Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.252...v0.0.253) <!-- Release notes generated using configuration in .github/release.yml at 386ca7c9a1bb7ebeb1457b605695c6a09e67092b --> #### What's Changed ##### Rules - \[`pyupgrade`] Avoid rewriting any PEP 604 runtime annotations by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3217 - \[`pycodestyle`] Missing whitespace after keyword by [@​carlosmiei](https://togithub.com/carlosmiei) in [astral-sh/ruff#3225 - \[`pycodestyle`] trailing-whitespace, blank-line-contains-whitespace (W291, W293) by [@​mknaw](https://togithub.com/mknaw) in [astral-sh/ruff#3122 - \[`flake8-pyi`]: PYI009, PYI010, PYI021 by [@​sbdchd](https://togithub.com/sbdchd) in [astral-sh/ruff#3230 - \[`flake8-pyi`]: PYI011, PYI014 by [@​sbdchd](https://togithub.com/sbdchd) in [astral-sh/ruff#3238 - \[`flake8-django`] DJ003, DJ006, DJ007 by [@​lkh42t](https://togithub.com/lkh42t) in [astral-sh/ruff#3236 - \[`pylint`] Implement pylint's `else-if-used` rule (`PLR5501`) by [@​chanman3388](https://togithub.com/chanman3388) in [astral-sh/ruff#3231 - \[`pylint`] W0603: global-statement by [@​igozali](https://togithub.com/igozali) in [astral-sh/ruff#3227 - \[`flake8-pie`] Unnecessary list comprehension, with autofix (PIE802) by [@​matthewlloyd](https://togithub.com/matthewlloyd) in [astral-sh/ruff#3149 ##### Settings - Allow ruff.toml file to be dot-prefixed (as .ruff.toml) by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3221 - \[`pydocstyle`]: Implement `ignore-decorators` by [@​edgarrmondragon](https://togithub.com/edgarrmondragon) in [astral-sh/ruff#3229 ##### Bug Fixes - Avoid suggesting 'is' for constant literals by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3146 - Omit non-.py\[i] files from module naming rules by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3153 - Bind star patterns in match statements by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3169 - Update RustPython to support \*tuple annotations by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3178 - Use `writeln` with --show-settings by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3180 - Avoid boolean-trap rules for ConfigParser get() methods by [@​monosans](https://togithub.com/monosans) in [astral-sh/ruff#3209 - Avoid flagging logging-too-few-args with no arguments by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3220 - Expand the range of the COM812 autofix to include the preceding token by [@​matthewlloyd](https://togithub.com/matthewlloyd) in [astral-sh/ruff#3241 - Avoid flagging Pylint logging rules with starred arguments by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3244 - Avoid flagging unfixable `TypedDict` and `NamedTuple` definitions by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3148 - Fix ExceptionGroup F821 false positive by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [astral-sh/ruff#3167 - Avoid autofixing some PT violations when comments are present by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3198 - Exclude globsets for --show-settings by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3201 - \[`flake8-tidy-imports`] fix autofix for relative imports by [@​sciyoshi](https://togithub.com/sciyoshi) in [astral-sh/ruff#3197 - Fix Markdown errors in docs by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [astral-sh/ruff#3187 - Normalize treatment of aliased and unaliased imports by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3216 - Avoid EXE001 and EXE002 errors from stdin input by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3218 - \[bandit]: Do not treat "passed" as "password" for `S105`/`S106`/`S107` by [@​edgarrmondragon](https://togithub.com/edgarrmondragon) in [astral-sh/ruff#3222 #### New Contributors - [@​mknaw](https://togithub.com/mknaw) made their first contribution in [astral-sh/ruff#3122 - [@​monosans](https://togithub.com/monosans) made their first contribution in [astral-sh/ruff#3209 - [@​lkh42t](https://togithub.com/lkh42t) made their first contribution in [astral-sh/ruff#3236 - [@​igozali](https://togithub.com/igozali) made their first contribution in [astral-sh/ruff#3227 **Full Changelog**: astral-sh/ruff@v0.0.252...v0.0.253 ### [`v0.0.252`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.252) [Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.251...v0.0.252) <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### Rules - \[`pylint`] `redefined-loop-name` (`W2901`) by [@​matthewlloyd](https://togithub.com/matthewlloyd) in [astral-sh/ruff#3022 - \[`pylint`] ` logging-too-many-args ` (`E1205`) by [@​md384](https://togithub.com/md384) in [astral-sh/ruff#3084 - \[`pylint`] ` logging-too-few-args ` (`E1206`) by [@​md384](https://togithub.com/md384) in [astral-sh/ruff#3084 ##### Bug Fixes - Include file permissions in cache key by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3104 - Skip EXE001 and EXE002 rules on Windows by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3111 - Mark `typing.assert_never` as no return by [@​bluetech](https://togithub.com/bluetech) in [astral-sh/ruff#3121 - Use file-specific quote for C408 by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3128 - Avoid match statement misidentification in token rules by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3129 - Upgrade RustPython to handle trailing commas in map patterns by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3130 - Avoid useless-else-on-loop for break within match by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3136 - Fix isort `no-lines-before` preceded by an empty section by [@​bluetech](https://togithub.com/bluetech) in [astral-sh/ruff#3139 - Support shell expansion for --config argument by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3107 - Fix =/== error in `ManualDictLookup` by [@​Rupt](https://togithub.com/Rupt) in [astral-sh/ruff#3117 - Include match in nested block check by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3137 - Upgrade RustPython to match new flattened exports by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3141 #### New Contributors - [@​md384](https://togithub.com/md384) made their first contribution in [astral-sh/ruff#3084 - [@​Rupt](https://togithub.com/Rupt) made their first contribution in [astral-sh/ruff#3117 - [@​marijncv](https://togithub.com/marijncv) made their first contribution in [astral-sh/ruff#3133 **Full Changelog**: astral-sh/ruff@v0.0.251...v0.0.252 ### [`v0.0.251`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.251) [Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.250...v0.0.251) <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### Bug Fixes - Create bindings for `MatchAs` patterns by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3098 - Avoid prefer-list-builtin for lambdas with `*args` or `**kwargs` by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3102 **Full Changelog**: astral-sh/ruff@v0.0.250...v0.0.251 ### [`v0.0.250`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.250) [Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.249...v0.0.250) <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed **Ruff now supports all Python 3.10 and 3.11 language features**, including: - Structural Pattern Patching (`match` statements) ([PEP 634](https://peps.python.org/pep-0634/#class-patterns)) - Exception Groups (`except*` statements) ([PEP 654](https://peps.python.org/pep-0654/)) ##### Rules - \[`flake8-bugbear`] Add B029 (`except-with-empty-tuple`) from flake8-bugbear by [@​carlosmiei](https://togithub.com/carlosmiei) in [astral-sh/ruff#3068 - \[`flake8-bugbear`] Add B032 (`unintentional-type-annotation`) from flake8\_bugbear by [@​carlosmiei](https://togithub.com/carlosmiei) in [astral-sh/ruff#3085 - \[`tryceratops`]: Add TRY401 (`verbose-log-messages`) by [@​colin99d](https://togithub.com/colin99d) in [astral-sh/ruff#3036 - \[`flake8-simplify`]: Add SIM116 (`manual-dict-lookup`) by [@​colin99d](https://togithub.com/colin99d) in [astral-sh/ruff#2767 ##### Features - Add support for TryStar by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3089 - Add support for structural pattern matching by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3047 ##### Bug Fixes - \[`flake8-pytest`] Use LibCST to fix chained assertions by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3087 - \[`flake8-boolean-trap`] Avoid boolean-trap rules for positional-only builtin calls by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3075 - \[`flake8-boolean-trap`] Ignore setters in flake8-boolean-trap by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3092 - \[`flake8-return`] Omit `while-True` loops from implicit return enforcement by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3076 #### New Contributors - [@​carlosmiei](https://togithub.com/carlosmiei) made their first contribution in [astral-sh/ruff#3068 **Full Changelog**: astral-sh/ruff@v0.0.249...v0.0.250 ### [`v0.0.249`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.249) [Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.248...v0.0.249) <!-- Release notes generated using configuration in .github/release.yml at 4cfa350112a82fb631909fc555588f3da8ba5750 --> #### What's Changed ##### Bug Fixes - Relax constraints on pep8-naming module validation by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3043 - Do not autofix `E731` in class bodies by [@​JoshKarpel](https://togithub.com/JoshKarpel) in [astral-sh/ruff#3050 - Avoid assert() to assert statement conversion in expressions by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3062 #### New Contributors - [@​matthewlloyd](https://togithub.com/matthewlloyd) made their first contribution in [astral-sh/ruff#3048 - [@​JoshKarpel](https://togithub.com/JoshKarpel) made their first contribution in [astral-sh/ruff#3050 **Full Changelog**: astral-sh/ruff@v0.0.248...v0.0.249 ### [`v0.0.248`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.248) [Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.247...v0.0.248) <!-- Release notes generated using configuration in .github/release.yml at main --> #### What's Changed ##### Rules - \[`numpy`] numpy-legacy-random by [@​sbrugman](https://togithub.com/sbrugman) in [astral-sh/ruff#2960 - \[`pycodestyle`] autofix useless semicolons by [@​sbrugman](https://togithub.com/sbrugman) in [astral-sh/ruff#3001 - \[`pep8-naming`] Implement `flake8-module-naming` by [@​sbrugman](https://togithub.com/sbrugman) in [astral-sh/ruff#2855 - \[`flake8-self`] Ignore namedtuple methods in flake8-self by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#2998 - \[`flake8-simplify`] Merge convert-loop-to-any & convert-loop-to-all to reimplemented-builtin by [@​not-my-profile](https://togithub.com/not-my-profile) in [astral-sh/ruff#2903 - \[`ruff`] Add support for `ensure_future` for RUF006 by [@​Lunarmagpie](https://togithub.com/Lunarmagpie) in [astral-sh/ruff#2943 - \[`pylint`] error when `__init__` returns a value by [@​r3m0t](https://togithub.com/r3m0t) in [astral-sh/ruff#3007 - \[`flake8-pytest-style`] autofix for composite-assertion (PT018) by [@​sbrugman](https://togithub.com/sbrugman) in [astral-sh/ruff#2732 - \[`flake8-tidy-imports`] extend autofix of relative imports by [@​sbrugman](https://togithub.com/sbrugman) in [astral-sh/ruff#2990 ##### Settings - Add support for file-scoped `noqa` directives by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#2978 - Add configuration option for C408 to allow dict calls with keyword arguments. by [@​manueljacob](https://togithub.com/manueljacob) in [astral-sh/ruff#2977 - feat(isort): Implement isort.force_to_top by [@​spaceone](https://togithub.com/spaceone) in [astral-sh/ruff#2877 ##### Bug Fixes - Fix add-required-import with multi-line offsets by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#2946 - Support positional messages in assertion rewrites by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3002 - Avoid false-positives for break in with by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#3032 - Avoid trying to fix implicit returns with control flow by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#2962 - Handle non-from **future** imports by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#2974 - Enforce D403 on methods by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#2992 - Avoid zero-indexed column for IOError by [@​charliermarsh](https://togithub.com/charliermarsh) in [astral-sh/ruff#2995 - Fix for F541 unescape f-string by [@​sbrugman](https://togithub.com/sbrugman) in [astral-sh/ruff#2971 - Avoid raising `B027` violations in `.pyi` files by [@​JonathanPlasse](https://togithub.com/JonathanPlasse) in [astral-sh/ruff#3016 #### New Contributors - [@​Lunarmagpie](https://togithub.com/Lunarmagpie) made their first contribution in [astral-sh/ruff#2943 - [@​manueljacob](https://togithub.com/manueljacob) made their first contribution in [astral-sh/ruff#2966 - [@​mwtoews](https://togithub.com/mwtoews) made their first contribution in [astral-sh/ruff#2973 - [@​ortem](https://togithub.com/ortem) made their first contribution in [astral-sh/ruff#2976 - [@​thatlittleboy](https://togithub.com/thatlittleboy) made their first contribution in [astral-sh/ruff#3027 - [@​r3m0t](https://togithub.com/r3m0t) made their first contribution in [astral-sh/ruff#3007 **Full Changelog**: astral-sh/ruff@v0.0.247...v0.0.248 </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:eyJjcmVhdGVkSW5WZXIiOiIzNC4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM0LjE1My4yIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
follow pycodestyle precedent on what constitutes whitespace