docs: def _read_arc_record(self):
          "Reads out an arc record, formats it and returns it"
          #XXX:Noufal Stream payload here rather than just read it
          # r = self.fileobj.readline() # Drop the initial newline
          # if r == "":
          #     return None
          # header = self.fileobj.readline()
  
          # Strip the initial new lines and read first line
          header = self.fileobj.readline()
          while header and header.strip() == "":
              header = self.fileobj.readline()
  
          if header == "":
              return None
  
          if int(self.version) == 1:
              arc_header_re = ARC1_HEADER_RE
          elif int(self.version) == 2:
              arc_header_re = ARC2_HEADER_RE
  
          matches = arc_header_re.search(header)
          headers = matches.groupdict()
          arc_header = ARCHeader(**headers)
  
          payload = self.fileobj.read(int(headers['length']))
  
          self.fileobj.readline() # Munge the separator newline.
  
          return ARCRecord(header = arc_header, payload = payload)