diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 61231e384..f4058e786 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -31,7 +31,7 @@ repos: hooks: - id: pycln args: [--all] - additional_dependencies: [click<8.1] # temporary workaround until typer updates + stages: [manual] - repo: https://github.com/PyCQA/isort rev: 5.10.1 @@ -54,7 +54,7 @@ repos: - id: mypy name: mypy 3.6 on cibuildwheel/ exclude: ^(bin|cibuildwheel/resources|docs)/.*py$ - args: ["--python-version=3.6", "--show-error-codes"] + args: ["--python-version=3.6"] additional_dependencies: &mypy-dependencies - nox - packaging>=21.0 @@ -72,11 +72,11 @@ repos: - id: mypy name: mypy 3.7+ on bin/ files: ^((bin|docs)/.*py)$ - args: ["--python-version=3.7", "--show-error-codes"] + args: ["--python-version=3.7"] additional_dependencies: *mypy-dependencies - id: mypy name: mypy 3.10 - args: ["--python-version=3.10", "--show-error-codes"] + args: ["--python-version=3.10"] additional_dependencies: *mypy-dependencies - repo: https://github.com/asottile/yesqa @@ -98,8 +98,6 @@ repos: hooks: - id: python-check-blanket-noqa stages: [manual] - - id: python-check-blanket-type-ignore - stages: [manual] - id: python-no-log-warn - id: python-no-eval - id: python-use-type-annotations diff --git a/cibuildwheel/options.py b/cibuildwheel/options.py index 75ee7f6be..1c2509973 100644 --- a/cibuildwheel/options.py +++ b/cibuildwheel/options.py @@ -96,7 +96,7 @@ def architectures(self) -> Set[Architecture]: return self.globals.architectures -Setting = Union[Dict[str, str], List[str], str] +Setting = Union[Dict[str, str], List[str], str, int] class Override(NamedTuple): @@ -482,13 +482,12 @@ def build_options(self, identifier: Optional[str]) -> BuildOptions: if not config_value: # default to manylinux2014 - image = pinned_images.get("manylinux2014") + image = pinned_images["manylinux2014"] elif config_value in pinned_images: image = pinned_images[config_value] else: image = config_value - assert image is not None manylinux_images[build_platform] = image for build_platform in MUSLLINUX_ARCHS: @@ -496,7 +495,7 @@ def build_options(self, identifier: Optional[str]) -> BuildOptions: config_value = self.reader.get(f"musllinux-{build_platform}-image") - if config_value is None: + if not config_value: image = pinned_images["musllinux_1_1"] elif config_value in pinned_images: image = pinned_images[config_value] diff --git a/pyproject.toml b/pyproject.toml index a54d25a51..40f8dc5a6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,6 +38,8 @@ files = [ "noxfile.py", ] warn_unused_configs = true +show_error_codes = true + warn_redundant_casts = true no_implicit_reexport = true strict_equality = true @@ -49,6 +51,9 @@ disallow_any_generics = true warn_return_any = true no_implicit_optional = true +enable_error_code = ["ignore-without-code", "redundant-expr", "truthy-bool"] +warn_unreachable = true + [[tool.mypy.overrides]] module = "cibuildwheel.*" disallow_untyped_defs = true diff --git a/unit_test/wheel_print_test.py b/unit_test/wheel_print_test.py index 3fcadeb29..020600604 100644 --- a/unit_test/wheel_print_test.py +++ b/unit_test/wheel_print_test.py @@ -26,7 +26,7 @@ def test_no_printout_on_error(tmp_path, capsys): tmp_path.joinpath("example.1").touch() raise RuntimeError() - captured = capsys.readouterr() + captured = capsys.readouterr() # type: ignore[unreachable] assert captured.err == "" assert "example.0" not in captured.out