@@ -48,7 +48,7 @@ class _HasRadiusAndRect(_HasRect, Protocol):
48
48
radius : float
49
49
50
50
# non-generic Group, used in Sprite
51
- _Group = AbstractGroup [_SupportsSprite ]
51
+ _Group = AbstractGroup [Any ]
52
52
53
53
# protocol helps with structural subtyping for typevars in sprite group generics
54
54
# and allows the use of any class with the required attributes and methods
@@ -118,35 +118,32 @@ class DirtySprite(Sprite, _SupportsDirtySprite):
118
118
def _set_visible (self , val : int ) -> None : ...
119
119
def _get_visible (self ) -> int : ...
120
120
121
- # covariant typevar bound to Sprite, _SupportsSprite Protocol ensures sprite
121
+ # typevar bound to Sprite, _SupportsSprite Protocol ensures sprite
122
122
# subclass passed to group has image and rect attributes
123
- # covariant is required for _Group to work with any AbstractGroup
124
- # otherwise Sprite.add/remove do not accept AbstractGroup as arguments
125
- _TSprite_co = TypeVar ("_TSprite_co" , bound = _SupportsSprite , covariant = True )
126
- _TDirtySprite_co = TypeVar (
127
- "_TDirtySprite_co" , bound = _SupportsDirtySprite , covariant = True
128
- )
123
+ _TSprite = TypeVar ("_TSprite" , bound = _SupportsSprite )
124
+ _TSprite2 = TypeVar ("_TSprite2" , bound = _SupportsSprite )
125
+ _TDirtySprite = TypeVar ("_TDirtySprite" , bound = _SupportsDirtySprite )
129
126
130
127
# typevar for sprite or iterable of sprites, used in Group init, add and remove
131
- _SpriteOrIterable = Union [_TSprite_co , Iterable [_SpriteOrIterable [_TSprite_co ]]]
128
+ _SpriteOrIterable = Union [_TSprite , Iterable [_SpriteOrIterable [_TSprite ]]]
132
129
133
- class AbstractGroup (Generic [_TSprite_co ]):
134
- spritedict : dict [_TSprite_co , Optional [Union [FRect , Rect ]]]
130
+ class AbstractGroup (Generic [_TSprite ]):
131
+ spritedict : dict [_TSprite , Optional [Union [FRect , Rect ]]]
135
132
lostsprites : list [Union [FRect , Rect ]]
136
133
def __class_getitem__ (cls , item : Any , / ) -> types .GenericAlias : ...
137
134
def __init__ (self ) -> None : ...
138
135
def __len__ (self ) -> int : ...
139
- def __iter__ (self ) -> Iterator [_TSprite_co ]: ...
136
+ def __iter__ (self ) -> Iterator [_TSprite ]: ...
140
137
def __bool__ (self ) -> bool : ...
141
138
def __contains__ (self , item : Any ) -> bool : ...
142
- def add_internal (self , sprite : _SupportsSprite , layer : None = None ) -> None : ...
143
- def remove_internal (self , sprite : _SupportsSprite ) -> None : ...
144
- def has_internal (self , sprite : _SupportsSprite ) -> bool : ...
139
+ def add_internal (self , sprite : _TSprite , layer : None = None ) -> None : ...
140
+ def remove_internal (self , sprite : _TSprite ) -> None : ...
141
+ def has_internal (self , sprite : _TSprite ) -> bool : ...
145
142
def copy (self ) -> Self : ...
146
- def sprites (self ) -> list [_TSprite_co ]: ...
147
- def add (self , * sprites : _SpriteOrIterable [_TSprite_co ]) -> None : ...
148
- def remove (self , * sprites : _SpriteOrIterable [_TSprite_co ]) -> None : ...
149
- def has (self , * sprites : _SpriteOrIterable [_TSprite_co ]) -> bool : ...
143
+ def sprites (self ) -> list [_TSprite ]: ...
144
+ def add (self , * sprites : _SpriteOrIterable [_TSprite ]) -> None : ...
145
+ def remove (self , * sprites : _SpriteOrIterable [_TSprite ]) -> None : ...
146
+ def has (self , * sprites : _SpriteOrIterable [_TSprite ]) -> bool : ...
150
147
def update (self , * args : Any , ** kwargs : Any ) -> None : ...
151
148
def draw (
152
149
self , surface : Surface , bgd : Optional [Surface ] = None , special_flags : int = 0
@@ -158,41 +155,41 @@ class AbstractGroup(Generic[_TSprite_co]):
158
155
) -> None : ...
159
156
def empty (self ) -> None : ...
160
157
161
- class Group (AbstractGroup [_TSprite_co ]):
162
- def __init__ (self , * sprites : _SpriteOrIterable [_TSprite_co ]) -> None : ...
158
+ class Group (AbstractGroup [_TSprite ]):
159
+ def __init__ (self , * sprites : _SpriteOrIterable [_TSprite ]) -> None : ...
163
160
164
161
# these are aliased in the code too
165
162
@deprecated ("Use `pygame.sprite.Group` instead" )
166
- class RenderPlain (Group [_TSprite_co ]): ...
163
+ class RenderPlain (Group [_TSprite ]): ...
167
164
168
165
@deprecated ("Use `pygame.sprite.Group` instead" )
169
- class RenderClear (Group [_TSprite_co ]): ...
166
+ class RenderClear (Group [_TSprite ]): ...
170
167
171
- class RenderUpdates (Group [_TSprite_co ]): ...
168
+ class RenderUpdates (Group [_TSprite ]): ...
172
169
173
170
@deprecated ("Use `pygame.sprite.RenderUpdates` instead" )
174
- class OrderedUpdates (RenderUpdates [_TSprite_co ]): ...
171
+ class OrderedUpdates (RenderUpdates [_TSprite ]): ...
175
172
176
- class LayeredUpdates (AbstractGroup [_TSprite_co ]):
173
+ class LayeredUpdates (AbstractGroup [_TSprite ]):
177
174
def __init__ (
178
- self , * sprites : _SpriteOrIterable [_TSprite_co ], ** kwargs : Any
175
+ self , * sprites : _SpriteOrIterable [_TSprite ], ** kwargs : Any
179
176
) -> None : ...
180
- def add (self , * sprites : _SpriteOrIterable [_TSprite_co ], ** kwargs : Any ) -> None : ...
181
- def get_sprites_at (self , pos : Point ) -> list [_TSprite_co ]: ...
182
- def get_sprite (self , idx : int ) -> _TSprite_co : ...
183
- def remove_sprites_of_layer (self , layer_nr : int ) -> list [_TSprite_co ]: ...
177
+ def add (self , * sprites : _SpriteOrIterable [_TSprite ], ** kwargs : Any ) -> None : ...
178
+ def get_sprites_at (self , pos : Point ) -> list [_TSprite ]: ...
179
+ def get_sprite (self , idx : int ) -> _TSprite : ...
180
+ def remove_sprites_of_layer (self , layer_nr : int ) -> list [_TSprite ]: ...
184
181
def layers (self ) -> list [int ]: ...
185
- def change_layer (self , sprite : _SupportsSprite , new_layer : int ) -> None : ...
186
- def get_layer_of_sprite (self , sprite : _SupportsSprite ) -> int : ...
182
+ def change_layer (self , sprite : _TSprite , new_layer : int ) -> None : ...
183
+ def get_layer_of_sprite (self , sprite : _TSprite ) -> int : ...
187
184
def get_top_layer (self ) -> int : ...
188
185
def get_bottom_layer (self ) -> int : ...
189
- def move_to_front (self , sprite : _SupportsSprite ) -> None : ...
190
- def move_to_back (self , sprite : _SupportsSprite ) -> None : ...
191
- def get_top_sprite (self ) -> _TSprite_co : ...
192
- def get_sprites_from_layer (self , layer : int ) -> list [_TSprite_co ]: ...
186
+ def move_to_front (self , sprite : _TSprite ) -> None : ...
187
+ def move_to_back (self , sprite : _TSprite ) -> None : ...
188
+ def get_top_sprite (self ) -> _TSprite : ...
189
+ def get_sprites_from_layer (self , layer : int ) -> list [_TSprite ]: ...
193
190
def switch_layer (self , layer1_nr : int , layer2_nr : int ) -> None : ...
194
191
195
- class LayeredDirty (LayeredUpdates [_TDirtySprite_co ]):
192
+ class LayeredDirty (LayeredUpdates [_TDirtySprite ]):
196
193
def draw (
197
194
self ,
198
195
surface : Surface ,
@@ -210,9 +207,9 @@ class LayeredDirty(LayeredUpdates[_TDirtySprite_co]):
210
207
)
211
208
def set_timing_treshold (self , time_ms : SupportsFloat ) -> None : ...
212
209
213
- class GroupSingle (AbstractGroup [_TSprite_co ]):
214
- sprite : _TSprite_co
215
- def __init__ (self , sprite : Optional [_TSprite_co ] = None ) -> None : ...
210
+ class GroupSingle (AbstractGroup [_TSprite ]):
211
+ sprite : _TSprite
212
+ def __init__ (self , sprite : Optional [_TSprite ] = None ) -> None : ...
216
213
217
214
# argument to collide_rect must have rect attribute
218
215
def collide_rect (left : _HasRect , right : _HasRect ) -> bool : ...
@@ -244,9 +241,7 @@ def collide_mask(
244
241
left : _SupportsCollideMask , right : _SupportsCollideMask
245
242
) -> Optional [tuple [int , int ]]: ...
246
243
247
- # typevars for sprite collide functions
248
- _TSprite = TypeVar ("_TSprite" , bound = _SupportsSprite )
249
- _TSprite2 = TypeVar ("_TSprite2" , bound = _SupportsSprite )
244
+ # _HasRect typevar for sprite collide functions
250
245
_THasRect = TypeVar ("_THasRect" , bound = _HasRect )
251
246
252
247
def spritecollide (
0 commit comments