1+ from __future__ import annotations
2+
13import argparse
24import ast
3- from typing import List
45from typing import NamedTuple
5- from typing import Optional
66from typing import Sequence
7- from typing import Set
87
98
109BUILTIN_TYPES = {
@@ -27,10 +26,10 @@ class Call(NamedTuple):
2726class Visitor (ast .NodeVisitor ):
2827 def __init__ (
2928 self ,
30- ignore : Optional [ Sequence [str ]] = None ,
29+ ignore : Sequence [str ] | None = None ,
3130 allow_dict_kwargs : bool = True ,
3231 ) -> None :
33- self .builtin_type_calls : List [Call ] = []
32+ self .builtin_type_calls : list [Call ] = []
3433 self .ignore = set (ignore ) if ignore else set ()
3534 self .allow_dict_kwargs = allow_dict_kwargs
3635
@@ -56,21 +55,21 @@ def visit_Call(self, node: ast.Call) -> None:
5655
5756def check_file (
5857 filename : str ,
59- ignore : Optional [ Sequence [str ]] = None ,
58+ ignore : Sequence [str ] | None = None ,
6059 allow_dict_kwargs : bool = True ,
61- ) -> List [Call ]:
60+ ) -> list [Call ]:
6261 with open (filename , 'rb' ) as f :
6362 tree = ast .parse (f .read (), filename = filename )
6463 visitor = Visitor (ignore = ignore , allow_dict_kwargs = allow_dict_kwargs )
6564 visitor .visit (tree )
6665 return visitor .builtin_type_calls
6766
6867
69- def parse_ignore (value : str ) -> Set [str ]:
68+ def parse_ignore (value : str ) -> set [str ]:
7069 return set (value .split (',' ))
7170
7271
73- def main (argv : Optional [ Sequence [str ]] = None ) -> int :
72+ def main (argv : Sequence [str ] | None = None ) -> int :
7473 parser = argparse .ArgumentParser ()
7574 parser .add_argument ('filenames' , nargs = '*' )
7675 parser .add_argument ('--ignore' , type = parse_ignore , default = set ())
0 commit comments