-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
Add option to skip the first line of source code #3299
Commits on Sep 29, 2022
-
Add option to skip the first line in source file
This commit adds a CLi option to skip the first line in the source files, just like the Cpython command line allows [1]. By enabling the flag, using `-x` or `--skip-source-first-line`, the first line is removed temporarilly while the remaining contents are formatted. The first line is added back before returning the formatted output. [1]: https://docs.python.org/dev/using/cmdline.html#cmdoption-x Signed-off-by: Antonio Ossa Guerra <aaossa@uc.cl>
Configuration menu - View commit details
-
Copy full SHA for 348eed2 - Browse repository at this point
Copy the full SHA 348eed2View commit details -
Add tests for
--skip-source-first-line
optionWhen the flag is disabled (default), black formats the entire source file, as in every line. In the other hand, if the flag is enabled, by using `-x` or `--skip-source-first-line`, the first line is retained while the rest of the source is formatted and then is added back. These tests use an empty Python file that contains invalid syntax in its first line (`invalid_header.py`, at `miscellaneous/`). First, Black is invoked without enabling the flag which should result in an exit code different than 0. When the flag is enabled, Black is expected to return a successful exit code and the header is expected to be retained (even if its not valid Python syntax). Signed-off-by: Antonio Ossa Guerra <aaossa@uc.cl>
Configuration menu - View commit details
-
Copy full SHA for 92297b6 - Browse repository at this point
Copy the full SHA 92297b6View commit details -
Support skip source first line option for blackd
The recently added option can be added as an acceptable header for blackd. The arguments are passed in such a way that using the new header will activate the skip source first line behaviour as expected Signed-off-by: Antonio Ossa Guerra <aaossa@uc.cl>
Configuration menu - View commit details
-
Copy full SHA for 73eac33 - Browse repository at this point
Copy the full SHA 73eac33View commit details -
Add skip source first line option to blackd docs
The new option can be passed to blackd as a header. This commit updates the blackd docs to include the new header. Signed-off-by: Antonio Ossa Guerra <aaossa@uc.cl>
Configuration menu - View commit details
-
Copy full SHA for 21933ca - Browse repository at this point
Copy the full SHA 21933caView commit details -
Include the new Black option to skip the first line of source code in the configuration section Signed-off-by: Antonio Ossa Guerra <aaossa@uc.cl>
Configuration menu - View commit details
-
Copy full SHA for 9a7dd69 - Browse repository at this point
Copy the full SHA 9a7dd69View commit details
Commits on Oct 4, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 936903c - Browse repository at this point
Copy the full SHA 936903cView commit details
Commits on Oct 5, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 6e24dfb - Browse repository at this point
Copy the full SHA 6e24dfbView commit details
Commits on Oct 6, 2022
-
Update skip first line test including valid syntax
Including valid Python syntax help us make sure that the file is still actually valid after skipping the first line of the source file (which contains invalid Python syntax) Signed-off-by: Antonio Ossa Guerra <aaossa@uc.cl>
Configuration menu - View commit details
-
Copy full SHA for 1701b6f - Browse repository at this point
Copy the full SHA 1701b6fView commit details -
Skip first source line at
format_file_in_place
Instead of skipping the first source line at `format_file_contents`, do it before. This allow us to find the correct newline and encoding on the actual source code (everything that's after the header). This change is also applied at Blackd: take the header before passing the source to `format_file_contents` and put the header back once we get the formatted result. Signed-off-by: Antonio Ossa Guerra <aaossa@uc.cl>
Configuration menu - View commit details
-
Copy full SHA for 7baf898 - Browse repository at this point
Copy the full SHA 7baf898View commit details -
Test output newlines when skipping first line
When skipping the first line of source code, the reference newline must be taken from the second line of the file instead of the first one, in case that the file mixes more than one kind of newline character Signed-off-by: Antonio Ossa Guerra <aaossa@uc.cl>
Configuration menu - View commit details
-
Copy full SHA for 02d1d17 - Browse repository at this point
Copy the full SHA 02d1d17View commit details -
Test that Blackd also skips first line correctly
Simliarly to the Black tests, we first compare that Blackd fails when the first line is invalid Python syntax and then check that the result is the expected when tha flag is activated Signed-off-by: Antonio Ossa Guerra <aaossa@uc.cl>
Configuration menu - View commit details
-
Copy full SHA for 6177cb3 - Browse repository at this point
Copy the full SHA 6177cb3View commit details -
Use the content encoding to decode the header
When decoding the header to put it back at the top of the contents of the file, use the same encoding used in the content. This should be a better "guess" that using the default value Signed-off-by: Antonio Ossa Guerra <aaossa@uc.cl>
Configuration menu - View commit details
-
Copy full SHA for 62dd941 - Browse repository at this point
Copy the full SHA 62dd941View commit details