gh-104050: Partially annotate Argument Clinic CLanguage class (#106437)

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
This commit is contained in:
Erlend E. Aasland 2023-07-05 01:07:57 +02:00 committed by GitHub
parent 2fb9480c83
commit 7bb9fa5ae4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 19 additions and 6 deletions

View File

@ -752,10 +752,14 @@ class CLanguage(Language):
self.cpp = cpp.Monitor(filename)
self.cpp.fail = fail
def parse_line(self, line):
def parse_line(self, line: str) -> None:
self.cpp.writeline(line)
def render(self, clinic, signatures):
def render(
self,
clinic: Clinic | None,
signatures: Iterable[Function]
) -> str:
function = None
for o in signatures:
if isinstance(o, Function):
@ -764,7 +768,10 @@ class CLanguage(Language):
function = o
return self.render_function(clinic, function)
def docstring_for_c_string(self, f):
def docstring_for_c_string(
self,
f: Function
) -> str:
if re.search(r'[^\x00-\x7F]', f.docstring):
warn("Non-ascii character appear in docstring.")
@ -1345,7 +1352,7 @@ class CLanguage(Language):
return d2
@staticmethod
def group_to_variable_name(group):
def group_to_variable_name(group: int) -> str:
adjective = "left_" if group < 0 else "right_"
return "group_" + adjective + str(abs(group))
@ -1441,8 +1448,12 @@ class CLanguage(Language):
add("}")
template_dict['option_group_parsing'] = format_escape(output())
def render_function(self, clinic, f):
if not f:
def render_function(
self,
clinic: Clinic | None,
f: Function | None
) -> str:
if f is None or clinic is None:
return ""
add, output = text_accumulator()
@ -1504,10 +1515,12 @@ class CLanguage(Language):
template_dict = {}
assert isinstance(f.full_name, str)
full_name = f.full_name
template_dict['full_name'] = full_name
if new_or_init:
assert isinstance(f.cls, Class)
name = f.cls.name
else:
name = f.name