3131__all__ = ["main" , "build_parser" ]
3232__version__ = "0.0.0"
3333
34+
3435def build_parser () -> argparse .ArgumentParser :
3536 """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)" )
3938 parser .add_argument ("-V" , "--version" , action = "version" , version = __version__ )
4039 # 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+ )
4343
4444 # mutually exclusive logging options
4545 log_group = parser .add_mutually_exclusive_group ()
4646 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)"
5148 )
5249 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)"
5751 )
5852 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."
6254 )
6355
6456 common = argparse .ArgumentParser (add_help = False )
6557 common .add_argument (
6658 "target" ,
6759 nargs = "?" ,
6860 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." ,
7062 )
7163 # allow --isolate to be specified after the subcommand as well
7264 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."
7766 )
7867
7968 subparsers = parser .add_subparsers (title = "commands" , dest = "command" )
@@ -92,9 +81,10 @@ def build_parser() -> argparse.ArgumentParser:
9281 next_pyright ().register (subparsers , [common ])
9382 ruff ().register (subparsers , [common ])
9483 verifytypes ().register (subparsers , [common ])
95-
84+
9685 return parser
9786
87+
9888def main (argv : Optional [Sequence [str ]] = None ) -> int :
9989 """CLI entrypoint.
10090
@@ -123,5 +113,6 @@ def main(argv: Optional[Sequence[str]] = None) -> int:
123113 logger .error (f"Error: { exc } " )
124114 return 2
125115
116+
126117if __name__ == "__main__" :
127118 raise SystemExit (main ())
0 commit comments