mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Merge pull request #4173 from eric-wieser/patch-2
quickstart: fix return type of term_decode
This commit is contained in:
@@ -44,7 +44,7 @@ from sphinx.util import texescape
|
||||
|
||||
if False:
|
||||
# For type annotation
|
||||
from typing import Any, Callable, Dict, List, Pattern # NOQA
|
||||
from typing import Any, Callable, Dict, List, Pattern, Union # NOQA
|
||||
|
||||
TERM_ENCODING = getattr(sys.stdin, 'encoding', None)
|
||||
|
||||
@@ -138,25 +138,25 @@ def ok(x):
|
||||
|
||||
|
||||
def term_decode(text):
|
||||
# type: (unicode) -> unicode
|
||||
# type: (Union[bytes,unicode]) -> unicode
|
||||
if isinstance(text, text_type):
|
||||
return text
|
||||
|
||||
# for Python 2.x, try to get a Unicode string out of it
|
||||
if text.decode('ascii', 'replace').encode('ascii', 'replace') == text:
|
||||
return text
|
||||
|
||||
# Use the known encoding, if possible
|
||||
if TERM_ENCODING:
|
||||
text = text.decode(TERM_ENCODING)
|
||||
else:
|
||||
print(turquoise('* Note: non-ASCII characters entered '
|
||||
'and terminal encoding unknown -- assuming '
|
||||
'UTF-8 or Latin-1.'))
|
||||
try:
|
||||
text = text.decode('utf-8')
|
||||
except UnicodeDecodeError:
|
||||
text = text.decode('latin1')
|
||||
return text
|
||||
return text.decode(TERM_ENCODING)
|
||||
|
||||
# If ascii is safe, use it with no warning
|
||||
if text.decode('ascii', 'replace').encode('ascii', 'replace') == text:
|
||||
return text.decode('ascii')
|
||||
|
||||
print(turquoise('* Note: non-ASCII characters entered '
|
||||
'and terminal encoding unknown -- assuming '
|
||||
'UTF-8 or Latin-1.'))
|
||||
try:
|
||||
return text.decode('utf-8')
|
||||
except UnicodeDecodeError:
|
||||
return text.decode('latin1')
|
||||
|
||||
|
||||
def do_prompt(d, key, text, default=None, validator=nonempty):
|
||||
|
||||
Reference in New Issue
Block a user