@@ -33,19 +33,14 @@ def __init__(self, headers=None):
3333 if type (headers ) is not list :
3434 raise TypeError ("Headers must be a list of name/value tuples" )
3535 self ._headers = headers
36- if __debug__ :
37- for k , v in headers :
38- self ._validate_header_string (k )
39- self ._validate_header_string (v )
4036
4137 def _validate_header_string (self , value ):
4238 """Validate header type and value."""
43- if type (value ) is str :
44- if '\r ' in value or '\n ' in value :
45- raise ValueError ('Invalid header name/value: contains CR or LF' )
46- return value
47- raise AssertionError ("Header names/values must be"
48- " of type str (got {0})" .format (repr (value )))
39+ if not isinstance (value , str ):
40+ raise AssertionError ("Header names/values must be"
41+ " of type str (got {0})" .format (repr (value )))
42+ if '\r ' in value or '\n ' in value :
43+ raise ValueError ('Invalid header name/value: contains CR or LF' )
4944
5045 def __len__ (self ):
5146 """Return the total number of headers, including duplicates."""
@@ -54,17 +49,18 @@ def __len__(self):
5449 def __setitem__ (self , name , val ):
5550 """Set the value of a header."""
5651 del self [name ]
57- self ._headers . append (
58- ( self ._validate_header_string (name ),
59- self ._validate_header_string ( val ) ))
52+ self ._validate_header_string ( name )
53+ self ._validate_header_string (val )
54+ self ._headers . append (( name , val ))
6055
6156 def __delitem__ (self ,name ):
6257 """Delete all occurrences of a header, if present.
6358
6459 Does *not* raise an exception if the header is missing.
6560 """
66- name = self ._validate_header_string (name .lower ())
67- self ._headers [:] = [kv for kv in self ._headers if kv [0 ].lower () != name ]
61+ self ._headers [:] = [
62+ kv for kv in self ._headers if kv [0 ].lower () != name .lower ()
63+ ]
6864
6965 def __getitem__ (self ,name ):
7066 """Get the first header value for 'name'
@@ -90,15 +86,13 @@ def get_all(self, name):
9086 fields deleted and re-inserted are always appended to the header list.
9187 If no fields exist with the given name, returns an empty list.
9288 """
93- name = self ._validate_header_string (name .lower ())
94- return [kv [1 ] for kv in self ._headers if kv [0 ].lower ()== name ]
89+ return [kv [1 ] for kv in self ._headers if kv [0 ].lower ()== name .lower ()]
9590
9691
9792 def get (self ,name ,default = None ):
9893 """Get the first header value for 'name', or return 'default'"""
99- name = self ._validate_header_string (name .lower ())
10094 for k ,v in self ._headers :
101- if k .lower ()== name :
95+ if k .lower ()== name . lower () :
10296 return v
10397 return default
10498
@@ -151,8 +145,9 @@ def setdefault(self,name,value):
151145 and value 'value'."""
152146 result = self .get (name )
153147 if result is None :
154- self ._headers .append ((self ._validate_header_string (name ),
155- self ._validate_header_string (value )))
148+ self ._validate_header_string (name )
149+ self ._validate_header_string (value )
150+ self ._headers .append ((name , value ))
156151 return value
157152 else :
158153 return result
@@ -173,15 +168,16 @@ def add_header(self, _name, _value, **_params):
173168 *not* handle '(charset, language, value)' tuples: all values must be
174169 strings or None.
175170 """
171+ self ._validate_header_string (_name )
176172 parts = []
177173 if _value is not None :
178- _value = self ._validate_header_string (_value )
174+ self ._validate_header_string (_value )
179175 parts .append (_value )
180176 for k , v in _params .items ():
181- k = self ._validate_header_string (k )
177+ self ._validate_header_string (k )
182178 if v is None :
183179 parts .append (k .replace ('_' , '-' ))
184180 else :
185- v = self ._validate_header_string (v )
181+ self ._validate_header_string (v )
186182 parts .append (_formatparam (k .replace ('_' , '-' ), v ))
187- self ._headers .append ((self . _validate_header_string ( _name ) , "; " .join (parts )))
183+ self ._headers .append ((_name , "; " .join (parts )))
0 commit comments