コード例 #1
0
    def visit_arguments(self, node):
        def write_possible_comma():
            if _first[0]:
                _first[0] = False
            else:
                self._write(', ')
        _first = [True]

        def write_args(args, defaults):
            no_default_count = len(args) - len(defaults)
            for i, arg in enumerate(args):
                write_possible_comma()
                self.visit(arg)
                default_idx = i - no_default_count
                if default_idx >= 0 and defaults[default_idx] is not None:
                    self._write('=')
                    self.visit(defaults[i - no_default_count])

        write_args(node.args, node.defaults)
        if getattr(node, 'vararg', None):
            write_possible_comma()
            self._write('*')
            if isstring(node.vararg):
                self._write(node.vararg)
            else:
                self.visit(node.vararg)
        if getattr(node, 'kwonlyargs', None):
            write_args(node.kwonlyargs, node.kw_defaults)
        if getattr(node, 'kwarg', None):
            write_possible_comma()
            self._write('**')
            if isstring(node.kwarg):
                self._write(node.kwarg)
            else:
                self.visit(node.kwarg)
コード例 #2
0
 def _process(self, names, node):
     if not IS_PYTHON2 and isinstance(node, _ast.arg):
         names.add(node.arg)
     elif isstring(node):
         names.add(node)
     elif isinstance(node, _ast.Name):
         names.add(node.id)
     elif isinstance(node, _ast.alias):
         names.add(node.asname or node.name)
     elif isinstance(node, _ast.Tuple):
         for elt in node.elts:
             self._process(names, elt)
コード例 #3
0
ファイル: eval.py プロジェクト: edgewall/genshi
 def _process(self, names, node):
     if not IS_PYTHON2 and isinstance(node, _ast.arg):
         names.add(node.arg)
     elif isstring(node):
         names.add(node)
     elif isinstance(node, _ast.Name):
         names.add(node.id)
     elif isinstance(node, _ast.alias):
         names.add(node.asname or node.name)
     elif isinstance(node, _ast.Tuple):
         for elt in node.elts:
             self._process(names, elt)
コード例 #4
0
ファイル: astutil.py プロジェクト: jun66j5/genshi
    def visit_arguments(self, node):
        def write_possible_comma():
            if _first[0]:
                _first[0] = False
            else:
                self._write(', ')

        _first = [True]

        def write_args(args, defaults):
            no_default_count = len(args) - len(defaults)
            for i, arg in enumerate(args):
                write_possible_comma()
                self.visit(arg)
                default_idx = i - no_default_count
                if default_idx >= 0 and defaults[default_idx] is not None:
                    self._write('=')
                    self.visit(defaults[i - no_default_count])

        write_args(node.args, node.defaults)
        if getattr(node, 'vararg', None):
            write_possible_comma()
            self._write('*')
            if isstring(node.vararg):
                self._write(node.vararg)
            else:
                self.visit(node.vararg)
        if getattr(node, 'kwonlyargs', None):
            write_args(node.kwonlyargs, node.kw_defaults)
        if getattr(node, 'kwarg', None):
            write_possible_comma()
            self._write('**')
            if isstring(node.kwarg):
                self._write(node.kwarg)
            else:
                self.visit(node.kwarg)