@@ -8,6 +8,7 @@ from typing import (
88 MutableMapping as MutableMapping ,
99 Optional ,
1010 Sequence ,
11+ Text ,
1112 TypeVar ,
1213 Union ,
1314 overload ,
@@ -16,10 +17,12 @@ from typing import (
1617from google .protobuf .descriptor import Descriptor
1718from google .protobuf .internal .message_listener import MessageListener
1819from google .protobuf .internal .python_message import GeneratedProtocolMessageType
20+ from google .protobuf .message import Message
1921
2022_T = TypeVar ("_T" )
21- _K = TypeVar ("_K" )
22- _V = TypeVar ("_V" )
23+ _K = TypeVar ("_K" , bound = Union [bool , int , Text ])
24+ _ScalarV = TypeVar ("_ScalarV" , bound = Union [bool , int , float , Text , bytes ])
25+ _MessageV = TypeVar ("_MessageV" , bound = Message )
2326_M = TypeVar ("_M" )
2427
2528class BaseContainer (Sequence [_T ]):
@@ -34,57 +37,57 @@ class BaseContainer(Sequence[_T]):
3437 @overload
3538 def __getitem__ (self , key : slice ) -> List [_T ]: ...
3639
37- class RepeatedScalarFieldContainer (BaseContainer [_T ]):
40+ class RepeatedScalarFieldContainer (BaseContainer [_ScalarV ]):
3841 def __init__ (self , message_listener : MessageListener , message_descriptor : Descriptor ) -> None : ...
39- def append (self , value : _T ) -> None : ...
40- def insert (self , key : int , value : _T ) -> None : ...
41- def extend (self , elem_seq : Optional [Iterable [_T ]]) -> None : ...
42+ def append (self , value : _ScalarV ) -> None : ...
43+ def insert (self , key : int , value : _ScalarV ) -> None : ...
44+ def extend (self , elem_seq : Optional [Iterable [_ScalarV ]]) -> None : ...
4245 def MergeFrom (self : _M , other : _M ) -> None : ...
43- def remove (self , elem : _T ) -> None : ...
44- def pop (self , key : int = ...) -> _T : ...
46+ def remove (self , elem : _ScalarV ) -> None : ...
47+ def pop (self , key : int = ...) -> _ScalarV : ...
4548 @overload
46- def __setitem__ (self , key : int , value : _T ) -> None : ...
49+ def __setitem__ (self , key : int , value : _ScalarV ) -> None : ...
4750 @overload
48- def __setitem__ (self , key : slice , value : Iterable [_T ]) -> None : ...
49- def __getslice__ (self , start : int , stop : int ) -> List [_T ]: ...
50- def __setslice__ (self , start : int , stop : int , values : Iterable [_T ]) -> None : ...
51+ def __setitem__ (self , key : slice , value : Iterable [_ScalarV ]) -> None : ...
52+ def __getslice__ (self , start : int , stop : int ) -> List [_ScalarV ]: ...
53+ def __setslice__ (self , start : int , stop : int , values : Iterable [_ScalarV ]) -> None : ...
5154 def __delitem__ (self , key : Union [int , slice ]) -> None : ...
5255 def __delslice__ (self , start : int , stop : int ) -> None : ...
5356 def __eq__ (self , other : object ) -> bool : ...
5457
55- class RepeatedCompositeFieldContainer (BaseContainer [_T ]):
58+ class RepeatedCompositeFieldContainer (BaseContainer [_MessageV ]):
5659 def __init__ (self , message_listener : MessageListener , type_checker : Any ) -> None : ...
57- def add (self , ** kwargs : Any ) -> _T : ...
58- def append (self , value : _T ) -> None : ...
59- def insert (self , key : int , value : _T ) -> None : ...
60- def extend (self , elem_seq : Iterable [_T ]) -> None : ...
60+ def add (self , ** kwargs : Any ) -> _MessageV : ...
61+ def append (self , value : _MessageV ) -> None : ...
62+ def insert (self , key : int , value : _MessageV ) -> None : ...
63+ def extend (self , elem_seq : Iterable [_MessageV ]) -> None : ...
6164 def MergeFrom (self : _M , other : _M ) -> None : ...
62- def remove (self , elem : _T ) -> None : ...
63- def pop (self , key : int = ...) -> _T : ...
64- def __getslice__ (self , start : int , stop : int ) -> List [_T ]: ...
65+ def remove (self , elem : _MessageV ) -> None : ...
66+ def pop (self , key : int = ...) -> _MessageV : ...
67+ def __getslice__ (self , start : int , stop : int ) -> List [_MessageV ]: ...
6568 def __delitem__ (self , key : Union [int , slice ]) -> None : ...
6669 def __delslice__ (self , start : int , stop : int ) -> None : ...
6770 def __eq__ (self , other : object ) -> bool : ...
6871
69- class ScalarMap (MutableMapping [_K , _V ]):
70- def __setitem__ (self , k : _K , v : _V ) -> None : ...
72+ class ScalarMap (MutableMapping [_K , _ScalarV ]):
73+ def __setitem__ (self , k : _K , v : _ScalarV ) -> None : ...
7174 def __delitem__ (self , v : _K ) -> None : ...
72- def __getitem__ (self , k : _K ) -> _V : ...
75+ def __getitem__ (self , k : _K ) -> _ScalarV : ...
7376 def __len__ (self ) -> int : ...
7477 def __iter__ (self ) -> Iterator [_K ]: ...
7578 def __eq__ (self , other : object ) -> bool : ...
7679 def MergeFrom (self : _M , other : _M ): ...
7780 def InvalidateIterators (self ) -> None : ...
7881 def GetEntryClass (self ) -> GeneratedProtocolMessageType : ...
7982
80- class MessageMap (MutableMapping [_K , _V ]):
81- def __setitem__ (self , k : _K , v : _V ) -> None : ...
83+ class MessageMap (MutableMapping [_K , _MessageV ]):
84+ def __setitem__ (self , k : _K , v : _MessageV ) -> None : ...
8285 def __delitem__ (self , v : _K ) -> None : ...
83- def __getitem__ (self , k : _K ) -> _V : ...
86+ def __getitem__ (self , k : _K ) -> _MessageV : ...
8487 def __len__ (self ) -> int : ...
8588 def __iter__ (self ) -> Iterator [_K ]: ...
8689 def __eq__ (self , other : object ) -> bool : ...
87- def get_or_create (self , key : _K ) -> _V : ...
90+ def get_or_create (self , key : _K ) -> _MessageV : ...
8891 def MergeFrom (self : _M , other : _M ): ...
8992 def InvalidateIterators (self ) -> None : ...
9093 def GetEntryClass (self ) -> GeneratedProtocolMessageType : ...
0 commit comments