gh-104050: Argument clinic: misc improvements to type annotation coverage (#107206)

This commit is contained in:
Alex Waygood 2023-07-24 22:23:58 +01:00 • committed by GitHub
parent 7608fa8fd5
commit d93fe5afe2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -2640,7 +2640,7 @@ class LandMine:
# try to access any
__message__: str
def __getattribute__(self, name: str):
def __getattribute__(self, name: str) -> Any:
if name in ('__repr__', '__message__'):
return super().__getattribute__(name)
# raise RuntimeError(repr(name))
@ -3896,7 +3896,7 @@ class Py_buffer_converter(CConverter):
self.format_unit = format_unit
def cleanup(self):
def cleanup(self) -> str:
name = self.name
return "".join(["if (", name, ".obj) {\n PyBuffer_Release(&", name, ");\n}\n"])
@ -4115,7 +4115,7 @@ class CReturnConverter(metaclass=CReturnConverterAutoRegister):
self,
*,
py_default: str | None = None,
**kwargs
**kwargs: Any
) -> None:
self.py_default = py_default
try:
@ -4493,7 +4493,7 @@ class DSLParser:
self,
name: str,
command: str,
*args
*args: str
) -> None:
match command:
case "new":
@ -4847,12 +4847,13 @@ class DSLParser:
return self.next(self.state_parameter, line)
def to_required(self):
def to_required(self) -> None:
"""
Transition to the "required" parameter state.
"""
if self.parameter_state is not ParamState.REQUIRED:
self.parameter_state = ParamState.REQUIRED
assert self.function is not None
for p in self.function.parameters.values():
p.group = -p.group
@ -5000,7 +5001,7 @@ class DSLParser:
# of disallowed ast nodes.
class DetectBadNodes(ast.NodeVisitor):
bad = False
def bad_node(self, node):
def bad_node(self, node: ast.AST) -> None:
self.bad = True
# inline function call
@ -5248,7 +5249,9 @@ class DSLParser:
# every line of the docstring must start with at least F spaces,
# where F > P.
# these F spaces will be stripped.
def state_parameter_docstring(self, line):
def state_parameter_docstring(self, line: str | None) -> None:
assert line is not None
stripped = line.strip()
if stripped.startswith('#'):
return
@ -5263,7 +5266,7 @@ class DSLParser:
assert self.indent.depth == 1
return self.next(self.state_function_docstring, line)
assert self.function.parameters
assert self.function and self.function.parameters
last_parameter = next(reversed(list(self.function.parameters.values())))
new_docstring = last_parameter.docstring
@ -5276,7 +5279,10 @@ class DSLParser:
last_parameter.docstring = new_docstring
# the final stanza of the DSL is the docstring.
def state_function_docstring(self, line):
def state_function_docstring(self, line: str | None) -> None:
assert self.function is not None
assert line is not None
if self.group:
fail("Function " + self.function.name + " has a ] without a matching [.")