o
    ,º],	  ã                   @   sz   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	d
„ Z
ddd„Zddd„Zddd„ZdS )z1Various types of useful iterators and generators.é    )Úprint_function)Úunicode_literals)Údivision)Úabsolute_import)Úbody_line_iteratorÚtyped_subpart_iteratorÚwalkN)ÚStringIOc                 c   s:   � | V  |   ¡ r|  ¡ D ]}| ¡ D ]}|V  qqdS dS )z‰Walk 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Ú
subsubpart© r   ú]/var/www/html/myproject/venv/lib/python3.10/site-packages/future/backports/email/iterators.pyr      s   €ÿþr   Fc                 c   s>   � |   ¡ D ]}|j|d�}t|tƒrt|ƒD ]}|V  qqdS )zŽIterate 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Úliner   r   r   r   %   s   €
€ür   Útextc                 c   s:   � |   ¡ D ]}| ¡ |kr|du s| ¡ |kr|V  qdS )zø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   Úget_content_maintypeÚget_content_subtype)r   ÚmaintypeÚsubtyper   r   r   r   r   1   s   €€ýr   c                 C   s„   |du rt j}d|d  }t||  ¡  d|d� |r%td|  ¡  |d� nt|d� |  ¡ r>|  ¡ D ]}t|||d |ƒ q2dS dS )	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   r   r   r   r'   >   s   
þr'   )F)r   N)Nr   F)Ú__doc__Ú
__future__r   r   r   r   Ú__all__r"   Úior	   r   r   r   r'   r   r   r   r   Ú<module>   s   

