Wizard: fix colored text in input prompts (#5313)

This commit is contained in:
Kuba Szczodrzyński
2023-09-21 00:09:23 +02:00
committed by Jesse Hills
parent 807c47a076
commit d7e267eca5
3 changed files with 26 additions and 18 deletions
+10 -4
View File
@@ -57,7 +57,7 @@ class SimpleRegistry(dict):
return decorator
def safe_print(message=""):
def safe_print(message="", end="\n"):
from esphome.core import CORE
if CORE.dashboard:
@@ -67,20 +67,26 @@ def safe_print(message=""):
pass
try:
print(message)
print(message, end=end)
return
except UnicodeEncodeError:
pass
try:
print(message.encode("utf-8", "backslashreplace"))
print(message.encode("utf-8", "backslashreplace"), end=end)
except UnicodeEncodeError:
try:
print(message.encode("ascii", "backslashreplace"))
print(message.encode("ascii", "backslashreplace"), end=end)
except UnicodeEncodeError:
print("Cannot print line because of invalid locale!")
def safe_input(prompt=""):
if prompt:
safe_print(prompt, end="")
return input()
def shlex_quote(s):
if not s:
return "''"