code: def extend(self, *args, **kwargs):
          
          if len(args) > 1:
              raise TypeError("extend() takes at most 1 positional "
                              "arguments ({0} given)".format(len(args)))
          other = args[0] if len(args) >= 1 else ()
  
          if isinstance(other, HTTPHeaderDict):
              for key, val in other.iteritems():
                  self.add(key, val)
          elif isinstance(other, Mapping):
              for key in other:
                  self.add(key, other[key])
          elif hasattr(other, "keys"):
              for key in other.keys():
                  self.add(key, other[key])
          else:
              for key, value in other:
                  self.add(key, value)
  
          for key, value in kwargs.items():
              self.add(key, value)
docs: Generic import function for any type of header-like object.
          Adapted version of MutableMapping.update in order to insert items
          with self.add instead of self.__setitem__