Beispiel #1
0
 def _markastrelated(self, node):
     for child in node.values():
         if IDocstring.providedBy(child) \
           or IImport.providedBy(child) \
           or IAttribute.providedBy(child) \
           or IDecorator.providedBy(child):
             self._marklines(*range(child.bufstart, child.bufend))
         else:
             self._marklines(*range(child.bufstart, child.defendlineno))
         self._markastrelated(child)
Beispiel #2
0
 def _markastrelated(self, node):
     for child in node.values():
         if IDocstring.providedBy(child) \
           or IImport.providedBy(child) \
           or IAttribute.providedBy(child) \
           or IDecorator.providedBy(child):
             self._marklines(*range(child.bufstart, child.bufend))
         else:
             self._marklines(*range(child.bufstart, child.defendlineno))
         self._markastrelated(child)
Beispiel #3
0
 def _findnodeposition(self, startlineno, endlineno, indent):
     values = [v for v in self.model.values() \
               if not IDecorator.providedBy(v)]
     if not values:
         return self.model, POSITION_INSERT
     last = None
     for child in values:
         # inrange case
         if child.startlineno <= startlineno \
            and child.endlineno >= endlineno:
             return child.parser._findnodeposition(startlineno, endlineno,
                                                   indent)
         # before case
         if endlineno < child.startlineno:
             return child, POSITION_BEFORE
         last = child
     # after case - indent check
     if last.indent == indent:
         return last, POSITION_AFTER
     return self.model, POSITION_AFTER
Beispiel #4
0
 def _findnodeposition(self, startlineno, endlineno, indent):
     values = [v for v in self.model.values() \
               if not IDecorator.providedBy(v)]
     if not values:
         return self.model, POSITION_INSERT
     last = None
     for child in values:
         # inrange case
         if child.startlineno <= startlineno \
            and child.endlineno >= endlineno:
             return child.parser._findnodeposition(startlineno,
                                                   endlineno,
                                                   indent)
         # before case
         if  endlineno < child.startlineno:
             return child, POSITION_BEFORE
         last = child
     # after case - indent check
     if last.indent == indent:
         return last, POSITION_AFTER
     return self.model, POSITION_AFTER