ó
	Q[c           @` sĞ   d  Z  d d l m Z d d l m Z d d l m Z d d l m Z d d d g Z d d	 l Z d d
 l m	 Z	 d   Z
 e d  Z d d	 d  Z d	 d e d  Z d	 S(   u1   Various types of useful iterators and generators.i    (   t   print_function(   t   unicode_literals(   t   division(   t   absolute_importu   body_line_iteratoru   typed_subpart_iteratoru   walkN(   t   StringIOc         c` sK   |  V|  j    rG x3 |  j   D]" } x | j   D] } | Vq1 Wq Wn  d S(   u   Walk over the message tree, yielding each subpart.

    The walk is performed in depth-first order.  This method is a
    generator.
    N(   t   is_multipartt   get_payloadt   walk(   t   selft   subpartt
   subsubpart(    (    s?   lib/python2.7/site-packages/future/backports/email/iterators.pyR      s
    c         c` s[   xT |  j    D]F } | j d |  } t | t  r x t |  D] } | VqA Wq q Wd S(   u   Iterate over the parts, returning string payloads line-by-line.

    Optional decode (default False) is passed through to .get_payload().
    t   decodeN(   R   R   t
   isinstancet   strR   (   t   msgR   R	   t   payloadt   line(    (    s?   lib/python2.7/site-packages/future/backports/email/iterators.pyt   body_line_iterator%   s
    u   textc         c` sV   xO |  j    D]A } | j   | k r | d k sC | j   | k rN | VqN q q Wd S(   uĝ   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.
    N(   R   t   get_content_maintypet   Nonet   get_content_subtype(   R   t   maintypet   subtypeR	   (    (    s?   lib/python2.7/site-packages/future/backports/email/iterators.pyt   typed_subpart_iterator1   s    c         C` s·   | d k r t j } n  d | d } t | |  j   d d d | | ri t d |  j   d | n t d |  |  j   r³ x. |  j   D] } t | | | d |  q Wn  d S(	   u   A handy debugging aidu    i   t   endu    t   fileu    [%s]i   N(	   R   t   syst   stdoutt   printt   get_content_typet   get_default_typeR   R   t
   _structure(   R   t   fpt   levelt   include_defaultt   tabR	   (    (    s?   lib/python2.7/site-packages/future/backports/email/iterators.pyR   >   s     (   t   __doc__t
   __future__R    R   R   R   t   __all__R   t   ioR   R   t   FalseR   R   R   R   (    (    (    s?   lib/python2.7/site-packages/future/backports/email/iterators.pyt   <module>   s   		