From 1e8f2cbbb9ca16d83faf75cc65db31294d8193be Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Tue, 3 Sep 2024 17:15:00 -0700 Subject: [PATCH] refactor: handle UnicodeEncodeError by recreating InputOutput object --- aider/main.py | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/aider/main.py b/aider/main.py index 7b6263ce1..163817b84 100644 --- a/aider/main.py +++ b/aider/main.py @@ -384,31 +384,31 @@ 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, - args.yes, - args.input_history_file, - args.chat_history_file, - input=input, - output=output, - user_input_color=args.user_input_color, - tool_output_color=args.tool_output_color, - tool_error_color=args.tool_error_color, - dry_run=args.dry_run, - encoding=args.encoding, - llm_history_file=args.llm_history_file, - editingmode=editing_mode, - ) + def get_io(pretty): + return InputOutput( + pretty, + args.yes, + args.input_history_file, + args.chat_history_file, + input=input, + output=output, + user_input_color=args.user_input_color, + tool_output_color=args.tool_output_color, + tool_error_color=args.tool_error_color, + dry_run=args.dry_run, + encoding=args.encoding, + llm_history_file=args.llm_history_file, + 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):