31
31
__all__ = ["main" , "build_parser" ]
32
32
__version__ = "0.0.0"
33
33
34
+
34
35
def build_parser () -> argparse .ArgumentParser :
35
36
"""Create and return the top-level ArgumentParser for the CLI."""
36
- parser = argparse .ArgumentParser (
37
- prog = "azpysdk" , description = "Azure SDK Python tools (minimal CLI)"
38
- )
37
+ parser = argparse .ArgumentParser (prog = "azpysdk" , description = "Azure SDK Python tools (minimal CLI)" )
39
38
parser .add_argument ("-V" , "--version" , action = "version" , version = __version__ )
40
39
# global flag: allow --isolate to appear before the subcommand as well
41
- parser .add_argument ("--isolate" , action = "store_true" , default = False ,
42
- help = "If set, run in an isolated virtual environment." )
40
+ parser .add_argument (
41
+ "--isolate" , action = "store_true" , default = False , help = "If set, run in an isolated virtual environment."
42
+ )
43
43
44
44
# mutually exclusive logging options
45
45
log_group = parser .add_mutually_exclusive_group ()
46
46
log_group .add_argument (
47
- "--quiet" ,
48
- action = "store_true" ,
49
- default = False ,
50
- help = "Enable quiet mode (only shows ERROR logs)"
47
+ "--quiet" , action = "store_true" , default = False , help = "Enable quiet mode (only shows ERROR logs)"
51
48
)
52
49
log_group .add_argument (
53
- "--verbose" ,
54
- action = "store_true" ,
55
- default = False ,
56
- help = "Enable verbose mode (shows DEBUG logs)"
50
+ "--verbose" , action = "store_true" , default = False , help = "Enable verbose mode (shows DEBUG logs)"
57
51
)
58
52
log_group .add_argument (
59
- "--log-level" ,
60
- choices = ["DEBUG" , "INFO" , "WARN" , "ERROR" , "FATAL" ],
61
- help = "Set the logging level."
53
+ "--log-level" , choices = ["DEBUG" , "INFO" , "WARN" , "ERROR" , "FATAL" ], help = "Set the logging level."
62
54
)
63
55
64
56
common = argparse .ArgumentParser (add_help = False )
65
57
common .add_argument (
66
58
"target" ,
67
59
nargs = "?" ,
68
60
default = "**" ,
69
- help = "Glob pattern for packages. Defaults to '**', but will match patterns below CWD if a value is provided."
61
+ help = "Glob pattern for packages. Defaults to '**', but will match patterns below CWD if a value is provided." ,
70
62
)
71
63
# allow --isolate to be specified after the subcommand as well
72
64
common .add_argument (
73
- "--isolate" ,
74
- action = "store_true" ,
75
- default = False ,
76
- help = "If set, run in an isolated virtual environment."
65
+ "--isolate" , action = "store_true" , default = False , help = "If set, run in an isolated virtual environment."
77
66
)
78
67
79
68
subparsers = parser .add_subparsers (title = "commands" , dest = "command" )
@@ -92,9 +81,10 @@ def build_parser() -> argparse.ArgumentParser:
92
81
next_pyright ().register (subparsers , [common ])
93
82
ruff ().register (subparsers , [common ])
94
83
verifytypes ().register (subparsers , [common ])
95
-
84
+
96
85
return parser
97
86
87
+
98
88
def main (argv : Optional [Sequence [str ]] = None ) -> int :
99
89
"""CLI entrypoint.
100
90
@@ -123,5 +113,6 @@ def main(argv: Optional[Sequence[str]] = None) -> int:
123
113
logger .error (f"Error: { exc } " )
124
114
return 2
125
115
116
+
126
117
if __name__ == "__main__" :
127
118
raise SystemExit (main ())
0 commit comments