code: def find_cell_end(self, lines):
          
  
          if self.metadata and 'cell_type' in self.metadata:
              self.cell_type = self.metadata.pop('cell_type')
          else:
              self.cell_type = 'code'
  
          next_cell = len(lines)
          for i, line in enumerate(lines):
              if i > 0 and (self.start_code_re.match(line) or self.alternative_start_code_re.match(line)):
                  next_cell = i
                  break
  
          if last_two_lines_blank(lines[:next_cell]):
              return next_cell - 2, next_cell, False
          if next_cell > 0 and _BLANK_LINE.match(lines[next_cell - 1]):
              return next_cell - 1, next_cell, False
          return next_cell, next_cell, False
docs: Return position of end of cell marker, and position
          of first line after cell