1+ import sys
12from typing import Any , Optional , Union , overload
23
3- import numpy
44from pygame .event import Event
55from pygame .typing import FileLike
6- from typing_extensions import deprecated # added in 3.13
6+ from typing_extensions import (
7+ Buffer , # collections.abc 3.12
8+ deprecated , # added in 3.13
9+ )
710
811from . import mixer_music
912
@@ -46,13 +49,7 @@ class Sound:
4649 @overload
4750 def __init__ (self , file : FileLike ) -> None : ...
4851 @overload
49- def __init__ (
50- self , buffer : Any
51- ) -> None : ... # Buffer protocol is still not implemented in typing
52- @overload
53- def __init__ (
54- self , array : numpy .ndarray
55- ) -> None : ... # Buffer protocol is still not implemented in typing
52+ def __init__ (self , buffer : Buffer ) -> None : ...
5653 def play (
5754 self ,
5855 loops : int = 0 ,
@@ -65,6 +62,9 @@ class Sound:
6562 def __array_interface__ (self ) -> dict [str , Any ]: ...
6663 @property
6764 def __array_struct__ (self ) -> Any : ...
65+ if sys .version_info >= (3 , 12 ):
66+ def __buffer__ (self , flags : int , / ) -> memoryview [int ]: ...
67+ def __release_buffer__ (self , view : memoryview [int ], / ) -> None : ...
6868 def stop (self ) -> None : ...
6969 def fadeout (self , time : int , / ) -> None : ...
7070 def set_volume (self , value : float , / ) -> None : ...
0 commit comments