def readheaders(self):
    # XXX The implementation overrides the readheaders() method of
    # rfc822.Message.  The base class design isn't amenable to
    # customized behavior here so the method here is a copy of the
    # base class code with a few small changes.

    self.dict = {}
    self.unixfrom = ''
    self.headers = hlist = []
    self.status = ''
    headerseen = ""
    firstline = 1
    startofline = unread = tell = None
    if hasattr(self.fp, 'unread'):
      unread = self.fp.unread
    elif self.seekable:
      tell = self.fp.tell
    while True:
      if tell:
        try:
          startofline = tell()
        except IOError:
          startofline = tell = None
          self.seekable = 0
      line = self.fp.readline(_MAXLINE + 1)
      if len(line) > _MAXLINE:
        raise LineTooLong("header line")
      if not line:
        self.status = 'EOF in headers'
        break
      # Skip unix From name time lines
      if firstline and line.startswith('From '):
        self.unixfrom = self.unixfrom + line
        continue
      firstline = 0
      if headerseen and line[0] in ' \t':
        # XXX Not sure if continuation lines are handled properly
        # for http and/or for repeating headers
        # It's a continuation line.
        hlist.append(line)
        self.addcontinue(headerseen, line.strip())
        continue
      elif self.iscomment(line):
        # It's a comment.  Ignore it.
        continue
      elif self.islast(line):
        # Note! No pushback here!  The delimiter line gets eaten.
        break
      headerseen = self.isheader(line)
      if headerseen:
        # It's a legal header line, save it.
        hlist.append(line)
        self.addheader(headerseen, line[len(headerseen)+1:].strip())
        continue
      else:
        # It's not a header line; throw it back and stop here.
        if not self.dict:
          self.status = 'No headers'
        else:
          self.status = 'Non-header line where header expected'
        # Try to undo the read.
        if unread:
          unread(line)
        elif tell:
          self.fp.seek(startofline)
        else:
          self.status = self.status + '; bad seek'
        break
JobCategory with active jobs
dataset/ETHPy150Open GoogleCloudPlatform/python-compat-runtime/appengine-compat/exported_appengine_sdk/google/appengine/dist27/gae_override/httplib.py/HTTPMessage.readheaders--crossover with--dataset/ETHPy150Open python/pythondotorg/jobs/managers.py/JobCategoryQuerySet.with_active_jobs