]>
git.madduck.net Git - etc/vim.git/blobdiff - black.py
madduck's git repository
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@ git. madduck. net .
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
arranged .
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
insteadOf = madduck:
def normalize_numeric_literal(leaf: Leaf, allow_underscores: bool) -> None:
def normalize_numeric_literal(leaf: Leaf, allow_underscores: bool) -> None:
- """Normalizes numeric (float, int, and complex) literals."""
- # We want all letters (e in exponents, j in complex literals, a-f
- # in hex literals) to be lowercase.
+ """Normalizes numeric (float, int, and complex) literals.
+
+ All letters used in the representation are normalized to lowercase, long number
+ literals are split using underscores.
+ """
text = leaf.value.lower()
if text.startswith(("0o", "0x", "0b")):
text = leaf.value.lower()
if text.startswith(("0o", "0x", "0b")):
- # Leave octal, hex, and binary literals alone for now .
+ # Leave octal, hex, and binary literals alone.
pass
elif "e" in text:
before, after = text.split("e")
pass
elif "e" in text:
before, after = text.split("e")
if after.startswith("-"):
after = after[1:]
sign = "-"
elif after.startswith("+"):
after = after[1:]
if after.startswith("-"):
after = after[1:]
sign = "-"
elif after.startswith("+"):
after = after[1:]
- sign = ""
- else:
- sign = ""
before = format_float_or_int_string(before, allow_underscores)
after = format_int_string(after, allow_underscores)
text = f"{before}e{sign}{after}"
before = format_float_or_int_string(before, allow_underscores)
after = format_int_string(after, allow_underscores)
text = f"{before}e{sign}{after}"
- # Complex numbers and Python 2 longs
- elif "j" in text or "l" in text:
+ elif text.endswith(("j", "l")):
number = text[:-1]
suffix = text[-1]
text = f"{format_float_or_int_string(number, allow_underscores)}{suffix}"
number = text[:-1]
suffix = text[-1]
text = f"{format_float_or_int_string(number, allow_underscores)}{suffix}"
def format_int_string(text: str, allow_underscores: bool) -> str:
"""Normalizes underscores in a string to e.g. 1_000_000.
def format_int_string(text: str, allow_underscores: bool) -> str:
"""Normalizes underscores in a string to e.g. 1_000_000.
- Input must be a string consisting only of digits and underscores.
+ Input must be a string of at least six digits and optional underscores.
"""
if not allow_underscores:
return text
"""
if not allow_underscores:
return text