Skip to content

Commit

Permalink
Mark old xType aliases as deprecated
Browse files Browse the repository at this point in the history
Doesn't touch JoystickType because the C code still works the old way I think, doesn't touch CameraType because CameraType is not in the stubs. In fact CameraType might be removable as an internal implementation detail.
  • Loading branch information
Starbuck5 committed Jan 10, 2025
1 parent 0ddbe21 commit 05325a9
Show file tree
Hide file tree
Showing 6 changed files with 48 additions and 9 deletions.
30 changes: 28 additions & 2 deletions buildconfig/stubs/pygame/event.pyi
Original file line number Diff line number Diff line change
@@ -1,9 +1,37 @@
from typing import Any, Optional, Union, final
from typing_extensions import deprecated # added in 3.13

from pygame.typing import SequenceLike

@final
class Event:
# Event fields here duplicated below into EventType because Event is
# marked as final and can't be subclassed like the other xType aliases
# are to allow @deprecated.

@property
def type(self) -> int: ...
__dict__: dict[str, Any]
__hash__: None # type: ignore
def __init__(
self, type: int, dict: dict[str, Any] = ..., **kwargs: Any
) -> None: ...
def __getattribute__(self, name: str) -> Any: ...
def __setattr__(self, name: str, value: Any) -> None: ...
def __delattr__(self, name: str) -> None: ...
def __bool__(self) -> bool: ...

# this is at the bottom because mypy complains if this declaration comes
# before any uses of the dict[] typehinting because of the same naming
@property
def dict(self) -> dict[str, Any]: ...

@final
@deprecated("Use `Event` instead (this is an old alias)")
class EventType:
# Duplicated Event fields here because it is marked as final and can't be
# subclassed like the other xType aliases are to allow @deprecated.

@property
def type(self) -> int: ...
__dict__: dict[str, Any]
Expand Down Expand Up @@ -41,5 +69,3 @@ def set_grab(grab: bool, /) -> None: ...
def get_grab() -> bool: ...
def post(event: Event, /) -> bool: ...
def custom_type() -> int: ...

EventType = Event
4 changes: 3 additions & 1 deletion buildconfig/stubs/pygame/font.pyi
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from collections.abc import Callable, Hashable, Iterable
from typing import Literal, Optional, Union
from typing_extensions import deprecated # added in 3.13

from pygame.surface import Surface

Expand Down Expand Up @@ -87,4 +88,5 @@ class Font:
def get_point_size(self) -> int: ...
def set_point_size(self, val: int, /) -> None: ...

FontType = Font
@deprecated("Use `Font` instead (this is an old alias)")
class FontType(Font): ...
4 changes: 3 additions & 1 deletion buildconfig/stubs/pygame/mask.pyi
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from typing import Any, Optional, Union
from typing_extensions import deprecated # added in 3.13

from pygame.rect import Rect
from pygame.surface import Surface
Expand Down Expand Up @@ -54,4 +55,5 @@ class Mask:
dest: Union[RectLike, Point] = (0, 0),
) -> Surface: ...

MaskType = Mask
@deprecated("Use `Mask` instead (this is an old alias)")
class MaskType(Mask): ...
8 changes: 6 additions & 2 deletions buildconfig/stubs/pygame/mixer.pyi
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from typing import Any, Optional, Union, overload
from typing_extensions import deprecated # added in 3.13

import numpy

Expand Down Expand Up @@ -100,5 +101,8 @@ class Channel:
def set_endevent(self, type: Union[int, Event] = 0, /) -> None: ...
def get_endevent(self) -> int: ...

SoundType = Sound
ChannelType = Channel
@deprecated("Use `Sound` instead (this is an old alias)")
class SoundType(Sound): ...

@deprecated("Use `Channel` instead (this is an old alias)")
class ChannelType(Channel): ...
8 changes: 6 additions & 2 deletions buildconfig/stubs/pygame/rect.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ from typing import (
overload,
Optional,
)
from typing_extensions import deprecated # added in 3.13

from pygame.typing import Point, RectLike, SequenceLike

Expand Down Expand Up @@ -276,5 +277,8 @@ class Rect(_GenericRect[int]):
class FRect(_GenericRect[float]):
...

RectType = Rect
FRectType = FRect
@deprecated("Use `Rect` instead (this is an old alias)")
class RectType(Rect): ...

@deprecated("Use `FRect` instead (this is an old alias)")
class FRectType(FRect): ...
3 changes: 2 additions & 1 deletion buildconfig/stubs/pygame/surface.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -168,4 +168,5 @@ class Surface:
def premul_alpha(self) -> Surface: ...
def premul_alpha_ip(self) -> Surface: ...

SurfaceType = Surface
@deprecated("Use `Surface` instead (this is an old alias)")
class SurfaceType(Surface): ...

0 comments on commit 05325a9

Please sign in to comment.