
    RhQ                     B    d 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.)body_line_iteratortyped_subpart_iteratorwalk    N)StringIOc              #      K   |  | j                         r.| j                         D ]  }|j                         E d{     yy7 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subparts     &/usr/lib/python3.12/email/iterators.pyr   r      sH      J'') 	&G||~%%	& %s   ;AA	Ac              #      K   | j                         D ]8  }|j                  |      }t        |t              s&t	        |      E d{    : y7 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   payloads       r   r   r       sM     
 88: )%%V%4gs#((() )s   6AAA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   +   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$   8   s    	zZZ

C	#$$&
&BR8g,,..R82
( 	>GwE!G_=	>     )F)textN)Nr   F)	__doc____all__r   ior   r   r   r   r$    r)   r   <module>r/      s-   
 8  	&)
>r)   