Skip to content

Commit

Permalink
Improve ast types; revert several "redundant numeric union" changes…
Browse files Browse the repository at this point in the history
… from #7906 (#9130)

* Adapt number types in ast

Since mypy  0.990 type promotions was limited.
This means that complex is not longer promoted to int/float, therefore
we should adapt the types to list all possible types

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: AlexWaygood <alex.waygood@gmail.com>
  • Loading branch information
3 people authored Nov 14, 2022
1 parent 892bc02 commit f9cd5ee
Show file tree
Hide file tree
Showing 7 changed files with 10 additions and 8 deletions.
4 changes: 3 additions & 1 deletion .flake8
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,13 @@
# into the typeshed codebase to unblock flake8-pyi PRs, meaning these comments
# have "no matching violations" since the relevant flake8-pyi checks haven't
# yet been released.
# Y041 Use "complex" instead of "float | complex" (see "The numeric tower" in PEP 484)
# TODO this check is somewhat broken, see https://github.com/PyCQA/flake8-pyi/issues/299

[flake8]
per-file-ignores =
*.py: E203, E301, E302, E305, E501
*.pyi: B, E301, E302, E305, E501, E701, E741, NQA102, F401, F403, F405, F822, Y037
*.pyi: B, E301, E302, E305, E501, E701, E741, NQA102, F401, F403, F405, F822, Y037, Y041
# Since typing.pyi defines "overload" this is not recognized by flake8 as typing.overload.
# Unfortunately, flake8 does not allow to "noqa" just a specific error inside the file itself.
# https://github.com/PyCQA/flake8/issues/1079
Expand Down
4 changes: 2 additions & 2 deletions stdlib/_ast.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,7 @@ class JoinedStr(expr):

if sys.version_info < (3, 8):
class Num(expr): # Deprecated in 3.8; use Constant
n: complex
n: int | float | complex

class Str(expr): # Deprecated in 3.8; use Constant
s: str
Expand All @@ -349,7 +349,7 @@ class Constant(expr):
kind: str | None
# Aliases for value, for backwards compatibility
s: Any
n: complex
n: int | float | complex

if sys.version_info >= (3, 8):
class NamedExpr(expr):
Expand Down
2 changes: 1 addition & 1 deletion stdlib/ast.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ if sys.version_info >= (3, 8):
def __init__(cls, *args: object) -> None: ...

class Num(Constant, metaclass=_ABC):
value: complex
value: int | float | complex

class Str(Constant, metaclass=_ABC):
value: str
Expand Down
2 changes: 1 addition & 1 deletion stubs/protobuf/google/protobuf/internal/containers.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ from google.protobuf.message import Message

_T = TypeVar("_T")
_K = TypeVar("_K", bound=bool | int | str)
_ScalarV = TypeVar("_ScalarV", bound=bool | float | str | bytes)
_ScalarV = TypeVar("_ScalarV", bound=bool | int | float | str | bytes)
_MessageV = TypeVar("_MessageV", bound=Message)
_M = TypeVar("_M")

Expand Down
2 changes: 1 addition & 1 deletion stubs/pyaudio/pyaudio.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ paMacCoreStreamInfo: PaMacCoreStreamInfo
# Auxiliary types
_ChannelMap: TypeAlias = Sequence[int]
_PaHostApiInfo: TypeAlias = Mapping[str, str | int]
_PaDeviceInfo: TypeAlias = Mapping[str, str | float]
_PaDeviceInfo: TypeAlias = Mapping[str, str | int | float]
_StreamCallback: TypeAlias = Callable[[bytes | None, int, Mapping[str, float], int], tuple[bytes | None, int]]

def get_format_from_width(width: int, unsigned: bool = ...) -> int: ...
Expand Down
2 changes: 1 addition & 1 deletion stubs/typed-ast/typed_ast/ast27.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ class Repr(expr):
value: expr

class Num(expr):
n: complex
n: int | float | complex

class Str(expr):
s: str | bytes
Expand Down
2 changes: 1 addition & 1 deletion stubs/typed-ast/typed_ast/ast3.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,7 @@ class Call(expr):
keywords: list[keyword]

class Num(expr):
n: complex
n: int | float | complex

class Str(expr):
s: str
Expand Down

0 comments on commit f9cd5ee

Please sign in to comment.