Skip to content

Commit

Permalink
gh-104050: Argument clinic: improve typing around parse_arg() metho…
Browse files Browse the repository at this point in the history
…ds (#107288)
  • Loading branch information
AlexWaygood committed Jul 26, 2023
1 parent d96ca41 commit c362678
Showing 1 changed file with 24 additions and 24 deletions.
48 changes: 24 additions & 24 deletions Tools/clinic/clinic.py
Original file line number Diff line number Diff line change
Expand Up @@ -3046,7 +3046,7 @@ def pre_render(self) -> None:
"""
pass

def parse_arg(self, argname: str, displayname: str):
def parse_arg(self, argname: str, displayname: str) -> str | None:
if self.format_unit == 'O&':
return """
if (!{converter}({argname}, &{paramname})) {{{{
Expand Down Expand Up @@ -3149,7 +3149,7 @@ def converter_init(self, *, accept: TypeSet = {object}) -> None:
self.default = bool(self.default)
self.c_default = str(int(self.default))

def parse_arg(self, argname: str, displayname: str) -> str:
def parse_arg(self, argname: str, displayname: str) -> str | None:
if self.format_unit == 'i':
return """
{paramname} = _PyLong_AsInt({argname});
Expand Down Expand Up @@ -3200,7 +3200,7 @@ def converter_init(self) -> None:
if self.c_default == '"\'"':
self.c_default = r"'\''"

def parse_arg(self, argname: str, displayname: str) -> str:
def parse_arg(self, argname: str, displayname: str) -> str | None:
if self.format_unit == 'c':
return """
if (PyBytes_Check({argname}) && PyBytes_GET_SIZE({argname}) == 1) {{{{
Expand Down Expand Up @@ -3229,7 +3229,7 @@ def converter_init(self, *, bitwise: bool = False) -> None:
if bitwise:
self.format_unit = 'B'

def parse_arg(self, argname: str, displayname: str) -> str:
def parse_arg(self, argname: str, displayname: str) -> str | None:
if self.format_unit == 'b':
return """
{{{{
Expand Down Expand Up @@ -3274,7 +3274,7 @@ class short_converter(CConverter):
format_unit = 'h'
c_ignored_default = "0"

def parse_arg(self, argname: str, displayname: str) -> str:
def parse_arg(self, argname: str, displayname: str) -> str | None:
if self.format_unit == 'h':
return """
{{{{
Expand Down Expand Up @@ -3310,7 +3310,7 @@ def converter_init(self, *, bitwise: bool = False) -> None:
else:
self.converter = '_PyLong_UnsignedShort_Converter'

def parse_arg(self, argname: str, displayname: str) -> str:
def parse_arg(self, argname: str, displayname: str) -> str | None:
if self.format_unit == 'H':
return """
{paramname} = (unsigned short)PyLong_AsUnsignedLongMask({argname});
Expand All @@ -3337,7 +3337,7 @@ def converter_init(
if type is not None:
self.type = type

def parse_arg(self, argname: str, displayname: str) -> str:
def parse_arg(self, argname: str, displayname: str) -> str | None:
if self.format_unit == 'i':
return """
{paramname} = _PyLong_AsInt({argname});
Expand Down Expand Up @@ -3371,7 +3371,7 @@ def converter_init(self, *, bitwise: bool = False) -> None:
else:
self.converter = '_PyLong_UnsignedInt_Converter'

def parse_arg(self, argname: str, displayname: str) -> str:
def parse_arg(self, argname: str, displayname: str) -> str | None:
if self.format_unit == 'I':
return """
{paramname} = (unsigned int)PyLong_AsUnsignedLongMask({argname});
Expand All @@ -3387,7 +3387,7 @@ class long_converter(CConverter):
format_unit = 'l'
c_ignored_default = "0"

def parse_arg(self, argname: str, displayname: str) -> str:
def parse_arg(self, argname: str, displayname: str) -> str | None:
if self.format_unit == 'l':
return """
{paramname} = PyLong_AsLong({argname});
Expand All @@ -3408,7 +3408,7 @@ def converter_init(self, *, bitwise: bool = False) -> None:
else:
self.converter = '_PyLong_UnsignedLong_Converter'

def parse_arg(self, argname: str, displayname: str) -> str:
def parse_arg(self, argname: str, displayname: str) -> str | None:
if self.format_unit == 'k':
return """
if (!PyLong_Check({argname})) {{{{
Expand All @@ -3426,7 +3426,7 @@ class long_long_converter(CConverter):
format_unit = 'L'
c_ignored_default = "0"

def parse_arg(self, argname: str, displayname: str) -> str:
def parse_arg(self, argname: str, displayname: str) -> str | None:
if self.format_unit == 'L':
return """
{paramname} = PyLong_AsLongLong({argname});
Expand All @@ -3447,7 +3447,7 @@ def converter_init(self, *, bitwise: bool = False) -> None:
else:
self.converter = '_PyLong_UnsignedLongLong_Converter'

def parse_arg(self, argname: str, displayname: str) -> str:
def parse_arg(self, argname: str, displayname: str) -> str | None:
if self.format_unit == 'K':
return """
if (!PyLong_Check({argname})) {{{{
Expand All @@ -3472,7 +3472,7 @@ def converter_init(self, *, accept: TypeSet = {int}) -> None:
else:
fail("Py_ssize_t_converter: illegal 'accept' argument " + repr(accept))

def parse_arg(self, argname: str, displayname: str) -> str:
def parse_arg(self, argname: str, displayname: str) -> str | None:
if self.format_unit == 'n':
return """
{{{{
Expand Down Expand Up @@ -3507,7 +3507,7 @@ class size_t_converter(CConverter):
converter = '_PyLong_Size_t_Converter'
c_ignored_default = "0"

def parse_arg(self, argname: str, displayname: str) -> str:
def parse_arg(self, argname: str, displayname: str) -> str | None:
if self.format_unit == 'n':
return """
{paramname} = PyNumber_AsSsize_t({argname}, PyExc_OverflowError);
Expand All @@ -3522,7 +3522,7 @@ class fildes_converter(CConverter):
type = 'int'
converter = '_PyLong_FileDescriptor_Converter'

def _parse_arg(self, argname: str, displayname: str) -> str:
def _parse_arg(self, argname: str, displayname: str) -> str | None:
return """
{paramname} = PyObject_AsFileDescriptor({argname});
if ({paramname} == -1) {{{{
Expand All @@ -3537,7 +3537,7 @@ class float_converter(CConverter):
format_unit = 'f'
c_ignored_default = "0.0"

def parse_arg(self, argname: str, displayname: str) -> str:
def parse_arg(self, argname: str, displayname: str) -> str | None:
if self.format_unit == 'f':
return """
if (PyFloat_CheckExact({argname})) {{{{
Expand All @@ -3559,7 +3559,7 @@ class double_converter(CConverter):
format_unit = 'd'
c_ignored_default = "0.0"

def parse_arg(self, argname: str, displayname: str) -> str:
def parse_arg(self, argname: str, displayname: str) -> str | None:
if self.format_unit == 'd':
return """
if (PyFloat_CheckExact({argname})) {{{{
Expand All @@ -3582,7 +3582,7 @@ class Py_complex_converter(CConverter):
format_unit = 'D'
c_ignored_default = "{0.0, 0.0}"

def parse_arg(self, argname: str, displayname: str) -> str:
def parse_arg(self, argname: str, displayname: str) -> str | None:
if self.format_unit == 'D':
return """
{paramname} = PyComplex_AsCComplex({argname});
Expand Down Expand Up @@ -3671,7 +3671,7 @@ def post_parsing(self) -> str:
else:
return ""

def parse_arg(self, argname: str, displayname: str) -> str:
def parse_arg(self, argname: str, displayname: str) -> str | None:
if self.format_unit == 's':
return """
if (!PyUnicode_Check({argname})) {{{{
Expand Down Expand Up @@ -3773,7 +3773,7 @@ class PyBytesObject_converter(CConverter):
format_unit = 'S'
# accept = {bytes}

def parse_arg(self, argname: str, displayname: str) -> str:
def parse_arg(self, argname: str, displayname: str) -> str | None:
if self.format_unit == 'S':
return """
if (!PyBytes_Check({argname})) {{{{
Expand All @@ -3790,7 +3790,7 @@ class PyByteArrayObject_converter(CConverter):
format_unit = 'Y'
# accept = {bytearray}

def parse_arg(self, argname: str, displayname: str) -> str:
def parse_arg(self, argname: str, displayname: str) -> str | None:
if self.format_unit == 'Y':
return """
if (!PyByteArray_Check({argname})) {{{{
Expand All @@ -3807,7 +3807,7 @@ class unicode_converter(CConverter):
default_type = (str, Null, NoneType)
format_unit = 'U'

def parse_arg(self, argname: str, displayname: str) -> str:
def parse_arg(self, argname: str, displayname: str) -> str | None:
if self.format_unit == 'U':
return """
if (!PyUnicode_Check({argname})) {{{{
Expand Down Expand Up @@ -3855,7 +3855,7 @@ def cleanup(self) -> str:
PyMem_Free((void *){name});
""".format(name=self.name)

def parse_arg(self, argname: str, argnum: str) -> str:
def parse_arg(self, argname: str, argnum: str) -> str | None:
if not self.length:
if self.accept == {str}:
return """
Expand Down Expand Up @@ -3918,7 +3918,7 @@ def cleanup(self) -> str:
name = self.name
return "".join(["if (", name, ".obj) {\n PyBuffer_Release(&", name, ");\n}\n"])

def parse_arg(self, argname: str, displayname: str) -> str:
def parse_arg(self, argname: str, displayname: str) -> str | None:
if self.format_unit == 'y*':
return """
if (PyObject_GetBuffer({argname}, &{paramname}, PyBUF_SIMPLE) != 0) {{{{
Expand Down

0 comments on commit c362678

Please sign in to comment.