Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 1 commit into from
Jul 24, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to get rid of these at some point.


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
Loading