code: def _init_hdr(self, line, hdrs_usr):
          
          self.hdr2idx = OrderedDict([(v.strip(), i) for i, v in enumerate(re.split(self.sep, line))])
          self.len = len(self.hdr2idx)
          # If user is requesting specific data fields...
          if hdrs_usr is not None:
              # Loop through the user headers
              for usr_hdr in hdrs_usr:
                  # If the user header is contained in the file....
                  if usr_hdr in self.hdr2idx:
                      # Add the user header and the field index to a list
                      self.hdrs_usr.append([usr_hdr, self.hdr2idx[usr_hdr]])
                  else:
                      raise Exception("NO COLUMN({}) FOUND:\n  HDR={}\n".format(
                          hdrs_usr, '\n  HDR='.join(self.hdr2idx.keys())))
          usr_hdrs = [E[0] for E in self.hdrs_usr] if self.hdrs_usr else self.hdr2idx
          self._init_idxs_float(usr_hdrs)
          self._init_idxs_int(usr_hdrs)
          self._init_idxs_strpat(usr_hdrs)
          self.usr_max_idx = max(E[1] for E in self.hdrs_usr) if self.hdrs_usr else len(self.hdr2idx)-1
docs: Initialize self.hdr2idx, self.len, self.idxs_float, and self.idxs_int