LINE_LENGTH_HEADER = "X-Line-Length"
PYTHON_VARIANT_HEADER = "X-Python-Variant"
SKIP_STRING_NORMALIZATION_HEADER = "X-Skip-String-Normalization"
-SKIP_NUMERIC_UNDERSCORE_NORMALIZATION_HEADER = "X-Skip-Numeric-Underscore-Normalization"
FAST_OR_SAFE_HEADER = "X-Fast-Or-Safe"
BLACK_HEADERS = [
LINE_LENGTH_HEADER,
PYTHON_VARIANT_HEADER,
SKIP_STRING_NORMALIZATION_HEADER,
- SKIP_NUMERIC_UNDERSCORE_NORMALIZATION_HEADER,
FAST_OR_SAFE_HEADER,
]
skip_string_normalization = bool(
request.headers.get(SKIP_STRING_NORMALIZATION_HEADER, False)
)
- skip_numeric_underscore_normalization = bool(
- request.headers.get(SKIP_NUMERIC_UNDERSCORE_NORMALIZATION_HEADER, False)
- )
fast = False
if request.headers.get(FAST_OR_SAFE_HEADER, "safe") == "fast":
fast = True
is_pyi=pyi,
line_length=line_length,
string_normalization=not skip_string_normalization,
- numeric_underscore_normalization=not skip_numeric_underscore_normalization,
)
req_bytes = await request.content.read()
charset = request.charset if request.charset is not None else "utf8"
else:
versions = set()
for version in value.split(","):
- tag = "cpy"
- if version.startswith("cpy"):
- version = version[len("cpy") :]
- elif version.startswith("pypy"):
- tag = "pypy"
- version = version[len("pypy") :]
+ if version.startswith("py"):
+ version = version[len("py") :]
major_str, *rest = version.split(".")
try:
major = int(major_str)
else:
# Default to lowest supported minor version.
minor = 7 if major == 2 else 3
- version_str = f"{tag.upper()}{major}{minor}"
- # If PyPY is the same as CPython in some version, use
- # the corresponding CPython version.
- if tag == "pypy" and not hasattr(black.TargetVersion, version_str):
- version_str = f"CPY{major}{minor}"
+ version_str = f"PY{major}{minor}"
if major == 3 and not hasattr(black.TargetVersion, version_str):
raise InvalidVariantHeader(f"3.{minor} is not supported")
versions.add(black.TargetVersion[version_str])
except (KeyError, ValueError):
- raise InvalidVariantHeader("expected e.g. '3.7', 'pypy3.5'")
+ raise InvalidVariantHeader("expected e.g. '3.7', 'py3.5'")
return False, versions