Coverage for src/probable_fiesta/cli/builder/args_parse.py: 91%
33 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
1from ..v1 import MyArgumentParser
3class Parser:
4 def __init__(self, parser=None, add_help=True, description=None):
5 if parser is not None:
6 self.parser = parser
7 else:
8 self.parser = MyArgumentParser(add_help=add_help, description=description)
9 self.valid = False
10 self.parsed_args = None
11 self.error = None
13 def __str__(self):
14 return f"Parser: {self.__dict__}"
16 def add_argument(self, *args, **kwargs):
17 #print(args)
18 #print(*args)
19 #print(kwargs)
20 #print(*kwargs)
21 self.parser.add_argument(*args, **kwargs)
22 return self
24 #def parse_args(self, args):
25 #self.parsed_args = self.parser.parse_args(args)
26 #return self
28 def get_parsed_args(self):
29 return self.parsed_args
31 def validate(self, args=None):
32 self.valid = True
33 self.parsed_args = self.parser.parse_args(args)
34 if self.parser.error_message:
35 self.error = self.parser.error_message
36 self.valid = False
37 if not self.parsed_args:
38 self.valid = False
39 return self.valid
41 @staticmethod
42 def new_parser(parser=None, add_help=True, description=None):
43 return Parser(parser, add_help, description)
45 class Factory():
46 @staticmethod
47 def new(parser=None, add_help=True, description=None):
48 return Parser.new_parser(parser, add_help, description)
50 factory = Factory()