Coverage for src/probable_fiesta/cli/v1.py: 85%
27 statements
« prev ^ index » next coverage.py v7.1.0, created at 2023-01-30 18:57 -0500
« prev ^ index » next coverage.py v7.1.0, created at 2023-01-30 18:57 -0500
1"""CLI v1 Argument Parser."""
2import argparse
3from ..__about__ import __package_name__ as _package_name
5DESCRIPTION = "There's probably a fiesta somewhere."
7class MyArgumentParser(argparse.ArgumentParser):
9 def __init__(self, *args, **kwargs):
10 super(MyArgumentParser, self).__init__(*args, **kwargs)
12 self.error_message = ''
14 def error(self, message):
15 print("error: ", message)
16 self.error_message = message
18 def parse_args(self, *args, **kwargs):
19 # catch SystemExit exception to prevent closing the application
20 result = None
21 if not args:
22 self.error("invalid empty arguments")
23 return result
24 if args[0] is None or args[0] == "":
25 self.error("invalid empty arguments")
26 return result
27 try:
28 result = super().parse_args(*args, **kwargs)
29 except SystemExit:
30 pass
31 return result
33def create_argument_parser():
34 # Create argument parser
35 parser = MyArgumentParser(add_help=True, description=DESCRIPTION)
37 # Add arguments to parser
38 parser.add_argument("--version", action='store_true', help=f"Current ${_package_name} version")
40 # Return parser
41 return parser