[Python-checkins] python/dist/src/Lib/email Message.py,1.20,1.21

bwarsaw@users.sourceforge.net bwarsaw@users.sourceforge.net
Thu, 05 Sep 2002 20:38:14 -0700


Update of /cvsroot/python/python/dist/src/Lib/email
In directory usw-pr-cvs1:/tmp/cvs-serv20398

Modified Files:
	Message.py 
Log Message:
replace_header(): New method given by Skip Montanaro in SF patch
#601959.  Modified slightly by Barry (who added the KeyError in case
the header is missing.


Index: Message.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/email/Message.py,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** Message.py	27 Aug 2002 22:34:44 -0000	1.20
--- Message.py	6 Sep 2002 03:38:12 -0000	1.21
***************
*** 351,355 ****
  
          msg.add_header('content-disposition', 'attachment', filename='bud.gif')
- 
          """
          parts = []
--- 351,354 ----
***************
*** 362,365 ****
--- 361,379 ----
              parts.insert(0, _value)
          self._headers.append((_name, SEMISPACE.join(parts)))
+ 
+     def replace_header(self, _name, _value):
+         """Replace a header.
+ 
+         Replace the first matching header found in the message, retaining
+         header order and case.  If no matching header was found, a KeyError is
+         raised.
+         """
+         _name = _name.lower()
+         for i, (k, v) in zip(range(len(self._headers)), self._headers):
+             if k.lower() == _name:
+                 self._headers[i] = (k, _value)
+                 break
+         else:
+             raise KeyError, _name
  
      #