Enable --warn-redundant-casts option in mypy (#14671)

* Enable `--warn-redundant-casts` option in mypy

Doesn't do much but helps me sleep better at night.

* Changelog

* Fix name of the ignore

* Fix one more missed cast

Not sure why I didn't see this one locally, maybe I needed a poetry update

* Remove old comment

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
This commit is contained in:
David Robertson 2022-12-12 21:25:07 +00:00 committed by GitHub
parent 7982891794
commit 3d87847ecc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 7 additions and 6 deletions

1
changelog.d/14671.misc Normal file
View File

@ -0,0 +1 @@
Improve type hints.

View File

@ -12,6 +12,7 @@ local_partial_types = True
no_implicit_optional = True no_implicit_optional = True
disallow_untyped_defs = True disallow_untyped_defs = True
strict_equality = True strict_equality = True
warn_redundant_casts = True
files = files =
docker/, docker/,

View File

@ -27,7 +27,7 @@ import time
import urllib.request import urllib.request
from os import path from os import path
from tempfile import TemporaryDirectory from tempfile import TemporaryDirectory
from typing import Any, List, Optional, cast from typing import Any, List, Optional
import attr import attr
import click import click
@ -174,9 +174,7 @@ def _prepare() -> None:
click.get_current_context().abort() click.get_current_context().abort()
# Switch to the release branch. # Switch to the release branch.
# Cast safety: parse() won't return a version.LegacyVersion from our parsed_new_version = version.parse(new_version)
# version string format.
parsed_new_version = cast(version.Version, version.parse(new_version))
# We assume for debian changelogs that we only do RCs or full releases. # We assume for debian changelogs that we only do RCs or full releases.
assert not parsed_new_version.is_devrelease assert not parsed_new_version.is_devrelease

View File

@ -667,7 +667,8 @@ class DatabasePool:
) )
# also check variables referenced in func's closure # also check variables referenced in func's closure
if inspect.isfunction(func): if inspect.isfunction(func):
f = cast(types.FunctionType, func) # Keep the cast for now---it helps PyCharm to understand what `func` is.
f = cast(types.FunctionType, func) # type: ignore[redundant-cast]
if f.__closure__: if f.__closure__:
for i, cell in enumerate(f.__closure__): for i, cell in enumerate(f.__closure__):
if inspect.isgenerator(cell.cell_contents): if inspect.isgenerator(cell.cell_contents):

View File

@ -77,7 +77,7 @@ class PostgresEngine(
# docs: The number is formed by converting the major, minor, and # docs: The number is formed by converting the major, minor, and
# revision numbers into two-decimal-digit numbers and appending them # revision numbers into two-decimal-digit numbers and appending them
# together. For example, version 8.1.5 will be returned as 80105 # together. For example, version 8.1.5 will be returned as 80105
self._version = cast(int, db_conn.server_version) self._version = db_conn.server_version
allow_unsafe_locale = self.config.get("allow_unsafe_locale", False) allow_unsafe_locale = self.config.get("allow_unsafe_locale", False)
# Are we on a supported PostgreSQL version? # Are we on a supported PostgreSQL version?