Index: Lib/wsgiref/headers.py =================================================================== --- Lib/wsgiref/headers.py (revision 86572) +++ Lib/wsgiref/headers.py (working copy) @@ -24,13 +24,12 @@ else: return param - class Headers: - """Manage a collection of HTTP response headers""" - def __init__(self,headers): - if type(headers) is not list: + def __init__(self, headers=None): + headers = headers if headers is not None else [] + if not isinstance(headers, list): raise TypeError("Headers must be a list of name/value tuples") self._headers = headers if __debug__: @@ -40,7 +39,7 @@ def _convert_string_type(self, value): """Convert/check value type.""" - if type(value) is str: + if isinstance(value, str): return value raise AssertionError("Header names/values must be" " of type str (got {0})".format(repr(value))) @@ -55,7 +54,7 @@ self._headers.append( (self._convert_string_type(name), self._convert_string_type(val))) - def __delitem__(self,name): + def __delitem__(self, name): """Delete all occurrences of a header, if present. Does *not* raise an exception if the header is missing. @@ -63,7 +62,7 @@ name = self._convert_string_type(name.lower()) self._headers[:] = [kv for kv in self._headers if kv[0].lower() != name] - def __getitem__(self,name): + def __getitem__(self, name): """Get the first header value for 'name' Return None if the header is missing instead of raising an exception. @@ -78,7 +77,6 @@ """Return true if the message contains the header.""" return self.get(name) is not None - def get_all(self, name): """Return a list of all the values for the named field. @@ -88,18 +86,16 @@ If no fields exist with the given name, returns an empty list. """ name = self._convert_string_type(name.lower()) - return [kv[1] for kv in self._headers if kv[0].lower()==name] + return [v for k, v in self._headers if k.lower() == name] - - def get(self,name,default=None): + def get(self, name, default=None): """Get the first header value for 'name', or return 'default'""" name = self._convert_string_type(name.lower()) - for k,v in self._headers: - if k.lower()==name: + for k, v in self._headers: + if k.lower() == name: return v return default - def keys(self): """Return a list of all the header field names.