importer: skip whitespace between comments at start of file#6523
importer: skip whitespace between comments at start of file#6523charliermarsh merged 1 commit intoastral-sh:mainfrom
Conversation
PR Check ResultsEcosystem✅ ecosystem check detected no changes. BenchmarkLinuxWindows |
| if trimmed_line.is_empty() { | ||
| continue; | ||
| } | ||
| if trimmed_line.starts_with('#') { |
There was a problem hiding this comment.
Given:
# This is a comment
# This is a comment about this specific import
from sys import stdoutI guess we'd now do:
# This is a comment
# This is a comment about this specific import
from __future__ import annotations
from sys import stdoutI guess we arguably already had that problem, since given:
# This is a comment about this specific import
from sys import stdoutWe already do:
# This is a comment about this specific import
from __future__ import annotations
from sys import stdoutI suppose we could modify the logic to only skip comments if the comments are followed by a blank line but that may be surprising -- I'm not sure. What do you think?
There was a problem hiding this comment.
That's a good point. For what it's worth, isort -a "from __future__ import annotations" seems to do the same thing:
# This is a comment
# Comment about this import
from foo import barturns into:
# This is a comment
# Comment about this import
from __future__ import annotations
from foo import barThat makes me inclined to think this case isn't too valuable to support. If we do want to support it, though, I do think your proposal of skipping comments if the comments are followed by a blank line is pretty reasonable and intuitive.
There was a problem hiding this comment.
Ok, thanks for looking into that. If isort has this behavior, then it seems reasonable to me to proceed as-is.
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [ruff](https://beta.ruff.rs/docs) ([source](https://github.com/astral-sh/ruff), [changelog](https://github.com/astral-sh/ruff/releases)) | `==0.0.284` -> `==0.0.285` | [](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>astral-sh/ruff (ruff)</summary> ### [`v0.0.285`](https://github.com/astral-sh/ruff/releases/tag/v0.0.285) [Compare Source](https://github.com/astral-sh/ruff/compare/v0.0.284...v0.0.285) #### What's Changed ##### New rules - \[`flake8-pytest-style`] Implement `pytest-unittest-raises-assertion` (`PT027`) by [@​harupy](https://github.com/harupy) in [https://github.com/astral-sh/ruff/pull/6554](https://github.com/astral-sh/ruff/pull/6554) - \[`flake8-pytest-style`] Implement `pytest-duplicate-parametrize-test-cases` (`PT014`) by [@​harupy](https://github.com/harupy) in [https://github.com/astral-sh/ruff/pull/6598](https://github.com/astral-sh/ruff/pull/6598) - \[`flake8-tidy-imports`] Implement `banned-module-level-imports` (`TID253`) by [@​durumu](https://github.com/durumu) in [https://github.com/astral-sh/ruff/pull/6378](https://github.com/astral-sh/ruff/pull/6378) - \[`pylint`] Implement `bad-dunder-name` (`W3201`) (in the Ruff nursery) by [@​LaBatata101](https://github.com/LaBatata101) in [https://github.com/astral-sh/ruff/pull/6486](https://github.com/astral-sh/ruff/pull/6486) - \[`pylint`] Implement `subprocess-run-check` (`W1510`) by [@​tjkuson](https://github.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/6487](https://github.com/astral-sh/ruff/pull/6487) - \[`ruff`] Implement `quadratic-list-summation` (`RUF017`) by [@​evanrittenhouse](https://github.com/evanrittenhouse) in [https://github.com/astral-sh/ruff/pull/6489](https://github.com/astral-sh/ruff/pull/6489) ##### Rule changes - \[`flake8-bugbear`] Add autofix for `B006` by [@​qdegraaf](https://github.com/qdegraaf) in [https://github.com/astral-sh/ruff/pull/6131](https://github.com/astral-sh/ruff/pull/6131) - \[`flake8-pyi`] Avoid applying `PYI055` to runtime-evaluated annotations by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6457](https://github.com/astral-sh/ruff/pull/6457) - \[`flake8-self`] Allow `os._exit` accesses in `SLF001` by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6490](https://github.com/astral-sh/ruff/pull/6490) - \[`perflint`] Ignore `PERF203` if `try` contains loop control flow statements by [@​evanrittenhouse](https://github.com/evanrittenhouse) in [https://github.com/astral-sh/ruff/pull/6536](https://github.com/astral-sh/ruff/pull/6536) - \[`pylint`] Check for invalid format type specifiers in nested replacements for `PLE1300` by [@​zanieb](https://github.com/zanieb) in [https://github.com/astral-sh/ruff/pull/6616](https://github.com/astral-sh/ruff/pull/6616) - \[`tryceratops`] Omit `NotImplementedError` from `TRY003` by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6568](https://github.com/astral-sh/ruff/pull/6568) ##### Settings - Respect `.ipynb` and `.pyi` sources when linting from stdin by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6628](https://github.com/astral-sh/ruff/pull/6628) - Support glob patterns for `raises_require_match_for` and `raises_require_match_for` by [@​harupy](https://github.com/harupy) in [https://github.com/astral-sh/ruff/pull/6635](https://github.com/astral-sh/ruff/pull/6635) ##### Bug Fixes - Make `lambda-assignment` fix always-manual in class bodies by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6626](https://github.com/astral-sh/ruff/pull/6626) - Fix counting of message arguments when msg is provided as a keyword by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6456](https://github.com/astral-sh/ruff/pull/6456) - Add container types to `E721` by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6469](https://github.com/astral-sh/ruff/pull/6469) - Respect scoping rules when identifying builtins by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6468](https://github.com/astral-sh/ruff/pull/6468) - Respect tab width in line-length heuristic by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6491](https://github.com/astral-sh/ruff/pull/6491) - Respect dummy-variable-rgx for unused bound exceptions by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6492](https://github.com/astral-sh/ruff/pull/6492) - Fix detection of top-level imports with newlines in `E402` by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6526](https://github.com/astral-sh/ruff/pull/6526) - Allow if-expression with dual string arms in `invalid-envvar-value` by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6538](https://github.com/astral-sh/ruff/pull/6538) - Add deprecated unittest assertions to PT009 by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6572](https://github.com/astral-sh/ruff/pull/6572) - Avoid unused argument rules when functions call `locals()` by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6578](https://github.com/astral-sh/ruff/pull/6578) - Allow top-level `await` in Jupyter notebooks by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6607](https://github.com/astral-sh/ruff/pull/6607) - Don't detect `pandas#values` for stores, deletes, or class accesses by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6631](https://github.com/astral-sh/ruff/pull/6631) - Avoid removing parentheses in `E712` fix by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6575](https://github.com/astral-sh/ruff/pull/6575) - Skip whitespace between comments at start of file e.g. for `I002` by [@​durumu](https://github.com/durumu) in [https://github.com/astral-sh/ruff/pull/6523](https://github.com/astral-sh/ruff/pull/6523) - Add support for nested replacements inside format specifications e.g. for `PLE1300` by [@​zanieb](https://github.com/zanieb) in [https://github.com/astral-sh/ruff/pull/6616](https://github.com/astral-sh/ruff/pull/6616) ##### Playground - Shared playground links now use short URLs by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6383](https://github.com/astral-sh/ruff/pull/6383) - Fix possible JSON parse error on playground load by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6519](https://github.com/astral-sh/ruff/pull/6519) - Fix unreachable panic in playground by [@​MichaReiser](https://github.com/MichaReiser) in [https://github.com/astral-sh/ruff/pull/6623](https://github.com/astral-sh/ruff/pull/6623) ##### Performance - Improve tokenizer performance for ASCII only identifiers by [@​MichaReiser](https://github.com/MichaReiser) in [https://github.com/astral-sh/ruff/pull/6609](https://github.com/astral-sh/ruff/pull/6609) #### New Contributors - [@​magic-akari](https://github.com/magic-akari) made their first contribution in [https://github.com/astral-sh/ruff/pull/6472](https://github.com/astral-sh/ruff/pull/6472) - [@​durumu](https://github.com/durumu) made their first contribution in [https://github.com/astral-sh/ruff/pull/6378](https://github.com/astral-sh/ruff/pull/6378) - [@​jamesbraza](https://github.com/jamesbraza) made their first contribution in [https://github.com/astral-sh/ruff/pull/6520](https://github.com/astral-sh/ruff/pull/6520) - [@​takumaw](https://github.com/takumaw) made their first contribution in [https://github.com/astral-sh/ruff/pull/6533](https://github.com/astral-sh/ruff/pull/6533) - [@​noklam](https://github.com/noklam) made their first contribution in [https://github.com/astral-sh/ruff/pull/6573](https://github.com/astral-sh/ruff/pull/6573) - [@​Teraskull](https://github.com/Teraskull) made their first contribution in [https://github.com/astral-sh/ruff/pull/6605](https://github.com/astral-sh/ruff/pull/6605) **Full Changelog**: astral-sh/ruff@v0.0.284...v0.0.285 </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:eyJjcmVhdGVkSW5WZXIiOiIzNi40My4yIiwidXBkYXRlZEluVmVyIjoiMzYuNDMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [ruff](https://beta.ruff.rs/docs) ([source](https://github.com/astral-sh/ruff), [changelog](https://github.com/astral-sh/ruff/releases)) | `==0.0.284` -> `==0.0.285` | [](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>astral-sh/ruff (ruff)</summary> ### [`v0.0.285`](https://github.com/astral-sh/ruff/releases/tag/v0.0.285) [Compare Source](https://github.com/astral-sh/ruff/compare/v0.0.284...v0.0.285) #### What's Changed ##### New rules - \[`flake8-pytest-style`] Implement `pytest-unittest-raises-assertion` (`PT027`) by [@​harupy](https://github.com/harupy) in [https://github.com/astral-sh/ruff/pull/6554](https://github.com/astral-sh/ruff/pull/6554) - \[`flake8-pytest-style`] Implement `pytest-duplicate-parametrize-test-cases` (`PT014`) by [@​harupy](https://github.com/harupy) in [https://github.com/astral-sh/ruff/pull/6598](https://github.com/astral-sh/ruff/pull/6598) - \[`flake8-tidy-imports`] Implement `banned-module-level-imports` (`TID253`) by [@​durumu](https://github.com/durumu) in [https://github.com/astral-sh/ruff/pull/6378](https://github.com/astral-sh/ruff/pull/6378) - \[`pylint`] Implement `bad-dunder-name` (`W3201`) (in the Ruff nursery) by [@​LaBatata101](https://github.com/LaBatata101) in [https://github.com/astral-sh/ruff/pull/6486](https://github.com/astral-sh/ruff/pull/6486) - \[`pylint`] Implement `subprocess-run-check` (`W1510`) by [@​tjkuson](https://github.com/tjkuson) in [https://github.com/astral-sh/ruff/pull/6487](https://github.com/astral-sh/ruff/pull/6487) - \[`ruff`] Implement `quadratic-list-summation` (`RUF017`) by [@​evanrittenhouse](https://github.com/evanrittenhouse) in [https://github.com/astral-sh/ruff/pull/6489](https://github.com/astral-sh/ruff/pull/6489) ##### Rule changes - \[`flake8-bugbear`] Add autofix for `B006` by [@​qdegraaf](https://github.com/qdegraaf) in [https://github.com/astral-sh/ruff/pull/6131](https://github.com/astral-sh/ruff/pull/6131) - \[`flake8-pyi`] Avoid applying `PYI055` to runtime-evaluated annotations by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6457](https://github.com/astral-sh/ruff/pull/6457) - \[`flake8-self`] Allow `os._exit` accesses in `SLF001` by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6490](https://github.com/astral-sh/ruff/pull/6490) - \[`perflint`] Ignore `PERF203` if `try` contains loop control flow statements by [@​evanrittenhouse](https://github.com/evanrittenhouse) in [https://github.com/astral-sh/ruff/pull/6536](https://github.com/astral-sh/ruff/pull/6536) - \[`pylint`] Check for invalid format type specifiers in nested replacements for `PLE1300` by [@​zanieb](https://github.com/zanieb) in [https://github.com/astral-sh/ruff/pull/6616](https://github.com/astral-sh/ruff/pull/6616) - \[`tryceratops`] Omit `NotImplementedError` from `TRY003` by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6568](https://github.com/astral-sh/ruff/pull/6568) ##### Settings - Respect `.ipynb` and `.pyi` sources when linting from stdin by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6628](https://github.com/astral-sh/ruff/pull/6628) - Support glob patterns for `raises_require_match_for` and `raises_require_match_for` by [@​harupy](https://github.com/harupy) in [https://github.com/astral-sh/ruff/pull/6635](https://github.com/astral-sh/ruff/pull/6635) ##### Bug Fixes - Make `lambda-assignment` fix always-manual in class bodies by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6626](https://github.com/astral-sh/ruff/pull/6626) - Fix counting of message arguments when msg is provided as a keyword by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6456](https://github.com/astral-sh/ruff/pull/6456) - Add container types to `E721` by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6469](https://github.com/astral-sh/ruff/pull/6469) - Respect scoping rules when identifying builtins by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6468](https://github.com/astral-sh/ruff/pull/6468) - Respect tab width in line-length heuristic by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6491](https://github.com/astral-sh/ruff/pull/6491) - Respect dummy-variable-rgx for unused bound exceptions by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6492](https://github.com/astral-sh/ruff/pull/6492) - Fix detection of top-level imports with newlines in `E402` by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6526](https://github.com/astral-sh/ruff/pull/6526) - Allow if-expression with dual string arms in `invalid-envvar-value` by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6538](https://github.com/astral-sh/ruff/pull/6538) - Add deprecated unittest assertions to PT009 by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6572](https://github.com/astral-sh/ruff/pull/6572) - Avoid unused argument rules when functions call `locals()` by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6578](https://github.com/astral-sh/ruff/pull/6578) - Allow top-level `await` in Jupyter notebooks by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6607](https://github.com/astral-sh/ruff/pull/6607) - Don't detect `pandas#values` for stores, deletes, or class accesses by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6631](https://github.com/astral-sh/ruff/pull/6631) - Avoid removing parentheses in `E712` fix by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6575](https://github.com/astral-sh/ruff/pull/6575) - Skip whitespace between comments at start of file e.g. for `I002` by [@​durumu](https://github.com/durumu) in [https://github.com/astral-sh/ruff/pull/6523](https://github.com/astral-sh/ruff/pull/6523) - Add support for nested replacements inside format specifications e.g. for `PLE1300` by [@​zanieb](https://github.com/zanieb) in [https://github.com/astral-sh/ruff/pull/6616](https://github.com/astral-sh/ruff/pull/6616) ##### Playground - Shared playground links now use short URLs by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6383](https://github.com/astral-sh/ruff/pull/6383) - Fix possible JSON parse error on playground load by [@​charliermarsh](https://github.com/charliermarsh) in [https://github.com/astral-sh/ruff/pull/6519](https://github.com/astral-sh/ruff/pull/6519) - Fix unreachable panic in playground by [@​MichaReiser](https://github.com/MichaReiser) in [https://github.com/astral-sh/ruff/pull/6623](https://github.com/astral-sh/ruff/pull/6623) ##### Performance - Improve tokenizer performance for ASCII only identifiers by [@​MichaReiser](https://github.com/MichaReiser) in [https://github.com/astral-sh/ruff/pull/6609](https://github.com/astral-sh/ruff/pull/6609) #### New Contributors - [@​magic-akari](https://github.com/magic-akari) made their first contribution in [https://github.com/astral-sh/ruff/pull/6472](https://github.com/astral-sh/ruff/pull/6472) - [@​durumu](https://github.com/durumu) made their first contribution in [https://github.com/astral-sh/ruff/pull/6378](https://github.com/astral-sh/ruff/pull/6378) - [@​jamesbraza](https://github.com/jamesbraza) made their first contribution in [https://github.com/astral-sh/ruff/pull/6520](https://github.com/astral-sh/ruff/pull/6520) - [@​takumaw](https://github.com/takumaw) made their first contribution in [https://github.com/astral-sh/ruff/pull/6533](https://github.com/astral-sh/ruff/pull/6533) - [@​noklam](https://github.com/noklam) made their first contribution in [https://github.com/astral-sh/ruff/pull/6573](https://github.com/astral-sh/ruff/pull/6573) - [@​Teraskull](https://github.com/Teraskull) made their first contribution in [https://github.com/astral-sh/ruff/pull/6605](https://github.com/astral-sh/ruff/pull/6605) **Full Changelog**: astral-sh/ruff@v0.0.284...v0.0.285 </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:eyJjcmVhdGVkSW5WZXIiOiIzNi40My4yIiwidXBkYXRlZEluVmVyIjoiMzYuNDMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Summary
When adding an import, such as when fixing
I002, ruff doesn't skip whitespace between comments, but isort does. See this issue for more detail: #6504This change would fix that by skipping whitespace between comments in
Insertion.start_of_file().Test Plan
I added a new test,
comments_and_newlines, to verify this behavior. I also rancargo testand no existing tests broke. That being said, this is technically a breaking change, as it's possible that someone was relying on the previous behavior.