@@ -6,10 +6,13 @@ from typing import Optional
66from typing import Sequence
77from typing import Tuple
88from typing import Type
9+ from typing import TypeVar
910
1011from gi .repository import GLib
1112from gi .repository import GObject
1213
14+ ItemType = TypeVar ("ItemType" )
15+
1316DBUS_METHOD_INVOCATION_HANDLED : bool = True
1417DBUS_METHOD_INVOCATION_UNHANDLED : bool = False
1518DEBUG_CONTROLLER_EXTENSION_POINT_NAME : str = "gio-debug-controller"
@@ -4035,45 +4038,64 @@ class InputVector(GObject.GPointer):
40354038 size : int = ...
40364039
40374040# override
4038- class ListModel (GObject .GInterface ):
4039- def __contains__ (self , item : object ) -> bool : ...
4040- def __getitem__ (self , position : int ) -> GObject .Object : ...
4041- def __iter__ (self ) -> Iterator [GObject .Object ]: ...
4041+ class ListModel (GObject .GInterface , Generic [ItemType ]):
4042+ # override
4043+ def __contains__ (self , item : ItemType ) -> bool : ...
4044+ # override
4045+ def __getitem__ (self , position : int ) -> ItemType : ...
4046+ # override
4047+ def __iter__ (self ) -> Iterator [ItemType ]: ...
40424048 def __len__ (self ) -> int : ...
4043- def get_item (self , position : int ) -> Optional [GObject .Object ]: ...
4044- def get_item_type (self ) -> Type : ...
4049+ # override
4050+ def get_item (self , position : int ) -> Optional [ItemType ]: ...
4051+ # override
4052+ def get_item_type (self ) -> Type [ItemType ]: ...
40454053 def get_n_items (self ) -> int : ...
40464054 def items_changed (self , position : int , removed : int , added : int ) -> None : ...
40474055
4048- class ListModelInterface (GObject .GPointer ):
4056+ # override
4057+ class ListModelInterface (GObject .GPointer , Generic [ItemType ]):
40494058 g_iface : GObject .TypeInterface = ...
4050- get_item_type : Callable [[ListModel ], Type ] = ...
4051- get_n_items : Callable [[ListModel ], int ] = ...
4052- get_item : Callable [[ListModel , int ], Optional [GObject .Object ]] = ...
4059+ # override
4060+ get_item_type : Callable [[ListModel [ItemType ]], Type [ItemType ]] = ...
4061+ # override
4062+ get_n_items : Callable [[ListModel [ItemType ]], int ] = ...
4063+ # override
4064+ get_item : Callable [[ListModel [ItemType ], int ], Optional [ItemType ]] = ...
40534065
4054- class ListStore (GObject .Object , ListModel ):
4066+ # override
4067+ class ListStore (GObject .Object , Generic [ItemType ], ListModel [ItemType ]):
40554068 class Props :
4056- item_type : Type
4069+ # override
4070+ item_type : Type [ItemType ]
40574071 n_items : int
40584072 props : Props = ...
4059- def __init__ (self , item_type : Type = ...): ...
4060- def append (self , item : GObject .Object ) -> None : ...
4061- def find (self , item : GObject .Object ) -> Tuple [bool , int ]: ...
4073+ # override
4074+ def __init__ (self , item_type : Type [ItemType ] = ...): ...
4075+ # override
4076+ def append (self , item : ItemType ) -> None : ...
4077+ # override
4078+ def find (self , item : ItemType ) -> Tuple [bool , int ]: ...
4079+ # override
40624080 def find_with_equal_func (
4063- self , item : GObject . Object , equal_func : Callable [[None , None ], bool ]
4081+ self , item : ItemType , equal_func : Callable [[None , None ], bool ]
40644082 ) -> Tuple [bool , int ]: ...
4083+ # override
40654084 def find_with_equal_func_full (
4066- self , item : GObject . Object , equal_func : Callable [..., bool ], * user_data : Any
4085+ self , item : ItemType , equal_func : Callable [..., bool ], * user_data : Any
40674086 ) -> Tuple [bool , int ]: ...
4068- def insert (self , position : int , item : GObject .Object ) -> None : ...
4087+ # override
4088+ def insert (self , position : int , item : ItemType ) -> None : ...
40694089 def insert_sorted (self , item , compare_func , * user_data ): ... # FIXME Function
4090+ # override
40704091 @classmethod
4071- def new (cls , item_type : Type ) -> ListStore : ...
4092+ def new (cls , item_type : Type [ ItemType ] ) -> ListStore [ ItemType ] : ...
40724093 def remove (self , position : int ) -> None : ...
40734094 def remove_all (self ) -> None : ...
40744095 def sort (self , compare_func , * user_data ): ... # FIXME Function
4096+ # override
40754097 def splice (
4076- self , position : int , n_removals : int , additions : Sequence [GObject . Object ]
4098+ self , position : int , n_removals : int , additions : Sequence [ItemType ]
40774099 ) -> None : ...
40784100
40794101class ListStoreClass (GObject .GPointer ):
0 commit comments