[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