コード例 #1
0
 def visit_attribute(self, node, parent):
     """visit an Attribute node by returning a fresh instance of it"""
     context = self._get_context(node)
     if context == astroid.Del:
         # FIXME : maybe we should reintroduce and visit_delattr ?
         # for instance, deactivating assign_ctx
         newnode = nodes.DelAttr(node.attr, node.lineno, node.col_offset, parent)
     elif context == astroid.Store:
         newnode = nodes.AssignAttr(node.attr, node.lineno, node.col_offset, parent)
         # Prohibit a local save if we are in an ExceptHandler.
         if not isinstance(parent, astroid.ExceptHandler):
             self._delayed_assattr.append(newnode)
     else:
         newnode = nodes.Attribute(node.attr, node.lineno, node.col_offset, parent)
     newnode.postinit(self.visit(node.value, newnode))
     return newnode
コード例 #2
0
 def visit_attribute(self, node, parent, assign_ctx=None):
     """visit a Getattr node by returning a fresh instance of it"""
     # pylint: disable=redefined-variable-type
     if assign_ctx == "Del":
         # FIXME : maybe we should reintroduce and visit_delattr ?
         # for instance, deactivating asscontext
         newnode = new.DelAttr()
     elif assign_ctx == "Assign":
         # FIXME : maybe we should call visit_assattr ?
         newnode = new.AssignAttr()
         self._delayed_assattr.append(newnode)
     else:
         newnode = new.Attribute()
     _lineno_parent(node, newnode, parent)
     newnode.expr = self.visit(node.value, newnode, None)
     newnode.attrname = node.attr
     return newnode
コード例 #3
0
 def visit_getattr(self, node, parent):
     """visit a Getattr node by returning a fresh instance of it"""
     if self.asscontext == "Del":
         # FIXME : maybe we should reintroduce and visit_delattr ?
         # for instance, deactivating asscontext
         newnode = new.DelAttr()
     elif self.asscontext == "Ass":
         # FIXME : maybe we should call visit_assattr ?
         newnode = new.AssAttr()
         self._delayed_assattr.append(newnode)
     else:
         newnode = new.Getattr()
     _lineno_parent(node, newnode, parent)
     asscontext, self.asscontext = self.asscontext, None
     newnode.expr = self.visit(node.value, newnode)
     self.asscontext = asscontext
     newnode.attrname = node.attr
     return newnode