示例#1
0
def build_class(name, basenames=(), doc=None):
    """create and initialize a astng Class node"""
    node = nodes.Class(name, doc)
    for base in basenames:
        basenode = nodes.Name()
        basenode.name = base
        node.bases.append(basenode)
        basenode.parent = node
    return node
示例#2
0
 def visit_name(self, node, parent):
     """visit a Name node by returning a fresh instance of it"""
     if node.name in CONST_NAME_TRANSFORMS:
         newnode = new.Const(CONST_NAME_TRANSFORMS[node.name])
         self._set_infos(node, newnode, parent)
         return newnode
     if self.asscontext == "Aug":
         return self.visit_assname(node, parent)
     newnode = new.Name()
     self._set_infos(node, newnode, parent)
     newnode.name = node.name
     return newnode
示例#3
0
 def visit_name(self, node, parent):
     """visit a Name node by returning a fresh instance of it"""
     if node.id in CONST_NAME_TRANSFORMS:
         newnode = new.Const(CONST_NAME_TRANSFORMS[node.id])
         self._set_infos(node, newnode, parent)
         return newnode
     if self.asscontext == "Del":
         newnode = new.DelName()
     elif self.asscontext is not None: # Ass
         assert self.asscontext == "Ass"
         newnode = new.AssName()
     else:
         newnode = new.Name()
     _lineno_parent(node, newnode, parent)
     newnode.name = node.id
     # XXX REMOVE me :
     if self.asscontext in ('Del', 'Ass'): # 'Aug' ??
         self._save_assignment(newnode)
     newnode.set_line_info(newnode.last_child())
     return newnode
示例#4
0
def build_function(name, args=None, defaults=None, flag=0, doc=None):
    """create and initialize a astng Function node"""
    args, defaults = args or [], defaults or []
    # first argument is now a list of decorators
    func = nodes.Function(name, doc)
    func.args = argsnode = nodes.Arguments()
    argsnode.args = []
    for arg in args:
        argsnode.args.append(nodes.Name())
        argsnode.args[-1].name = arg
        argsnode.args[-1].parent = argsnode
    argsnode.defaults = []
    for default in defaults:
        argsnode.defaults.append(nodes.const_factory(default))
        argsnode.defaults[-1].parent = argsnode
    argsnode.kwarg = None
    argsnode.vararg = None
    argsnode.parent = func
    if args:
        register_arguments(func)
    return func