@@ -2698,10 +2698,10 @@ class CConverter(metaclass=CConverterAutoRegister):
26982698 """
26992699
27002700 # The C name to use for this variable.
2701- name : str | None = None
2701+ name : str
27022702
27032703 # The Python name to use for this variable.
2704- py_name : str | None = None
2704+ py_name : str
27052705
27062706 # The C type to use for this variable.
27072707 # 'type' should be a Python string specifying the type, e.g. "int".
@@ -2864,7 +2864,11 @@ def _render_self(self, parameter: Parameter, data: CRenderData) -> None:
28642864 if self .length :
28652865 data .impl_parameters .append ("Py_ssize_t " + self .length_name ())
28662866
2867- def _render_non_self (self , parameter , data ):
2867+ def _render_non_self (
2868+ self ,
2869+ parameter : Parameter ,
2870+ data : CRenderData
2871+ ) -> None :
28682872 self .parameter = parameter
28692873 name = self .name
28702874
@@ -2917,31 +2921,30 @@ def render(self, parameter: Parameter, data: CRenderData) -> None:
29172921 self ._render_self (parameter , data )
29182922 self ._render_non_self (parameter , data )
29192923
2920- def length_name (self ):
2924+ def length_name (self ) -> str :
29212925 """Computes the name of the associated "length" variable."""
2922- if not self .length :
2923- return None
2926+ assert self .length is not None
29242927 return self .parser_name + "_length"
29252928
29262929 # Why is this one broken out separately?
29272930 # For "positional-only" function parsing,
29282931 # which generates a bunch of PyArg_ParseTuple calls.
2929- def parse_argument (self , list ) :
2932+ def parse_argument (self , args : list [ str ]) -> None :
29302933 assert not (self .converter and self .encoding )
29312934 if self .format_unit == 'O&' :
29322935 assert self .converter
2933- list .append (self .converter )
2936+ args .append (self .converter )
29342937
29352938 if self .encoding :
2936- list .append (c_repr (self .encoding ))
2939+ args .append (c_repr (self .encoding ))
29372940 elif self .subclass_of :
2938- list .append (self .subclass_of )
2941+ args .append (self .subclass_of )
29392942
29402943 s = ("&" if self .parse_by_reference else "" ) + self .name
2941- list .append (s )
2944+ args .append (s )
29422945
29432946 if self .length :
2944- list .append ("&" + self .length_name ())
2947+ args .append ("&" + self .length_name ())
29452948
29462949 #
29472950 # All the functions after here are intended as extension points.
@@ -3066,7 +3069,7 @@ def set_template_dict(self, template_dict: TemplateDict) -> None:
30663069 pass
30673070
30683071 @property
3069- def parser_name (self ):
3072+ def parser_name (self ) -> str :
30703073 if self .name in CLINIC_PREFIXED_ARGS : # bpo-39741
30713074 return CLINIC_PREFIX + self .name
30723075 else :
0 commit comments