From 1538271555d36e10795b22c2f5162995c5c86cbe Mon Sep 17 00:00:00 2001 From: Ruslan Sayfutdinov Date: Tue, 11 May 2021 13:29:14 +0100 Subject: [PATCH] Don't generate mypy.ini if errors are found (#50456) --- script/hassfest/mypy_config.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/script/hassfest/mypy_config.py b/script/hassfest/mypy_config.py index 54e5b5b13a7..9b03210e9eb 100644 --- a/script/hassfest/mypy_config.py +++ b/script/hassfest/mypy_config.py @@ -308,7 +308,9 @@ def generate_and_validate(config: Config) -> str: "mypy_config", f"Only components should be added: {module}" ) if module in ignored_modules_set: - config.add_error("mypy_config", f"Module '{module}' is in ignored list") + config.add_error( + "mypy_config", f"Module '{module}' is in ignored list in mypy_config.py" + ) # Validate that all modules exist. all_modules = strict_modules + IGNORED_MODULES @@ -326,6 +328,10 @@ def generate_and_validate(config: Config) -> str: if not module_path.is_file(): config.add_error("mypy_config", f"Module '{module} doesn't exist") + # Don't generate mypy.ini if there're errors found because it will likely crash. + if config.errors: + return "" + mypy_config = configparser.ConfigParser() general_section = "mypy" @@ -369,6 +375,9 @@ def validate(integrations: dict[str, Integration], config: Config) -> None: config_path = config.root / "mypy.ini" config.cache["mypy_config"] = content = generate_and_validate(config) + if config.errors: + return + with open(str(config_path)) as fp: if fp.read().strip() != content: config.add_error(