add preview option support for blackd (#3217)
Fixes #3195 Co-authored-by: Richard Si <63936253+ichard26@users.noreply.github.com>
This commit is contained in:
parent
680cbe3a4f
commit
07b68e2425
@ -20,6 +20,7 @@ Multiple contributions by:
|
||||
- [Adam Johnson](mailto:me@adamj.eu)
|
||||
- [Adam Williamson](mailto:adamw@happyassassin.net)
|
||||
- [Alexander Huynh](mailto:github@grande.coffee)
|
||||
- [Alexandr Artemyev](mailto:mogost@gmail.com)
|
||||
- [Alex Vandiver](mailto:github@chmrr.net)
|
||||
- [Allan Simon](mailto:allan.simon@supinfo.com)
|
||||
- Anders-Petter Ljungquist
|
||||
|
@ -29,6 +29,8 @@
|
||||
|
||||
<!-- Changes to blackd -->
|
||||
|
||||
- `blackd` now supports preview style via `X-Preview` header (#3217)
|
||||
|
||||
### Configuration
|
||||
|
||||
<!-- Changes to how Black can be configured -->
|
||||
|
@ -54,8 +54,11 @@ The headers controlling how source code is formatted are:
|
||||
command line flag. If present and its value is not the empty string, no string
|
||||
normalization will be performed.
|
||||
- `X-Skip-Magic-Trailing-Comma`: corresponds to the `--skip-magic-trailing-comma`
|
||||
command line flag. If present and its value is not the empty string, trailing commas
|
||||
command line flag. If present and its value is not an empty string, trailing commas
|
||||
will not be used as a reason to split lines.
|
||||
- `X-Preview`: corresponds to the `--preview` command line flag. If present and its
|
||||
value is not an empty string, experimental and potentially disruptive style changes
|
||||
will be used.
|
||||
- `X-Fast-Or-Safe`: if set to `fast`, `blackd` will act as _Black_ does when passed the
|
||||
`--fast` command line flag.
|
||||
- `X-Python-Variant`: if set to `pyi`, `blackd` will act as _Black_ does when passed the
|
||||
|
@ -32,6 +32,7 @@
|
||||
PYTHON_VARIANT_HEADER = "X-Python-Variant"
|
||||
SKIP_STRING_NORMALIZATION_HEADER = "X-Skip-String-Normalization"
|
||||
SKIP_MAGIC_TRAILING_COMMA = "X-Skip-Magic-Trailing-Comma"
|
||||
PREVIEW = "X-Preview"
|
||||
FAST_OR_SAFE_HEADER = "X-Fast-Or-Safe"
|
||||
DIFF_HEADER = "X-Diff"
|
||||
|
||||
@ -41,6 +42,7 @@
|
||||
PYTHON_VARIANT_HEADER,
|
||||
SKIP_STRING_NORMALIZATION_HEADER,
|
||||
SKIP_MAGIC_TRAILING_COMMA,
|
||||
PREVIEW,
|
||||
FAST_OR_SAFE_HEADER,
|
||||
DIFF_HEADER,
|
||||
]
|
||||
@ -109,6 +111,7 @@ async def handle(request: web.Request, executor: Executor) -> web.Response:
|
||||
skip_magic_trailing_comma = bool(
|
||||
request.headers.get(SKIP_MAGIC_TRAILING_COMMA, False)
|
||||
)
|
||||
preview = bool(request.headers.get(PREVIEW, False))
|
||||
fast = False
|
||||
if request.headers.get(FAST_OR_SAFE_HEADER, "safe") == "fast":
|
||||
fast = True
|
||||
@ -118,6 +121,7 @@ async def handle(request: web.Request, executor: Executor) -> web.Response:
|
||||
line_length=line_length,
|
||||
string_normalization=not skip_string_normalization,
|
||||
magic_trailing_comma=not skip_magic_trailing_comma,
|
||||
preview=preview,
|
||||
)
|
||||
req_bytes = await request.content.read()
|
||||
charset = request.charset if request.charset is not None else "utf8"
|
||||
|
@ -167,6 +167,13 @@ async def test_blackd_invalid_line_length(self) -> None:
|
||||
)
|
||||
self.assertEqual(response.status, 400)
|
||||
|
||||
@unittest_run_loop
|
||||
async def test_blackd_preview(self) -> None:
|
||||
response = await self.client.post(
|
||||
"/", data=b'print("hello")\n', headers={blackd.PREVIEW: "true"}
|
||||
)
|
||||
self.assertEqual(response.status, 204)
|
||||
|
||||
@unittest_run_loop
|
||||
async def test_blackd_response_black_version_header(self) -> None:
|
||||
response = await self.client.post("/")
|
||||
|
Loading…
Reference in New Issue
Block a user