�
*�KgW � �D � d Z g d�ZddlZddlmZ d� Zdd�Zdd �Zd
d
�ZdS )z1Various types of useful iterators and generators.)�body_line_iterator�typed_subpart_iterator�walk� N)�StringIOc # � K � | V � | � � � r1| � � � D ]}|� � � E d{V �� �dS dS )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�subparts �&/usr/lib/python3.11/email/iterators.pyr r sw � � � � �J�J�J������ &��'�'�)�)� &� &�G��|�|�~�~�%�%�%�%�%�%�%�%�&� &� &� &� Fc # � K � | � � � D ]B}|� |�� � }t |t � � rt |� � E d{V �� �CdS )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 �payloads r r r " |