/usr/lib64/python2.7/email
NameSizeModeActions
mime/-0755rm
base64mime.py57940644editdlrm
base64mime.pyc53230644editdlrm
base64mime.pyo53230644editdlrm
charset.py160440644editdlrm
charset.pyc135410644editdlrm
charset.pyo134940644editdlrm
encoders.py20150644editdlrm
encoders.pyc22320644editdlrm
encoders.pyo22320644editdlrm
errors.py16280644editdlrm
errors.pyc35290644editdlrm
errors.pyo35290644editdlrm
feedparser.py204920644editdlrm
feedparser.pyc111430644editdlrm
feedparser.pyo110520644editdlrm
generator.py142030644editdlrm
generator.pyc103800644editdlrm
generator.pyo103800644editdlrm
header.py222430644editdlrm
header.pyc136620644editdlrm
header.pyo135920644editdlrm
iterators.py22020644editdlrm
iterators.pyc23660644editdlrm
iterators.pyo23660644editdlrm
message.py307230644editdlrm
message.pyc286760644editdlrm
message.pyo286760644editdlrm
parser.py32990644editdlrm
parser.pyc38280644editdlrm
parser.pyo38280644editdlrm
quoprimime.py108480644editdlrm
quoprimime.pyc88500644editdlrm
quoprimime.pyo88500644editdlrm
utils.py100260644editdlrm
utils.pyc93240644editdlrm
utils.pyo93240644editdlrm
_parseaddr.py161380644editdlrm
_parseaddr.pyc138930644editdlrm
_parseaddr.pyo138930644editdlrm
__init__.py28560644editdlrm
__init__.pyc28720644editdlrm
__init__.pyo28720644editdlrm
Edit: /usr/lib64/python2.7/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)