docs: def _parse_radic_header(header_group, dipole_mode="all"):
      """
      Parameters
      ----------
      dipole_mode: Which dipoles should be extracted
          "all"
          "before"
          "between"
          "after"
      """
      header = ''.join(header_group[1])
  
      nr_of_electrodes = _get_nr_of_electrodes(header.split('\n'))
      groups = itertools.groupby(
          header.split('\n'),
          lambda line: (
              line.startswith('[End Readings]') or
              line.startswith('[Begin Readings]')
          )
      )
  
      for key, group in groups:
          # there is only one group we are interested in: the first one
          if key:
              tmp = np.array(
                  [
                      np.fromstring(
                          x, sep=' ', dtype=int
                      )
                      for x in next(groups)[1]
                  ],
              )
  
              # curpots = tmp.T.copy()
              # curpots.resize(nr_of_electrodes + 2, tmp.shape[0])
              break
  
      # now we have the raw readings, pad them with zeros
      readings = []
      for raw_reading in tmp:
          voltage_rus = raw_reading[3:]
          # note that we now have the last electrode in here, too (so one more
          # than we have RUs. This electrode is always 0
          normed_reading = np.zeros(nr_of_electrodes)
          for i in voltage_rus[np.where(voltage_rus > 0)]:
              normed_reading[i - 1] = i
          readings.append(np.hstack((raw_reading[0:3], normed_reading)))
  
      # now generate the available configurations
      # add calibration
      reading_configs = {}
      for nr, reading in enumerate(readings):
          # nr = reading[0]
          A = reading[1]
          B = reading[2]
  
          voltages = []
  
          # loop over the RU-settings
          # we always measure to the next zero electrode
          for i in range(3, nr_of_electrodes + 3):
              for j in range(i + 1, nr_of_electrodes + 3):
                  if reading[j] == 0:
                      M = i - 2
                      N = j - 2
                      all_active = ((reading[i] == 0) and (reading[j] == 0))
                      # print('a', 'b', 'm, n', A, B, M, N, all_active)
                      voltages.append((A, B, M, N, all_active))
                      break
  
          reading_configs[nr + 1] = np.array(voltages)
      return reading_configs