/
usr
/
lib
/
python2.6
/
email
/
/usr/lib/python2.6/email
mkdir
upload
Name
Size
Mode
Actions
mime/
-
0755
rm
base64mime.py
5792
0644
edit
dl
rm
base64mime.pyc
5336
0644
edit
dl
rm
base64mime.pyo
5336
0644
edit
dl
rm
charset.py
15791
0644
edit
dl
rm
charset.pyc
13414
0644
edit
dl
rm
charset.pyo
13365
0644
edit
dl
rm
encoders.py
2302
0644
edit
dl
rm
encoders.pyc
2408
0644
edit
dl
rm
encoders.pyo
2408
0644
edit
dl
rm
errors.py
1628
0644
edit
dl
rm
errors.pyc
3499
0644
edit
dl
rm
errors.pyo
3499
0644
edit
dl
rm
feedparser.py
20606
0644
edit
dl
rm
feedparser.pyc
11268
0644
edit
dl
rm
feedparser.pyo
11171
0644
edit
dl
rm
generator.py
14062
0644
edit
dl
rm
generator.pyc
10346
0644
edit
dl
rm
generator.pyo
10346
0644
edit
dl
rm
header.py
21738
0644
edit
dl
rm
header.pyc
13490
0644
edit
dl
rm
header.pyo
13421
0644
edit
dl
rm
iterators.py
2202
0644
edit
dl
rm
iterators.pyc
2383
0644
edit
dl
rm
iterators.pyo
2383
0644
edit
dl
rm
message.py
30446
0644
edit
dl
rm
message.pyc
28561
0644
edit
dl
rm
message.pyo
28561
0644
edit
dl
rm
parser.py
3300
0644
edit
dl
rm
parser.pyc
3837
0644
edit
dl
rm
parser.pyo
3837
0644
edit
dl
rm
quoprimime.py
10839
0644
edit
dl
rm
quoprimime.pyc
8909
0644
edit
dl
rm
quoprimime.pyo
8909
0644
edit
dl
rm
utils.py
9819
0644
edit
dl
rm
utils.pyc
9036
0644
edit
dl
rm
utils.pyo
9036
0644
edit
dl
rm
_parseaddr.py
14981
0644
edit
dl
rm
_parseaddr.pyc
13649
0644
edit
dl
rm
_parseaddr.pyo
13649
0644
edit
dl
rm
__init__.py
2856
0644
edit
dl
rm
__init__.pyc
2864
0644
edit
dl
rm
__init__.pyo
2864
0644
edit
dl
rm
Edit:
/usr/lib/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)
Save
cmd:
run