-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
Two blank lines after an import should be reduced to one #4489
Two blank lines after an import should be reduced to one #4489
Conversation
I got an email about this job failure but looks like all the checks are passing on the PR https://github.com/psf/black/actions/runs/11377698063/job/31652281800 is this something that needs to be addressed? |
Interesting, I suspect some change to how GitHub handles artifacts. Not sure why it doesn't show up here. |
I got this same error again on the rerun of the workflows https://github.com/psf/black/actions/runs/11483099904/job/31957735676 and seems to be because there's no artifact in this workflow https://github.com/psf/black/actions/runs/11412528080 with the file name https://github.com/psf/black/blob/main/.github/workflows/diff_shades.yml#L130:
|
hey @JelleZijlstra ! :) just bumping this PR - do the changes look good or are there other modifications you'd like to see? |
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.
Thanks, this looks reasonable
One nit: could you move the logic down next to
Lines 674 to 680 in c98fc0c
if ( | |
self.previous_line.is_import | |
and not current_line.is_import | |
and not current_line.is_fmt_pass_converted(first_leaf_matches=is_import) | |
and depth == self.previous_line.depth | |
): | |
return (before or 1), 0 |
@hauntsaninja for sure, let me know if where I moved the logic is what you were thinking! also moved all the case cases to a single file, added a test case for imports inside a function, and expanded some existing test cases |
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.
Thanks, just some wordsmithing
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | dependency-groups | major | `<25.0.0,>=24.10.0` -> `<25.2.0,>=25.1.0` | --- ### Release Notes <details> <summary>psf/black (black)</summary> ### [`v25.1.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2510) [Compare Source](psf/black@24.10.0...25.1.0) ##### Highlights This release introduces the new 2025 stable style ([#​4558](psf/black#4558)), stabilizing the following changes: - Normalize casing of Unicode escape characters in strings to lowercase ([#​2916](psf/black#2916)) - Fix inconsistencies in whether certain strings are detected as docstrings ([#​4095](psf/black#4095)) - Consistently add trailing commas to typed function parameters ([#​4164](psf/black#4164)) - Remove redundant parentheses in if guards for case blocks ([#​4214](psf/black#4214)) - Add parentheses to if clauses in case blocks when the line is too long ([#​4269](psf/black#4269)) - Whitespace before `# fmt: skip` comments is no longer normalized ([#​4146](psf/black#4146)) - Fix line length computation for certain expressions that involve the power operator ([#​4154](psf/black#4154)) - Check if there is a newline before the terminating quotes of a docstring ([#​4185](psf/black#4185)) - Fix type annotation spacing between `*` and more complex type variable tuple ([#​4440](psf/black#4440)) The following changes were not in any previous release: - Remove parentheses around sole list items ([#​4312](psf/black#4312)) - Generic function definitions are now formatted more elegantly: parameters are split over multiple lines first instead of type parameter definitions ([#​4553](psf/black#4553)) ##### Stable style - Fix formatting cells in IPython notebooks with magic methods and starting or trailing empty lines ([#​4484](psf/black#4484)) - Fix crash when formatting `with` statements containing tuple generators/unpacking ([#​4538](psf/black#4538)) ##### Preview style - Fix/remove string merging changing f-string quotes on f-strings with internal quotes ([#​4498](psf/black#4498)) - Collapse multiple empty lines after an import into one ([#​4489](psf/black#4489)) - Prevent `string_processing` and `wrap_long_dict_values_in_parens` from removing parentheses around long dictionary values ([#​4377](psf/black#4377)) - Move `wrap_long_dict_values_in_parens` from the unstable to preview style ([#​4561](psf/black#4561)) ##### Packaging - Store license identifier inside the `License-Expression` metadata field, see [PEP 639](https://peps.python.org/pep-0639/). ([#​4479](psf/black#4479)) ##### Performance - Speed up the `is_fstring_start` function in Black's tokenizer ([#​4541](psf/black#4541)) ##### Integrations - If using stdin with `--stdin-filename` set to a force excluded path, stdin won't be formatted. ([#​4539](psf/black#4539)) </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 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 [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJsaW50aW5nIl19--> Reviewed-on: https://git.tainton.uk/repos/PwnedPW/pulls/283 Reviewed-by: Luke Tainton <[email protected]> Co-authored-by: Renovate [BOT] <[email protected]> Co-committed-by: Renovate [BOT] <[email protected]>
Description
Hey! Trying to contribute for the first time to the project so let me know if I'm missing anything :)
I've implemented changes to address this issue #2020 where there's some inconsistency around how many lines are added after an import. I've added 2 test cases showing that if there is more than 1 blank line between the import and the next line that it is now being reduced to one. One test case was failing because it had in its expected outout 2 lines between the import and following statement, so I think modifying the test case now that it should always be one makes sense.
Checklist - did you ...
CHANGES.md
if necessary?