summaryrefslogtreecommitdiff
path: root/sphinx/util/console.py
diff options
context:
space:
mode:
Diffstat (limited to 'sphinx/util/console.py')
-rw-r--r--sphinx/util/console.py37
1 files changed, 12 insertions, 25 deletions
diff --git a/sphinx/util/console.py b/sphinx/util/console.py
index c207d32ac..d73d0563e 100644
--- a/sphinx/util/console.py
+++ b/sphinx/util/console.py
@@ -11,6 +11,7 @@
import os
import re
import sys
+from typing import Dict
try:
# check if colorama is installed to support color on Windows
@@ -18,23 +19,17 @@ try:
except ImportError:
colorama = None
-if False:
- # For type annotation
- from typing import Dict # NOQA
-
_ansi_re = re.compile('\x1b\\[(\\d\\d;){0,2}\\d\\dm')
codes = {} # type: Dict[str, str]
-def terminal_safe(s):
- # type: (str) -> str
+def terminal_safe(s: str) -> str:
"""safely encode a string for printing to the terminal."""
return s.encode('ascii', 'backslashreplace').decode('ascii')
-def get_terminal_width():
- # type: () -> int
+def get_terminal_width() -> int:
"""Borrowed from the py lib."""
try:
import termios
@@ -53,8 +48,7 @@ def get_terminal_width():
_tw = get_terminal_width()
-def term_width_line(text):
- # type: (str) -> str
+def term_width_line(text: str) -> str:
if not codes:
# if no coloring, don't output fancy backspaces
return text + '\n'
@@ -63,8 +57,7 @@ def term_width_line(text):
return text.ljust(_tw + len(text) - len(_ansi_re.sub('', text))) + '\r'
-def color_terminal():
- # type: () -> bool
+def color_terminal() -> bool:
if sys.platform == 'win32' and colorama is not None:
colorama.init()
return True
@@ -80,21 +73,18 @@ def color_terminal():
return False
-def nocolor():
- # type: () -> None
+def nocolor() -> None:
if sys.platform == 'win32' and colorama is not None:
colorama.deinit()
codes.clear()
-def coloron():
- # type: () -> None
+def coloron() -> None:
codes.update(_orig_codes)
-def colorize(name, text, input_mode=False):
- # type: (str, str, bool) -> str
- def escseq(name):
+def colorize(name: str, text: str, input_mode: bool = False) -> str:
+ def escseq(name: str) -> str:
# Wrap escape sequence with ``\1`` and ``\2`` to let readline know
# it is non-printable characters
# ref: https://tiswww.case.edu/php/chet/readline/readline.html
@@ -109,15 +99,12 @@ def colorize(name, text, input_mode=False):
return escseq(name) + text + escseq('reset')
-def strip_colors(s):
- # type: (str) -> str
+def strip_colors(s: str) -> str:
return re.compile('\x1b.*?m').sub('', s)
-def create_color_func(name):
- # type: (str) -> None
- def inner(text):
- # type: (str) -> str
+def create_color_func(name: str) -> None:
+ def inner(text: str) -> str:
return colorize(name, text)
globals()[name] = inner