summaryrefslogtreecommitdiff
path: root/ansi.py
diff options
context:
space:
mode:
authorScott <[email protected]>2022-01-26 21:34:26 -0800
committerScott <[email protected]>2022-01-26 21:34:26 -0800
commit36fea7f15ed17150691b5b3ead75450e575229ef (patch)
tree883ec076d7abe7683231244d27ca2c603ffcf031 /ansi.py
parenta0c6b6c28214e0f5167bc25690ada5d83d933086 (diff)
Ran black code formatter on everything.
Diffstat (limited to 'ansi.py')
-rwxr-xr-xansi.py67
1 files changed, 37 insertions, 30 deletions
diff --git a/ansi.py b/ansi.py
index 950a0c4..5fde4af 100755
--- a/ansi.py
+++ b/ansi.py
@@ -1731,13 +1731,15 @@ def _find_color_by_name(name: str) -> Tuple[int, int, int]:
@logging_utils.squelch_repeated_log_messages(1)
-def fg(name: Optional[str] = "",
- red: Optional[int] = None,
- green: Optional[int] = None,
- blue: Optional[int] = None,
- *,
- force_16color: bool = False,
- force_216color: bool = False) -> str:
+def fg(
+ name: Optional[str] = "",
+ red: Optional[int] = None,
+ green: Optional[int] = None,
+ blue: Optional[int] = None,
+ *,
+ force_16color: bool = False,
+ force_216color: bool = False,
+) -> str:
"""Return the ANSI escape sequence to change the foreground color
being printed. Target colors may be indicated by name or R/G/B.
Result will use the 16 or 216 color scheme if force_16color or
@@ -1762,7 +1764,7 @@ def fg(name: Optional[str] = "",
rgb[1],
rgb[2],
force_16color=force_16color,
- force_216color=force_216color
+ force_216color=force_216color,
)
if red is None:
@@ -1791,14 +1793,16 @@ def _rgb_to_yiq(rgb: Tuple[int, int, int]) -> int:
def _contrast(rgb: Tuple[int, int, int]) -> Tuple[int, int, int]:
if _rgb_to_yiq(rgb) < 128:
- return (0xff, 0xff, 0xff)
+ return (0xFF, 0xFF, 0xFF)
return (0, 0, 0)
-def pick_contrasting_color(name: Optional[str] = "",
- red: Optional[int] = None,
- green: Optional[int] = None,
- blue: Optional[int] = None) -> Tuple[int, int, int]:
+def pick_contrasting_color(
+ name: Optional[str] = "",
+ red: Optional[int] = None,
+ green: Optional[int] = None,
+ blue: Optional[int] = None,
+) -> Tuple[int, int, int]:
"""This method will return a red, green, blue tuple representing a
contrasting color given the red, green, blue of a background
color or a color name of the background color.
@@ -1827,11 +1831,7 @@ def guess_name(name: str) -> str:
best_guess = None
max_ratio = None
for possibility in COLOR_NAMES_TO_RGB:
- r = difflib.SequenceMatcher(
- None,
- name,
- possibility
- ).ratio()
+ r = difflib.SequenceMatcher(None, name, possibility).ratio()
if max_ratio is None or r > max_ratio:
max_ratio = r
best_guess = possibility
@@ -1840,13 +1840,15 @@ def guess_name(name: str) -> str:
return best_guess
-def bg(name: Optional[str] = "",
- red: Optional[int] = None,
- green: Optional[int] = None,
- blue: Optional[int] = None,
- *,
- force_16color: bool = False,
- force_216color: bool = False) -> str:
+def bg(
+ name: Optional[str] = "",
+ red: Optional[int] = None,
+ green: Optional[int] = None,
+ blue: Optional[int] = None,
+ *,
+ force_16color: bool = False,
+ force_216color: bool = False,
+) -> str:
"""Returns an ANSI color code for changing the current background
color.
@@ -1868,7 +1870,7 @@ def bg(name: Optional[str] = "",
rgb[1],
rgb[2],
force_16color=force_16color,
- force_216color=force_216color
+ force_216color=force_216color,
)
if red is None:
red = 0
@@ -1912,8 +1914,8 @@ class StdoutInterceptor(io.TextIOBase):
class ProgrammableColorizer(StdoutInterceptor):
def __init__(
- self,
- patterns: Iterable[Tuple[re.Pattern, Callable[[Any, re.Pattern], str]]]
+ self,
+ patterns: Iterable[Tuple[re.Pattern, Callable[[Any, re.Pattern], str]]],
):
super().__init__()
self.patterns = [_ for _ in patterns]
@@ -1926,8 +1928,10 @@ class ProgrammableColorizer(StdoutInterceptor):
if __name__ == '__main__':
+
def main() -> None:
import doctest
+
doctest.testmod()
name = " ".join(sys.argv[1:])
@@ -1938,6 +1942,9 @@ if __name__ == '__main__':
_ = pick_contrasting_color(possibility)
xf = fg(None, _[0], _[1], _[2])
xb = bg(None, _[0], _[1], _[2])
- print(f'{f}{xb}{possibility}{reset()}\t\t\t'
- f'{b}{xf}{possibility}{reset()}')
+ print(
+ f'{f}{xb}{possibility}{reset()}\t\t\t'
+ f'{b}{xf}{possibility}{reset()}'
+ )
+
main()