HeaderParser: A new subclass of Parser which only parses the message

headers.  It does not parse the body of the message, instead simply
assigning it as a string to the container's payload.  This can be much
faster when you're only interested in a message's header.
This commit is contained in:
Barry Warsaw 2001-10-11 15:43:00 +00:00
parent 4819e97a48
commit e552882960
1 changed files with 16 additions and 0 deletions

View File

@ -158,3 +158,19 @@ class Parser:
container.add_payload(msg) container.add_payload(msg)
else: else:
container.add_payload(fp.read()) container.add_payload(fp.read())
class HeaderParser(Parser):
"""A subclass of Parser, this one only meaningfully parses message headers.
This class can be used if all you're interested in is the headers of a
message. While it consumes the message body, it does not parse it, but
simply makes it available as a string payload.
Parsing with this subclass can be considerably faster if all you're
interested in is the message headers.
"""
def _parsebody(self, container, fp):
# Consume but do not parse, the body
container.set_payload(fp.read())