code: def remove(self, header):
          
          key = header.lower()
          if key not in self._set:
              raise KeyError(header)
          self._set.remove(key)
          for idx, key in enumerate(self._headers):
              if key.lower() == header:
                  del self._headers[idx]
                  break
          if self.on_update is not None:
              self.on_update(self)
docs: Remove a header from the set.  This raises an :exc:`KeyError` if the
          header is not in the set.
  
          .. versionchanged:: 0.5
              In older versions a :exc:`IndexError` was raised instead of a
              :exc:`KeyError` if the object was missing.
  
          :param header: the header to be removed.