/usr/lib64/python2.6/email
NameSizeModeActions
mime/-0755rm
base64mime.py57920644editdlrm
base64mime.pyc53460644editdlrm
base64mime.pyo53460644editdlrm
charset.py157910644editdlrm
charset.pyc134480644editdlrm
charset.pyo133990644editdlrm
encoders.py23020644editdlrm
encoders.pyc24220644editdlrm
encoders.pyo24220644editdlrm
errors.py16280644editdlrm
errors.pyc35290644editdlrm
errors.pyo35290644editdlrm
feedparser.py206060644editdlrm
feedparser.pyc113140644editdlrm
feedparser.pyo112170644editdlrm
generator.py140620644editdlrm
generator.pyc103840644editdlrm
generator.pyo103840644editdlrm
header.py217380644editdlrm
header.pyc135220644editdlrm
header.pyo134530644editdlrm
iterators.py22020644editdlrm
iterators.pyc23930644editdlrm
iterators.pyo23930644editdlrm
message.py304460644editdlrm
message.pyc286530644editdlrm
message.pyo286530644editdlrm
parser.py33000644editdlrm
parser.pyc38530644editdlrm
parser.pyo38530644editdlrm
quoprimime.py108390644editdlrm
quoprimime.pyc89350644editdlrm
quoprimime.pyo89350644editdlrm
utils.py98190644editdlrm
utils.pyc90680644editdlrm
utils.pyo90680644editdlrm
_parseaddr.py149810644editdlrm
_parseaddr.pyc137030644editdlrm
_parseaddr.pyo137030644editdlrm
__init__.py28560644editdlrm
__init__.pyc28760644editdlrm
__init__.pyo28760644editdlrm
Edit: /usr/lib64/python2.6/email/iterators.py (2202B)
# Copyright (C) 2001-2006 Python Software Foundation # Author: Barry Warsaw # Contact: email-sig@python.org """Various types of useful iterators and generators.""" __all__ = [ 'body_line_iterator', 'typed_subpart_iterator', 'walk', # Do not include _structure() since it's part of the debugging API. ] import sys from cStringIO import StringIO # This function will become a method of the Message class def walk(self): """Walk over the message tree, yielding each subpart. The walk is performed in depth-first order. This method is a generator. """ yield self if self.is_multipart(): for subpart in self.get_payload(): for subsubpart in subpart.walk(): yield subsubpart # These two functions are imported into the Iterators.py interface module. def body_line_iterator(msg, decode=False): """Iterate over the parts, returning string payloads line-by-line. Optional decode (default False) is passed through to .get_payload(). """ for subpart in msg.walk(): payload = subpart.get_payload(decode=decode) if isinstance(payload, basestring): for line in StringIO(payload): yield line def typed_subpart_iterator(msg, maintype='text', subtype=None): """Iterate over the subparts with a given MIME type. Use `maintype' as the main MIME type to match against; this defaults to "text". Optional `subtype' is the MIME subtype to match against; if omitted, only the main type is matched. """ for subpart in msg.walk(): if subpart.get_content_maintype() == maintype: if subtype is None or subpart.get_content_subtype() == subtype: yield subpart def _structure(msg, fp=None, level=0, include_default=False): """A handy debugging aid""" if fp is None: fp = sys.stdout tab = ' ' * (level * 4) print >> fp, tab + msg.get_content_type(), if include_default: print >> fp, '[%s]' % msg.get_default_type() else: print >> fp if msg.is_multipart(): for subpart in msg.get_payload(): _structure(subpart, fp, level+1, include_default)