refactor: handle UnicodeEncodeError by recreating InputOutput object

This commit is contained in:
Paul Gauthier 2024-09-03 17:15:00 -07:00
parent cc053b0b04
commit 1e8f2cbbb9

View file

@ -384,8 +384,9 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F
editing_mode = EditingMode.VI if args.vim else EditingMode.EMACS
io = InputOutput(
args.pretty,
def get_io(pretty):
return InputOutput(
pretty,
args.yes,
args.input_history_file,
args.chat_history_file,
@ -400,15 +401,14 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F
editingmode=editing_mode,
)
io = get_io(args.pretty)
try:
io.tool_output()
io.rule()
except UnicodeEncodeError as err:
if io.pretty:
io.pretty = False
io.tool_warning("Terminal does not support pretty output (UnicodeDecodeError)")
else:
if not io.pretty:
raise err
io = get_io(False)
io.tool_warning("Terminal does not support pretty output (UnicodeDecodeError)")
if args.gui and not return_coder:
if not check_streamlit_install(io):