1515
1616"""
1717
18+ from __future__ import annotations
19+
1820import sys
21+ from collections .abc import Iterator
1922from pathlib import Path
2023
21- from . import modes , options
24+ from . import modes
25+ from .options import options
2226
2327
24- def main ():
28+ def main () -> None :
2529 changed_files = 0
2630 unchanged_files = 0
2731 problematic_files = 0
@@ -54,7 +58,7 @@ def main():
5458 source = input_file .read ()
5559 except Exception as e :
5660 problematic_files += 1
57- _error (e )
61+ _error (str ( e ) )
5862 continue
5963
6064 # Guess tabwidth
@@ -70,8 +74,9 @@ def main():
7074 guess = probabilities .index (max (probabilities ))
7175
7276 # Indent input file
77+ extra_blocks = dict (options .extra_block or ())
7378 try :
74- result = Mode (source , extra_blocks = options . extra_block ).indent (
79+ result = Mode (source , extra_blocks = extra_blocks ).indent (
7580 options .tabwidth or guess or 4
7681 )
7782 except modes .MaxLineLengthExceeded :
@@ -103,7 +108,7 @@ def main():
103108 except Exception as e :
104109 changed_files -= 1
105110 problematic_files += 1
106- _error (e )
111+ _error (str ( e ) )
107112 continue
108113 _info (f"reindented { output_file .name } " )
109114 elif changed and filename != "-" :
@@ -134,7 +139,7 @@ def main():
134139 sys .exit (0 )
135140
136141
137- def _generate_filenames (paths , suffixes ) :
142+ def _generate_filenames (paths : list [ str ] , suffixes : list [ str ]) -> Iterator [ str ] :
138143 for filename in paths :
139144 if filename == "-" :
140145 yield filename
@@ -143,18 +148,20 @@ def _generate_filenames(paths, suffixes):
143148 if path .is_dir ():
144149 yield from _generate_filenames_from_directory (path , suffixes )
145150 else :
146- yield path
151+ yield str ( path )
147152
148153
149- def _generate_filenames_from_directory (directory , suffixes ):
154+ def _generate_filenames_from_directory (
155+ directory : Path , suffixes : list [str ]
156+ ) -> Iterator [str ]:
150157 for path in directory .iterdir ():
151158 if path .is_file () and path .suffix in suffixes :
152- yield path
159+ yield str ( path )
153160 elif path .is_dir ():
154161 yield from _generate_filenames_from_directory (path , suffixes )
155162
156163
157- def _verify_changed (source , result ) :
164+ def _verify_changed (source : str , result : str ) -> bool :
158165 output_lines = result .split ("\n " )
159166 changed = False
160167 for line_nr , line in enumerate (source .split ("\n " )):
@@ -165,7 +172,7 @@ def _verify_changed(source, result):
165172 return changed
166173
167174
168- def _get_depth (line ) :
175+ def _get_depth (line : str ) -> int :
169176 count = 0
170177 for char in line :
171178 if char == " " :
@@ -177,11 +184,11 @@ def _get_depth(line):
177184 return count
178185
179186
180- def _info (msg ) :
187+ def _info (msg : str ) -> None :
181188 print (msg , file = sys .stderr )
182189
183190
184- def _error (msg ) :
191+ def _error (msg : str ) -> None :
185192 _info (f"Error: { msg } " )
186193
187194
0 commit comments