Skip to content

Commit 94c8eda

Browse files
gh-104050: Add more type annotations to Argument Clinic (#104628)
Annotate the following: - methods of class Class - methods of class Module - methods of class PythonParser - function compute_checksum() - function parse_file() - global variable unsupported_special_methods
1 parent 86ee49f commit 94c8eda

File tree

1 file changed

+39
-14
lines changed

1 file changed

+39
-14
lines changed

Diff for: Tools/clinic/clinic.py

+39-14
Original file line numberDiff line numberDiff line change
@@ -2229,7 +2229,12 @@ def _module_and_class(self, fields):
22292229
return module, cls
22302230

22312231

2232-
def parse_file(filename, *, verify=True, output=None):
2232+
def parse_file(
2233+
filename: str,
2234+
*,
2235+
verify: bool = True,
2236+
output: str | None = None
2237+
) -> None:
22332238
if not output:
22342239
output = filename
22352240

@@ -2261,7 +2266,10 @@ def parse_file(filename, *, verify=True, output=None):
22612266
write_file(fn, data)
22622267

22632268

2264-
def compute_checksum(input, length=None):
2269+
def compute_checksum(
2270+
input: str | None,
2271+
length: int | None = None
2272+
) -> str:
22652273
input = input or ''
22662274
s = hashlib.sha1(input.encode('utf-8')).hexdigest()
22672275
if length:
@@ -2272,44 +2280,61 @@ def compute_checksum(input, length=None):
22722280

22732281

22742282
class PythonParser:
2275-
def __init__(self, clinic):
2283+
def __init__(self, clinic: Clinic) -> None:
22762284
pass
22772285

2278-
def parse(self, block):
2286+
def parse(self, block: Block) -> None:
22792287
s = io.StringIO()
22802288
with OverrideStdioWith(s):
22812289
exec(block.input)
22822290
block.output = s.getvalue()
22832291

22842292

2293+
ModuleDict = dict[str, "Module"]
2294+
22852295
class Module:
2286-
def __init__(self, name, module=None):
2296+
def __init__(
2297+
self,
2298+
name: str,
2299+
module = None
2300+
) -> None:
22872301
self.name = name
22882302
self.module = self.parent = module
22892303

2290-
self.modules = collections.OrderedDict()
2291-
self.classes = collections.OrderedDict()
2292-
self.functions = []
2304+
self.modules: ModuleDict = collections.OrderedDict()
2305+
self.classes: ClassDict = collections.OrderedDict()
2306+
self.functions: list[Function] = []
22932307

2294-
def __repr__(self):
2308+
def __repr__(self) -> str:
22952309
return "<clinic.Module " + repr(self.name) + " at " + str(id(self)) + ">"
22962310

2311+
2312+
ClassDict = dict[str, "Class"]
2313+
22972314
class Class:
2298-
def __init__(self, name, module=None, cls=None, typedef=None, type_object=None):
2315+
def __init__(
2316+
self,
2317+
name: str,
2318+
module: Module | None = None,
2319+
cls = None,
2320+
typedef: str | None = None,
2321+
type_object: str | None = None
2322+
) -> None:
22992323
self.name = name
23002324
self.module = module
23012325
self.cls = cls
23022326
self.typedef = typedef
23032327
self.type_object = type_object
23042328
self.parent = cls or module
23052329

2306-
self.classes = collections.OrderedDict()
2307-
self.functions = []
2330+
self.classes: ClassDict = collections.OrderedDict()
2331+
self.functions: list[Function] = []
23082332

2309-
def __repr__(self):
2333+
def __repr__(self) -> str:
23102334
return "<clinic.Class " + repr(self.name) + " at " + str(id(self)) + ">"
23112335

2312-
unsupported_special_methods = set("""
2336+
2337+
unsupported_special_methods: set[str] = set("""
23132338
23142339
__abs__
23152340
__add__

0 commit comments

Comments
 (0)