Skip to content

Commit ee90107

Browse files
authored
gh-104050: Argument clinic: more misc typing improvements (#107264)
1 parent 7c89f11 commit ee90107

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

Tools/clinic/clinic.py

+11-6
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
Protocol,
4646
TypeGuard,
4747
TypeVar,
48+
cast,
4849
overload,
4950
)
5051

@@ -2694,9 +2695,12 @@ def closure(f: CConverterClassT) -> CConverterClassT:
26942695
return closure
26952696

26962697
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)
27002704

27012705
class CConverter(metaclass=CConverterAutoRegister):
27022706
"""
@@ -3174,10 +3178,10 @@ class defining_class_converter(CConverter):
31743178
def converter_init(self, *, type: str | None = None) -> None:
31753179
self.specified_type = type
31763180

3177-
def render(self, parameter, data) -> None:
3181+
def render(self, parameter: Parameter, data: CRenderData) -> None:
31783182
self._render_self(parameter, data)
31793183

3180-
def set_template_dict(self, template_dict):
3184+
def set_template_dict(self, template_dict: TemplateDict) -> None:
31813185
template_dict['defining_class_name'] = self.name
31823186

31833187

@@ -4048,7 +4052,7 @@ def parser_type(self) -> str:
40484052
assert isinstance(self.function, Function)
40494053
return required_type_for_self_for_parser(self.function) or self.type
40504054

4051-
def render(self, parameter, data):
4055+
def render(self, parameter: Parameter, data: CRenderData) -> None:
40524056
"""
40534057
parameter is a clinic.Parameter instance.
40544058
data is a CRenderData instance.
@@ -4064,6 +4068,7 @@ def render(self, parameter, data):
40644068
# because we render parameters in order, and self is always first.
40654069
assert len(data.impl_arguments) == 1
40664070
assert data.impl_arguments[0] == self.name
4071+
assert self.type is not None
40674072
data.impl_arguments[0] = '(' + self.type + ")" + data.impl_arguments[0]
40684073

40694074
def set_template_dict(self, template_dict: TemplateDict) -> None:

0 commit comments

Comments
 (0)