[Python-checkins] python/dist/src/Lib/email Iterators.py,1.12,1.13 (original) (raw)
bwarsaw at users.sourceforge.net bwarsaw at users.sourceforge.net
Sat May 8 23:42:39 EDT 2004
- Previous message: [Python-checkins] python/dist/src/Lib/email Header.py,1.27,1.28
- Next message: [Python-checkins] python/dist/src/Lib/email Message.py,1.35,1.36
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Update of /cvsroot/python/python/dist/src/Lib/email In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13144
Modified Files: Iterators.py Log Message: Update to Python 2.3, getting rid of backward compatiblity crud. We don't need the _compat21 or _compat22 modules either.
Index: Iterators.py
RCS file: /cvsroot/python/python/dist/src/Lib/email/Iterators.py,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** Iterators.py 1 Oct 2002 00:51:47 -0000 1.12 --- Iterators.py 9 May 2004 03:42:37 -0000 1.13
*** 1,4 **** ! # Copyright (C) 2001,2002 Python Software Foundation ! # Author: barry at zope.com (Barry Warsaw)
"""Various types of useful iterators and generators. --- 1,4 ---- ! # Copyright (C) 2001-2004 Python Software Foundation ! # Author: Barry Warsaw <barry at python.org>
"""Various types of useful iterators and generators.
*** 6,25 ****
import sys
! try: ! from email._compat22 import body_line_iterator, typed_subpart_iterator ! except SyntaxError: ! # Python 2.1 doesn't have generators ! from email._compat21 import body_line_iterator, typed_subpart_iterator
! def _structure(msg, fp=None, level=0): """A handy debugging aid""" if fp is None: fp = sys.stdout tab = ' ' * (level * 4) ! print >> fp, tab + msg.get_content_type() if msg.is_multipart(): for subpart in msg.get_payload(): ! _structure(subpart, fp, level+1) --- 6,67 ----
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.
! # The Python 2.2 version uses generators for efficiency.
! 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 '[%s]' % msg.get_default_type()
! else:
! print
if msg.is_multipart():
for subpart in msg.get_payload():
! _structure(subpart, fp, level+1, include_default)
- Previous message: [Python-checkins] python/dist/src/Lib/email Header.py,1.27,1.28
- Next message: [Python-checkins] python/dist/src/Lib/email Message.py,1.35,1.36
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]