Skip to content

Commit

Permalink
pythongh-104050: Argument clinic: misc improvements to type annotatio…
Browse files Browse the repository at this point in the history
…n coverage (python#107206)
  • Loading branch information
AlexWaygood authored and jtcave committed Jul 27, 2023
1 parent c98b2a6 commit 14ab264
Showing 1 changed file with 15 additions and 9 deletions.
24 changes: 15 additions & 9 deletions Tools/clinic/clinic.py
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down Expand Up @@ -3896,7 +3896,7 @@ def converter_init(self, *, accept: TypeSet = {buffer}) -> None:

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"])

Expand Down Expand Up @@ -4115,7 +4115,7 @@ def __init__(
self,
*,
py_default: str | None = None,
**kwargs
**kwargs: Any
) -> None:
self.py_default = py_default
try:
Expand Down Expand Up @@ -4493,7 +4493,7 @@ def directive_destination(
self,
name: str,
command: str,
*args
*args: str
) -> None:
match command:
case "new":
Expand Down Expand Up @@ -4847,12 +4847,13 @@ def state_parameters_start(self, line: str | None) -> None:
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

Expand Down Expand Up @@ -5000,7 +5001,7 @@ def parse_parameter(self, line: str) -> None:
# 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
Expand Down Expand Up @@ -5248,7 +5249,9 @@ def state_parameter_docstring_start(self, line: str | None) -> None:
# 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
Expand All @@ -5263,7 +5266,7 @@ def state_parameter_docstring(self, line):
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
Expand All @@ -5276,7 +5279,10 @@ def state_parameter_docstring(self, line):
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 [.")

Expand Down

0 comments on commit 14ab264

Please sign in to comment.