45
45
Protocol ,
46
46
TypeGuard ,
47
47
TypeVar ,
48
+ cast ,
48
49
overload ,
49
50
)
50
51
@@ -2694,9 +2695,12 @@ def closure(f: CConverterClassT) -> CConverterClassT:
2694
2695
return closure
2695
2696
2696
2697
class CConverterAutoRegister (type ):
2697
- def __init__ (cls , name , bases , classdict ):
2698
- add_c_converter (cls )
2699
- add_default_legacy_c_converter (cls )
2698
+ def __init__ (
2699
+ cls , name : str , bases : tuple [type , ...], classdict : dict [str , Any ]
2700
+ ) -> None :
2701
+ converter_cls = cast (type ["CConverter" ], cls )
2702
+ add_c_converter (converter_cls )
2703
+ add_default_legacy_c_converter (converter_cls )
2700
2704
2701
2705
class CConverter (metaclass = CConverterAutoRegister ):
2702
2706
"""
@@ -3174,10 +3178,10 @@ class defining_class_converter(CConverter):
3174
3178
def converter_init (self , * , type : str | None = None ) -> None :
3175
3179
self .specified_type = type
3176
3180
3177
- def render (self , parameter , data ) -> None :
3181
+ def render (self , parameter : Parameter , data : CRenderData ) -> None :
3178
3182
self ._render_self (parameter , data )
3179
3183
3180
- def set_template_dict (self , template_dict ) :
3184
+ def set_template_dict (self , template_dict : TemplateDict ) -> None :
3181
3185
template_dict ['defining_class_name' ] = self .name
3182
3186
3183
3187
@@ -4048,7 +4052,7 @@ def parser_type(self) -> str:
4048
4052
assert isinstance (self .function , Function )
4049
4053
return required_type_for_self_for_parser (self .function ) or self .type
4050
4054
4051
- def render (self , parameter , data ) :
4055
+ def render (self , parameter : Parameter , data : CRenderData ) -> None :
4052
4056
"""
4053
4057
parameter is a clinic.Parameter instance.
4054
4058
data is a CRenderData instance.
@@ -4064,6 +4068,7 @@ def render(self, parameter, data):
4064
4068
# because we render parameters in order, and self is always first.
4065
4069
assert len (data .impl_arguments ) == 1
4066
4070
assert data .impl_arguments [0 ] == self .name
4071
+ assert self .type is not None
4067
4072
data .impl_arguments [0 ] = '(' + self .type + ")" + data .impl_arguments [0 ]
4068
4073
4069
4074
def set_template_dict (self , template_dict : TemplateDict ) -> None :
0 commit comments