@@ -1989,6 +1989,11 @@ def write_file(filename: str, new_contents: str):
1989
1989
raise
1990
1990
1991
1991
1992
+ ClassDict = dict [str , "Class" ]
1993
+ DestinationDict = dict [str , Destination ]
1994
+ ModuleDict = dict [str , "Module" ]
1995
+ ParserDict = dict [str , "DSLParser" ]
1996
+
1992
1997
clinic = None
1993
1998
class Clinic :
1994
1999
@@ -2035,23 +2040,30 @@ class Clinic:
2035
2040
2036
2041
"""
2037
2042
2038
- def __init__ (self , language , printer = None , * , verify = True , filename = None ):
2043
+ def __init__ (
2044
+ self ,
2045
+ language : CLanguage ,
2046
+ printer : BlockPrinter | None = None ,
2047
+ * ,
2048
+ verify : bool = True ,
2049
+ filename : str | None = None
2050
+ ) -> None :
2039
2051
# maps strings to Parser objects.
2040
2052
# (instantiated from the "parsers" global.)
2041
- self .parsers = {}
2042
- self .language = language
2053
+ self .parsers : ParserDict = {}
2054
+ self .language : CLanguage = language
2043
2055
if printer :
2044
2056
fail ("Custom printers are broken right now" )
2045
2057
self .printer = printer or BlockPrinter (language )
2046
2058
self .verify = verify
2047
2059
self .filename = filename
2048
- self .modules = {}
2049
- self .classes = {}
2050
- self .functions = []
2060
+ self .modules : ModuleDict = {}
2061
+ self .classes : ClassDict = {}
2062
+ self .functions : list [ Function ] = []
2051
2063
2052
2064
self .line_prefix = self .line_suffix = ''
2053
2065
2054
- self .destinations = {}
2066
+ self .destinations : DestinationDict = {}
2055
2067
self .add_destination ("block" , "buffer" )
2056
2068
self .add_destination ("suppress" , "suppress" )
2057
2069
self .add_destination ("buffer" , "buffer" )
@@ -2072,10 +2084,13 @@ def __init__(self, language, printer=None, *, verify=True, filename=None):
2072
2084
'impl_definition' : d ('block' ),
2073
2085
}
2074
2086
2075
- self .destination_buffers_stack = []
2076
- self .ifndef_symbols = set ()
2087
+ DestBufferType = dict [str , Callable [..., Any ]]
2088
+ DestBufferList = list [DestBufferType ]
2089
+
2090
+ self .destination_buffers_stack : DestBufferList = []
2091
+ self .ifndef_symbols : set [str ] = set ()
2077
2092
2078
- self .presets = {}
2093
+ self .presets : dict [ str , dict [ Any , Any ]] = {}
2079
2094
preset = None
2080
2095
for line in self .presets_text .strip ().split ('\n ' ):
2081
2096
line = line .strip ()
@@ -2103,18 +2118,27 @@ def __init__(self, language, printer=None, *, verify=True, filename=None):
2103
2118
global clinic
2104
2119
clinic = self
2105
2120
2106
- def add_destination (self , name , type , * args ):
2121
+ def add_destination (
2122
+ self ,
2123
+ name : str ,
2124
+ type : str ,
2125
+ * args
2126
+ ) -> None :
2107
2127
if name in self .destinations :
2108
2128
fail ("Destination already exists: " + repr (name ))
2109
2129
self .destinations [name ] = Destination (name , type , self , * args )
2110
2130
2111
- def get_destination (self , name ) :
2131
+ def get_destination (self , name : str ) -> Destination :
2112
2132
d = self .destinations .get (name )
2113
2133
if not d :
2114
2134
fail ("Destination does not exist: " + repr (name ))
2115
2135
return d
2116
2136
2117
- def get_destination_buffer (self , name , item = 0 ):
2137
+ def get_destination_buffer (
2138
+ self ,
2139
+ name : str ,
2140
+ item : int = 0
2141
+ ):
2118
2142
d = self .get_destination (name )
2119
2143
return d .buffers [item ]
2120
2144
@@ -2240,6 +2264,7 @@ def parse_file(
2240
2264
if not find_start_re .search (raw ):
2241
2265
return
2242
2266
2267
+ assert isinstance (language , CLanguage )
2243
2268
clinic = Clinic (language , verify = verify , filename = filename )
2244
2269
src_out , clinic_out = clinic .parse (raw )
2245
2270
@@ -2275,8 +2300,6 @@ def parse(self, block: Block) -> None:
2275
2300
block .output = s .getvalue ()
2276
2301
2277
2302
2278
- ModuleDict = dict [str , "Module" ]
2279
-
2280
2303
class Module :
2281
2304
def __init__ (
2282
2305
self ,
@@ -2294,8 +2317,6 @@ def __repr__(self) -> str:
2294
2317
return "<clinic.Module " + repr (self .name ) + " at " + str (id (self )) + ">"
2295
2318
2296
2319
2297
- ClassDict = dict [str , "Class" ]
2298
-
2299
2320
class Class :
2300
2321
def __init__ (
2301
2322
self ,
0 commit comments