docs: def fieldname_to_dtype(fieldname):
      """Converts a column header from the MPT file into a tuple of
      canonical name and appropriate numpy dtype"""
  
      if fieldname == 'mode':
          return ('mode', np.uint8)
      elif fieldname in ("ox/red", "error", "control changes", "Ns changes",
                         "counter inc."):
          return (fieldname, np.bool_)
      elif fieldname in ("time/s", "P/W", "(Q-Qo)/mA.h", "x", "control/V",
                         "control/V/mA", "(Q-Qo)/C", "dQ/C", "freq/Hz",
                         "|Ewe|/V", "|I|/A", "Phase(Z)/deg", "|Z|/Ohm",
                         "Re(Z)/Ohm", "-Im(Z)/Ohm"):
          return (fieldname, np.float_)
      elif fieldname in ("cycle number", "I Range", "Ns", "half cycle"):
          return (fieldname, np.int_)
      elif fieldname in ("dq/mA.h", "dQ/mA.h"):
          return ("dQ/mA.h", np.float_)
      elif fieldname in ("I/mA", "<I>/mA"):
          return ("I/mA", np.float_)
      elif fieldname in ("Ewe/V", "<Ewe>/V"):
          return ("Ewe/V", np.float_)
      else:
          raise ValueError("Invalid column header: %s" % fieldname)