/opt/alt/python27/lib64/python2.7/email
NameSizeModeActions
mime/-0755rm
base64mime.py57940644editdlrm
base64mime.pyc53880644editdlrm
base64mime.pyo53880644editdlrm
charset.py160440644editdlrm
charset.pyc137620644editdlrm
charset.pyo137150644editdlrm
encoders.py20150644editdlrm
encoders.pyc23230644editdlrm
encoders.pyo23230644editdlrm
errors.py16280644editdlrm
errors.pyc37240644editdlrm
errors.pyo37240644editdlrm
feedparser.py215160644editdlrm
feedparser.pyc118840644editdlrm
feedparser.pyo117930644editdlrm
generator.py142030644editdlrm
generator.pyc106270644editdlrm
generator.pyo106270644editdlrm
header.py222430644editdlrm
header.pyc138700644editdlrm
header.pyo138000644editdlrm
iterators.py22020644editdlrm
iterators.pyc24310644editdlrm
iterators.pyo24310644editdlrm
message.py307230644editdlrm
message.pyc292740644editdlrm
message.pyo292740644editdlrm
parser.py32990644editdlrm
parser.pyc39320644editdlrm
parser.pyo39320644editdlrm
quoprimime.py108480644editdlrm
quoprimime.pyc90190644editdlrm
quoprimime.pyo90190644editdlrm
utils.py100260644editdlrm
utils.pyc95320644editdlrm
utils.pyo95320644editdlrm
_parseaddr.py157330644editdlrm
_parseaddr.pyc141760644editdlrm
_parseaddr.pyo141760644editdlrm
__init__.py28560644editdlrm
__init__.pyc29500644editdlrm
__init__.pyo29500644editdlrm
Edit: /opt/alt/python27/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)