[Python-checkins] python/dist/src/Lib/email Iterators.py,1.12,1.13

bwarsaw at users.sourceforge.net bwarsaw at users.sourceforge.net
Sat May 8 23:42:39 EDT 2004


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)


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /