From ddf22c4243c38e819a07cbad53b8711c08e5563f Mon Sep 17 00:00:00 2001 From: Fred Drake Date: Wed, 28 Apr 1999 21:17:38 +0000 Subject: Message.getheader(): Fixed grammatical error in docstring. Message.getheaders(): Method to get list of all values for each instance of a named header. See docstring for more. --- Lib/rfc822.py | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/Lib/rfc822.py b/Lib/rfc822.py index 292b3c9..fbab3c8 100644 --- a/Lib/rfc822.py +++ b/Lib/rfc822.py @@ -272,7 +272,7 @@ class Message: def getheader(self, name, default=None): """Get the header value for a name. - This is the normal interface: it return a stripped + This is the normal interface: it returns a stripped version of the header value for a given header name, or None if it doesn't exist. This uses the dictionary version which finds the *last* such header. @@ -282,6 +282,31 @@ class Message: except KeyError: return default get = getheader + + def getheaders(self, name): + """Get all values for a header. + + This returns a list of values for headers given more than once; + each value in the result list is stripped in the same way as the + result of getheader(). If the header is not given, return None. + """ + result = [] + current = '' + have_header = 0 + for s in self.getallmatchingheaders(name): + if s[0] in string.whitespace: + if current: + current = "%s\n %s" % (current, string.strip(s)) + else: + current = string.strip(s) + else: + if have_header: + result.append(current) + current = string.strip(s[string.find(s, ":") + 1:]) + have_header = 1 + if have_header: + result.append(current) + return result or None def getaddr(self, name): """Get a single address from a header, as a tuple. -- cgit v0.12