diff --git a/buildconfig/stubs/pygame/geometry.pyi b/buildconfig/stubs/pygame/geometry.pyi index 4814310b6e..b1b86b8b75 100644 --- a/buildconfig/stubs/pygame/geometry.pyi +++ b/buildconfig/stubs/pygame/geometry.pyi @@ -10,7 +10,6 @@ from typing import ( from pygame import Rect, FRect from pygame.typing import Point, RectLike, SequenceLike -from .rect import Rect, FRect from .math import Vector2 _CanBeCircle = Union[Circle, Tuple[Point, float], SequenceLike[float]] diff --git a/buildconfig/stubs/pygame/typing.pyi b/buildconfig/stubs/pygame/typing.pyi index 45d793a4ac..531a037fb4 100644 --- a/buildconfig/stubs/pygame/typing.pyi +++ b/buildconfig/stubs/pygame/typing.pyi @@ -14,7 +14,7 @@ __all__ = [ import sys from abc import abstractmethod -from typing import IO, Callable, Tuple, Union, TypeVar, Protocol +from typing import IO, Callable, Tuple, Union, TypeVar, Protocol, TypeAlias if sys.version_info >= (3, 9): from os import PathLike as _PathProtocol @@ -27,9 +27,9 @@ else: # For functions that take a file name -_PathLike = Union[str, bytes, _PathProtocol[str], _PathProtocol[bytes]] +_PathLike: TypeAlias = Union[str, bytes, _PathProtocol[str], _PathProtocol[bytes]] # Most pygame functions that take a file argument should be able to handle a FileLike type -FileLike = Union[_PathLike, IO[bytes], IO[str]] +FileLike: TypeAlias = Union[_PathLike, IO[bytes], IO[str]] _T_co = TypeVar("_T_co", covariant=True) @@ -49,11 +49,11 @@ class SequenceLike(Protocol[_T_co]): # Pygame handles float without errors in most cases where a point is expected, # usually rounding to int. Also, 'Union[int, float] == float' -Point = SequenceLike[float] +Point: TypeAlias = SequenceLike[float] # This is used where ints are strictly required -IntPoint = SequenceLike[int] +IntPoint: TypeAlias = SequenceLike[int] -ColorLike = Union[int, str, SequenceLike[int]] +ColorLike: TypeAlias = Union[int, str, SequenceLike[int]] class _HasRectAttribute(Protocol): @@ -63,8 +63,8 @@ class _HasRectAttribute(Protocol): def rect(self) -> Union["RectLike", Callable[[], "RectLike"]]: ... -RectLike = Union[SequenceLike[float], SequenceLike[Point], _HasRectAttribute] +RectLike: TypeAlias = Union[SequenceLike[float], SequenceLike[Point], _HasRectAttribute] # cleanup namespace -del sys, abstractmethod, IO, Callable, Tuple, Union, TypeVar, Protocol +del sys, abstractmethod, IO, Callable, Tuple, Union, TypeVar, Protocol, TypeAlias diff --git a/src_py/__init__.py b/src_py/__init__.py index 5f7e540547..c227a9e55e 100644 --- a/src_py/__init__.py +++ b/src_py/__init__.py @@ -48,6 +48,7 @@ except (FileNotFoundError, ValueError): pass + d = "" # define variable here so that we can consistently delete it for d in dll_parents: # adding to PATH is the legacy way, os.add_dll_directory is the new # and recommended method. For extra safety we do both @@ -55,7 +56,7 @@ os.add_dll_directory(d) # cleanup namespace - del pygame_dir, dll_parents + del pygame_dir, dll_parents, d # when running under X11, always set the SDL window WM_CLASS to make the # window managers correctly match the pygame window. diff --git a/src_py/typing.py b/src_py/typing.py index 45d793a4ac..531a037fb4 100644 --- a/src_py/typing.py +++ b/src_py/typing.py @@ -14,7 +14,7 @@ import sys from abc import abstractmethod -from typing import IO, Callable, Tuple, Union, TypeVar, Protocol +from typing import IO, Callable, Tuple, Union, TypeVar, Protocol, TypeAlias if sys.version_info >= (3, 9): from os import PathLike as _PathProtocol @@ -27,9 +27,9 @@ def __fspath__(self) -> _AnyStr_co: ... # For functions that take a file name -_PathLike = Union[str, bytes, _PathProtocol[str], _PathProtocol[bytes]] +_PathLike: TypeAlias = Union[str, bytes, _PathProtocol[str], _PathProtocol[bytes]] # Most pygame functions that take a file argument should be able to handle a FileLike type -FileLike = Union[_PathLike, IO[bytes], IO[str]] +FileLike: TypeAlias = Union[_PathLike, IO[bytes], IO[str]] _T_co = TypeVar("_T_co", covariant=True) @@ -49,11 +49,11 @@ def __len__(self) -> int: ... # Pygame handles float without errors in most cases where a point is expected, # usually rounding to int. Also, 'Union[int, float] == float' -Point = SequenceLike[float] +Point: TypeAlias = SequenceLike[float] # This is used where ints are strictly required -IntPoint = SequenceLike[int] +IntPoint: TypeAlias = SequenceLike[int] -ColorLike = Union[int, str, SequenceLike[int]] +ColorLike: TypeAlias = Union[int, str, SequenceLike[int]] class _HasRectAttribute(Protocol): @@ -63,8 +63,8 @@ class _HasRectAttribute(Protocol): def rect(self) -> Union["RectLike", Callable[[], "RectLike"]]: ... -RectLike = Union[SequenceLike[float], SequenceLike[Point], _HasRectAttribute] +RectLike: TypeAlias = Union[SequenceLike[float], SequenceLike[Point], _HasRectAttribute] # cleanup namespace -del sys, abstractmethod, IO, Callable, Tuple, Union, TypeVar, Protocol +del sys, abstractmethod, IO, Callable, Tuple, Union, TypeVar, Protocol, TypeAlias