Beispiel #1
0
    def get_parsed_args(self, comp_words):
        """ gets the parsed args from a patched parser """
        active_parsers = self._patch_argument_parser()

        parsed_args = argparse.Namespace()

        self.completing = True
        if USING_PYTHON2:
            # Python 2 argparse only properly works with byte strings.
            comp_words = [ensure_bytes(word) for word in comp_words]

        try:
            stderr = sys.stderr
            sys.stderr = io.open(os.devnull, "w")

            active_parsers[0].parse_known_args(comp_words,
                                               namespace=parsed_args)

            sys.stderr.close()
            sys.stderr = stderr
        except BaseException:
            pass

        self.completing = False
        return parsed_args
Beispiel #2
0
    def run_completer(self, parser, command, point=None, completer=autocomplete, **kwargs):
        command = ensure_str(command)

        if point is None:
            point = str(len(command))
        with TemporaryFile() as t:
            os.environ["COMP_LINE"] = ensure_bytes(command) if USING_PYTHON2 else command
            os.environ["COMP_POINT"] = point
            self.assertRaises(SystemExit, completer, parser, output_stream=t,
                              exit_method=sys.exit, **kwargs)
            t.seek(0)
            return t.read().decode(sys_encoding).split(IFS)
Beispiel #3
0
 def run_completer(self, parser, command, point=None, **kwargs):
     command = ensure_str(command)
     if point is None:
         # Adjust point for wide chars
         point = str(len(command.encode(sys_encoding)))
     with TemporaryFile() as t:
         os.environ["COMP_LINE"] = ensure_bytes(command) if USING_PYTHON2 else command
         os.environ["COMP_POINT"] = point
         os.environ["_ARGCOMPLETE_COMP_WORDBREAKS"] = '"\'@><=;|&(:'
         self.assertRaises(SystemExit, autocomplete, parser, output_stream=t,
                           exit_method=sys.exit, **kwargs)
         t.seek(0)
         return t.read().decode(sys_encoding).split(IFS)
Beispiel #4
0
 def run_completer(self, parser, command, point=None, **kwargs):
     command = ensure_str(command)
     if point is None:
         # Adjust point for wide chars
         point = str(len(command.encode(sys_encoding)))
     with TemporaryFile() as t:
         os.environ["COMP_LINE"] = ensure_bytes(command) if USING_PYTHON2 else command
         os.environ["COMP_POINT"] = point
         os.environ["_ARGCOMPLETE_COMP_WORDBREAKS"] = '"\'@><=;|&(:'
         self.assertRaises(SystemExit, autocomplete, parser, output_stream=t,
                           exit_method=sys.exit, **kwargs)
         t.seek(0)
         return t.read().decode(sys_encoding).split(IFS)
    def get_parsed_args(self, comp_words):
        """ gets the parsed args from a patched parser """
        active_parsers = self._patch_argument_parser()

        parsed_args = argparse.Namespace()

        self.completing = True
        if USING_PYTHON2:
            # Python 2 argparse only properly works with byte strings.
            comp_words = [ensure_bytes(word) for word in comp_words]

        try:
            active_parsers[0].parse_known_args(comp_words, namespace=parsed_args)
        except BaseException:  # pylint: disable=broad-except
            pass

        self.completing = False
        return parsed_args
Beispiel #6
0
    def get_parsed_args(self, comp_words):
        """ gets the parsed args from a patched parser """
        active_parsers = self._patch_argument_parser()

        parsed_args = argparse.Namespace()

        self.completing = True
        if USING_PYTHON2:
            # Python 2 argparse only properly works with byte strings.
            comp_words = [ensure_bytes(word) for word in comp_words]

        try:
            active_parsers[0].parse_known_args(comp_words,
                                               namespace=parsed_args)
        except BaseException:  # pylint: disable=broad-except
            pass

        self.completing = False
        return parsed_args