
    Fwg,	                     r    d Z ddlmZ ddlmZ ddlmZ ddlmZ g dZddlZddlm	Z	 d	 Z
dd
ZddZddZy)z1Various types of useful iterators and generators.    )print_function)unicode_literals)division)absolute_import)body_line_iteratortyped_subpart_iteratorwalkN)StringIOc              #      K   |  | j                         r/| j                         D ]  }|j                         D ]  }|   yyw)zWalk over the message tree, yielding each subpart.

    The walk is performed in depth-first order.  This method is a
    generator.
    N)is_multipartget_payloadr	   )selfsubpart
subsubparts      W/var/www/horilla/myenv/lib/python3.12/site-packages/future/backports/email/iterators.pyr	   r	      sQ      J'') 	!G%lln !
  !	! s   AAc              #      K   | j                         D ]9  }|j                  |      }t        |t              s&t	        |      D ]  }|  ; yw)zIterate over the parts, returning string payloads line-by-line.

    Optional decode (default False) is passed through to .get_payload().
    )decodeN)r	   r   
isinstancestrr
   )msgr   r   payloadlines        r   r   r   %   sS     
 88: %%V%4gs# ) 
s
   6AAc              #      K   | j                         D ]0  }|j                         |k(  s||j                         |k(  s-| 2 yw)zIterate 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	   get_content_maintypeget_content_subtype)r   maintypesubtyper   s       r   r   r   1   sH      88: '')X5'"="="?7"Js   'AA Ac                 >   |t         j                  }d|dz  z  }t        || j                         z   d|       |rt        d| j	                         z  |       nt        |       | j                         r'| j                         D ]  }t        |||dz   |        yy)	zA handy debugging aidN     )endfilez [%s])r#      )sysstdoutprintget_content_typeget_default_typer   r   
_structure)r   fplevelinclude_defaulttabr   s         r   r*   r*   >   s    	zZZ

C	#$$&
&BR8g,,..R82
( 	>GwE!G_=	>     )F)textN)Nr   F)__doc__
__future__r   r   r   r   __all__r%   ior
   r	   r   r   r*    r/   r   <module>r6      s9   
 8 % '  &  
!	
>r/   