diff --git a/aider/main.py b/aider/main.py index 9929213ec..a5b3e5242 100644 --- a/aider/main.py +++ b/aider/main.py @@ -372,13 +372,40 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F default_config_files.reverse() parser = get_parser(default_config_files, git_root) - args, unknown = parser.parse_known_args(argv) + + try: + args, unknown = parser.parse_known_args(argv) + except AttributeError as e: + if "'bool' object has no attribute 'strip'" in str(e): + io.tool_error("Configuration error detected.") + io.tool_output("It seems you have 'yes:' in one of your configuration files.") + io.tool_output("Please replace 'yes:' with 'yes-always:' in the relevant .aider.conf.yml file.") + io.tool_output("Configuration files are searched for in this order:") + for config_file in default_config_files: + io.tool_output(f" - {config_file}") + io.tool_output("For more information, refer to the aider documentation on configuration.") + return 1 + else: + raise # Load the .env file specified in the arguments loaded_dotenvs = load_dotenv_files(git_root, args.env_file, args.encoding) # Parse again to include any arguments that might have been defined in .env - args = parser.parse_args(argv) + try: + args = parser.parse_args(argv) + except AttributeError as e: + if "'bool' object has no attribute 'strip'" in str(e): + io.tool_error("Configuration error detected.") + io.tool_output("It seems you have 'yes:' in one of your configuration files.") + io.tool_output("Please replace 'yes:' with 'yes-always:' in the relevant .aider.conf.yml file.") + io.tool_output("Configuration files are searched for in this order:") + for config_file in default_config_files: + io.tool_output(f" - {config_file}") + io.tool_output("For more information, refer to the aider documentation on configuration.") + return 1 + else: + raise if not args.verify_ssl: import httpx