# Copyright (C) 2001-2006 Python Software Foundation # Author: Barry Warsaw, Thomas Wouters, Anthony Baxter # Contact: email-sig@python.org """A parser of RFC 2822 and MIME email messages.""" __all__ = ['Parser', 'HeaderParser'] import warnings from cStringIO import StringIO from email.feedparser import FeedParser from email.message import Message class Parser: def __init__(self, *args, **kws): """Parser of RFC 2822 and MIME email messages. Creates an in-memory object tree representing the email message, which can then be manipulated and turned over to a Generator to return the textual representation of the message. The string must be formatted as a block of RFC 2822 headers and header continuation lines, optionally preceeded by a `Unix-from' header. The header block is terminated either by the end of the string or by a blank line. _class is the class to instantiate for new message objects when they must be created. This class must have a constructor that can take zero arguments. Default is Message.Message. """ if len(args) >= 1: if '_class' in kws: raise TypeError("Multiple values for keyword arg '_class'") kws['_class'] = args[0] if len(args) == 2: if 'strict' in kws: raise TypeError("Multiple values for keyword arg 'strict'") kws['strict'] = args[1] if len(args) > 2: raise TypeError('Too many arguments') if '_class' in kws: self._class = kws['_class'] del kws['_class'] else: self._class = Message if 'strict' in kws: warnings.warn("'strict' argument is deprecated (and ignored)", DeprecationWarning, 2) del kws['strict'] if kws: raise TypeError('Unexpected keyword arguments') def parse(self, fp, headersonly=False): """Create a message structure from the data in a file. Reads all the data from the file and returns the root of the message structure. Optional headersonly is a flag specifying whether to stop parsing after reading the headers or not. The default is False, meaning it parses the entire contents of the file. """ feedparser = FeedParser(self._class) if headersonly: feedparser._set_headersonly() while True: data = fp.read(8192) if not data: break feedparser.feed(data) return feedparser.close() def parsestr(self, text, headersonly=False): """Create a message structure from a string. Returns the root of the message structure. Optional headersonly is a flag specifying whether to stop parsing after reading the headers or not. The default is False, meaning it parses the entire contents of the file. """ return self.parse(StringIO(text), headersonly=headersonly) class HeaderParser(Parser): def parse(self, fp, headersonly=True): return Parser.parse(self, fp, True) def parsestr(self, text, headersonly=True): return Parser.parsestr(self, text, True)
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
mime | Folder | 0755 |
|
|
.__init__.pyo.40009 | File | 2.8 KB | 0644 |
|
._parseaddr.pyo.40009 | File | 13.57 KB | 0644 |
|
.base64mime.pyo.40009 | File | 5.2 KB | 0644 |
|
.encoders.pyo.40009 | File | 2.18 KB | 0644 |
|
.errors.pyo.40009 | File | 3.45 KB | 0644 |
|
.generator.pyo.40009 | File | 10.14 KB | 0644 |
|
.iterators.pyo.40009 | File | 2.31 KB | 0644 |
|
.message.pyo.40009 | File | 28 KB | 0644 |
|
.parser.pyo.40009 | File | 3.74 KB | 0644 |
|
.quoprimime.pyo.40009 | File | 8.64 KB | 0644 |
|
.utils.pyo.40009 | File | 8.95 KB | 0644 |
|
__init__.py | File | 2.79 KB | 0644 |
|
__init__.pyc | File | 2.8 KB | 0644 |
|
__init__.pyo | File | 2.8 KB | 0644 |
|
_parseaddr.py | File | 15.76 KB | 0644 |
|
_parseaddr.pyc | File | 13.57 KB | 0644 |
|
_parseaddr.pyo | File | 13.57 KB | 0644 |
|
base64mime.py | File | 5.66 KB | 0644 |
|
base64mime.pyc | File | 5.2 KB | 0644 |
|
base64mime.pyo | File | 5.2 KB | 0644 |
|
charset.py | File | 15.67 KB | 0644 |
|
charset.pyc | File | 13.22 KB | 0644 |
|
charset.pyo | File | 13.18 KB | 0644 |
|
encoders.py | File | 1.97 KB | 0644 |
|
encoders.pyc | File | 2.18 KB | 0644 |
|
encoders.pyo | File | 2.18 KB | 0644 |
|
errors.py | File | 1.59 KB | 0644 |
|
errors.pyc | File | 3.45 KB | 0644 |
|
errors.pyo | File | 3.45 KB | 0644 |
|
feedparser.py | File | 20.12 KB | 0644 |
|
feedparser.pyc | File | 10.88 KB | 0644 |
|
feedparser.pyo | File | 10.79 KB | 0644 |
|
generator.py | File | 13.89 KB | 0644 |
|
generator.pyc | File | 10.14 KB | 0644 |
|
generator.pyo | File | 10.14 KB | 0644 |
|
header.py | File | 21.72 KB | 0644 |
|
header.pyc | File | 13.34 KB | 0644 |
|
header.pyo | File | 13.27 KB | 0644 |
|
iterators.py | File | 2.15 KB | 0644 |
|
iterators.pyc | File | 2.31 KB | 0644 |
|
iterators.pyo | File | 2.31 KB | 0644 |
|
message.py | File | 30 KB | 0644 |
|
message.pyc | File | 28 KB | 0644 |
|
message.pyo | File | 28 KB | 0644 |
|
parser.py | File | 3.22 KB | 0644 |
|
parser.pyc | File | 3.74 KB | 0644 |
|
parser.pyo | File | 3.74 KB | 0644 |
|
quoprimime.py | File | 10.59 KB | 0644 |
|
quoprimime.pyc | File | 8.64 KB | 0644 |
|
quoprimime.pyo | File | 8.64 KB | 0644 |
|
utils.py | File | 13.53 KB | 0644 |
|
utils.pyc | File | 11.86 KB | 0644 |
|
utils.pyo | File | 11.86 KB | 0644 |
|