mirror of
https://github.com/python/cpython.git
synced 2025-09-27 10:50:04 +00:00
gh-104050: Add more type annotations to Argument Clinic (#104628)
Annotate the following: - methods of class Class - methods of class Module - methods of class PythonParser - function compute_checksum() - function parse_file() - global variable unsupported_special_methods
This commit is contained in:
parent
86ee49f469
commit
94c8edabd3
1 changed files with 39 additions and 14 deletions
|
@ -2229,7 +2229,12 @@ impl_definition block
|
||||||
return module, cls
|
return module, cls
|
||||||
|
|
||||||
|
|
||||||
def parse_file(filename, *, verify=True, output=None):
|
def parse_file(
|
||||||
|
filename: str,
|
||||||
|
*,
|
||||||
|
verify: bool = True,
|
||||||
|
output: str | None = None
|
||||||
|
) -> None:
|
||||||
if not output:
|
if not output:
|
||||||
output = filename
|
output = filename
|
||||||
|
|
||||||
|
@ -2261,7 +2266,10 @@ def parse_file(filename, *, verify=True, output=None):
|
||||||
write_file(fn, data)
|
write_file(fn, data)
|
||||||
|
|
||||||
|
|
||||||
def compute_checksum(input, length=None):
|
def compute_checksum(
|
||||||
|
input: str | None,
|
||||||
|
length: int | None = None
|
||||||
|
) -> str:
|
||||||
input = input or ''
|
input = input or ''
|
||||||
s = hashlib.sha1(input.encode('utf-8')).hexdigest()
|
s = hashlib.sha1(input.encode('utf-8')).hexdigest()
|
||||||
if length:
|
if length:
|
||||||
|
@ -2272,30 +2280,46 @@ def compute_checksum(input, length=None):
|
||||||
|
|
||||||
|
|
||||||
class PythonParser:
|
class PythonParser:
|
||||||
def __init__(self, clinic):
|
def __init__(self, clinic: Clinic) -> None:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def parse(self, block):
|
def parse(self, block: Block) -> None:
|
||||||
s = io.StringIO()
|
s = io.StringIO()
|
||||||
with OverrideStdioWith(s):
|
with OverrideStdioWith(s):
|
||||||
exec(block.input)
|
exec(block.input)
|
||||||
block.output = s.getvalue()
|
block.output = s.getvalue()
|
||||||
|
|
||||||
|
|
||||||
|
ModuleDict = dict[str, "Module"]
|
||||||
|
|
||||||
class Module:
|
class Module:
|
||||||
def __init__(self, name, module=None):
|
def __init__(
|
||||||
|
self,
|
||||||
|
name: str,
|
||||||
|
module = None
|
||||||
|
) -> None:
|
||||||
self.name = name
|
self.name = name
|
||||||
self.module = self.parent = module
|
self.module = self.parent = module
|
||||||
|
|
||||||
self.modules = collections.OrderedDict()
|
self.modules: ModuleDict = collections.OrderedDict()
|
||||||
self.classes = collections.OrderedDict()
|
self.classes: ClassDict = collections.OrderedDict()
|
||||||
self.functions = []
|
self.functions: list[Function] = []
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self) -> str:
|
||||||
return "<clinic.Module " + repr(self.name) + " at " + str(id(self)) + ">"
|
return "<clinic.Module " + repr(self.name) + " at " + str(id(self)) + ">"
|
||||||
|
|
||||||
|
|
||||||
|
ClassDict = dict[str, "Class"]
|
||||||
|
|
||||||
class Class:
|
class Class:
|
||||||
def __init__(self, name, module=None, cls=None, typedef=None, type_object=None):
|
def __init__(
|
||||||
|
self,
|
||||||
|
name: str,
|
||||||
|
module: Module | None = None,
|
||||||
|
cls = None,
|
||||||
|
typedef: str | None = None,
|
||||||
|
type_object: str | None = None
|
||||||
|
) -> None:
|
||||||
self.name = name
|
self.name = name
|
||||||
self.module = module
|
self.module = module
|
||||||
self.cls = cls
|
self.cls = cls
|
||||||
|
@ -2303,13 +2327,14 @@ class Class:
|
||||||
self.type_object = type_object
|
self.type_object = type_object
|
||||||
self.parent = cls or module
|
self.parent = cls or module
|
||||||
|
|
||||||
self.classes = collections.OrderedDict()
|
self.classes: ClassDict = collections.OrderedDict()
|
||||||
self.functions = []
|
self.functions: list[Function] = []
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self) -> str:
|
||||||
return "<clinic.Class " + repr(self.name) + " at " + str(id(self)) + ">"
|
return "<clinic.Class " + repr(self.name) + " at " + str(id(self)) + ">"
|
||||||
|
|
||||||
unsupported_special_methods = set("""
|
|
||||||
|
unsupported_special_methods: set[str] = set("""
|
||||||
|
|
||||||
__abs__
|
__abs__
|
||||||
__add__
|
__add__
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue