Ejemplo n.º 1
0
    def __init__(self, name, loader, *largs, **kwargs):
        kwargs['formatter_class'] = RawTextHelpFormatter
        kwargs['fromfile_prefix_chars']="@"
        args = kwargs.pop('args', None)
            
        preparser = ArgumentParser(add_help=False, 
                fromfile_prefix_chars=kwargs['fromfile_prefix_chars'])
        preparser.add_argument("-X", type=loader, action="append")
        # Process the plugins
        preparser.exit = lambda a, b: None
#        preparser.convert_arg_line_to_args = self.convert_arg_line_to_args
        preparser._read_args_from_files = PluginArgumentParser._read_args_from_files.__get__(preparser)         
        preparser._yield_args_from_files = PluginArgumentParser._yield_args_from_files.__get__(preparser)         
        preparser.convert_args_file_to_args = PluginArgumentParser.convert_args_file_to_args.__get__(preparser)         

        self.ns, unknown = preparser.parse_known_args(args) 

        ArgumentParser.__init__(self, name, *largs, **kwargs)

        self.add_argument("-X", action='append', help='path of additional plugins to be loaded' )