44import os
55import re
66import sys
7+ import typing as t
78from io import StringIO
89from pprint import pprint
910
1011import click
1112
1213
13- def fail (msg ) :
14+ def fail (msg : str ) -> t . NoReturn :
1415 """
1516 Log the message and exit.
1617
@@ -26,9 +27,9 @@ class VerboseEcho:
2627 Helper to handle verbosity-dependent logging.
2728 """
2829
29- verbosity = 1
30+ verbosity : int = 1
3031
31- def __call__ (self , output , ** kwargs ) :
32+ def __call__ (self , output : str , ** kwargs : t . Any ) -> None :
3233 """
3334 Echo the given output regardless of verbosity level.
3435
@@ -40,18 +41,17 @@ def __call__(self, output, **kwargs):
4041 """
4142 self .echo (output , ** kwargs )
4243
43- def set_verbosity (self , verbosity ) :
44+ def set_verbosity (self , verbosity : int ) -> None :
4445 """
4546 Override the default verbosity level.
4647
4748 Args:
4849 verbosity: The verbosity level to set to
49- kwargs: Any additional keyword args to pass to click.echo
5050 """
5151 self .verbosity = verbosity
5252 self .echo_v (f"Verbosity level set to { verbosity } " )
5353
54- def echo (self , output , verbosity_level = 0 , ** kwargs ) :
54+ def echo (self , output : str , verbosity_level : int = 0 , ** kwargs : t . Any ) -> None :
5555 """
5656 Echo the given output, if over the verbosity threshold.
5757
@@ -63,7 +63,7 @@ def echo(self, output, verbosity_level=0, **kwargs):
6363 if verbosity_level <= self .verbosity :
6464 click .secho (output , ** kwargs )
6565
66- def echo_v (self , output , ** kwargs ) :
66+ def echo_v (self , output : str , ** kwargs : t . Any ) -> None :
6767 """
6868 Echo the given output if verbosity level is >= 1.
6969
@@ -73,7 +73,7 @@ def echo_v(self, output, **kwargs):
7373 """
7474 self .echo (output , 1 , ** kwargs )
7575
76- def echo_vv (self , output , ** kwargs ) :
76+ def echo_vv (self , output : str , ** kwargs : t . Any ) -> None :
7777 """
7878 Echo the given output if verbosity level is >= 2.
7979
@@ -83,7 +83,7 @@ def echo_vv(self, output, **kwargs):
8383 """
8484 self .echo (output , 2 , ** kwargs )
8585
86- def echo_vvv (self , output , ** kwargs ) :
86+ def echo_vvv (self , output : str , ** kwargs : t . Any ) -> None :
8787 """
8888 Echo the given output if verbosity level is >= 3.
8989
@@ -93,7 +93,7 @@ def echo_vvv(self, output, **kwargs):
9393 """
9494 self .echo (output , 3 , ** kwargs )
9595
96- def pprint (self , data , indent = 4 , verbosity_level = 0 ) :
96+ def pprint (self , data : t . Any , indent : int = 4 , verbosity_level : int = 0 ) -> None :
9797 """
9898 Pretty-print some data with the given verbosity level.
9999 """
@@ -103,7 +103,7 @@ def pprint(self, data, indent=4, verbosity_level=0):
103103 self .echo (formatted .read (), verbosity_level = verbosity_level )
104104
105105
106- def clean_abs_path (filename_to_clean , parent_path ) :
106+ def clean_abs_path (filename_to_clean : str , parent_path : str ) -> str :
107107 """
108108 Safely strips the parent path from the given filename, leaving only the relative path.
109109
@@ -121,7 +121,7 @@ def clean_abs_path(filename_to_clean, parent_path):
121121 return os .path .relpath (filename_to_clean , parent_path )
122122
123123
124- def get_annotation_regex (annotation_regexes ) :
124+ def get_annotation_regex (annotation_regexes : list [ str ]) -> t . Pattern [ str ] :
125125 """
126126 Return the full regex to search inside comments for configured annotations.
127127
@@ -166,7 +166,7 @@ def get_annotation_regex(annotation_regexes):
166166 return re .compile (annotation_regex , flags = re .VERBOSE )
167167
168168
169- def clean_annotation (token , data ) :
169+ def clean_annotation (token : str , data : str ) -> tuple [ str , str ] :
170170 """
171171 Clean annotation token and data by stripping all trailing/prefix empty spaces.
172172
0 commit comments