docs: def a1_to_rowcol(label):
      """Translates a cell's address in A1 notation to a tuple of integers.
  
      :param label: A cell label in A1 notation, e.g. 'B1'.
                    Letter case is ignored.
      :type label: str
  
      :returns: a tuple containing `row` and `column` numbers. Both indexed
                from 1 (one).
  
      Example:
  
      >>> a1_to_rowcol('A1')
      (1, 1)
  
      """
      m = CELL_ADDR_RE.match(label)
      if m:
          column_label = m.group(1).upper()
          row = int(m.group(2))
  
          col = 0
          for i, c in enumerate(reversed(column_label)):
              col += (ord(c) - MAGIC_NUMBER) * (26 ** i)
      else:
          raise IncorrectCellLabel(label)
  
      return (row, col)