Rename timer; add a test for OutputContext.
[python_utils.git] / ansi.py
diff --git a/ansi.py b/ansi.py
index dc9a31542f4551a73d9ab1de341b7fce11e85f47..4c580c0a0262ad133a71f6def6ca63a7d003dd8f 100755 (executable)
--- a/ansi.py
+++ b/ansi.py
@@ -5,8 +5,6 @@ import logging
 import sys
 from typing import Dict, Optional, Tuple
 
-import string_utils
-
 logger = logging.getLogger(__name__)
 
 # https://en.wikipedia.org/wiki/ANSI_escape_code
@@ -1732,6 +1730,8 @@ def fg(name: Optional[str] = "",
        *,
        force_16color: bool = False,
        force_216color: bool = False) -> str:
+    import string_utils
+
     if name is not None and string_utils.is_full_string(name):
         rgb = _find_color_by_name(name)
         return fg(
@@ -1777,6 +1777,8 @@ def pick_contrasting_color(name: Optional[str] = "",
                            red: Optional[int] = None,
                            green: Optional[int] = None,
                            blue: Optional[int] = None) -> Tuple[int, int, int]:
+    import string_utils
+
     if name is not None and string_utils.is_full_string(name):
         rgb = _find_color_by_name(name)
     else:
@@ -1812,6 +1814,8 @@ def bg(name: Optional[str] = "",
        *,
        force_16color: bool = False,
        force_216color: bool = False) -> str:
+    import string_utils
+
     if name is not None and string_utils.is_full_string(name):
         rgb = _find_color_by_name(name)
         return bg(
@@ -1842,18 +1846,16 @@ def bg(name: Optional[str] = "",
     return bg_24bit(red, green, blue)
 
 
-def main() -> None:
-    name = " ".join(sys.argv[1:])
-    for possibility in COLOR_NAMES_TO_RGB:
-        if name in possibility:
-            f = fg(possibility)
-            b = bg(possibility)
-            _ = 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()}')
-
-
 if __name__ == '__main__':
+    def main() -> None:
+        name = " ".join(sys.argv[1:])
+        for possibility in COLOR_NAMES_TO_RGB:
+            if name in possibility:
+                f = fg(possibility)
+                b = bg(possibility)
+                _ = 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()}')
     main()