a XC?hW�@sJdZgd�ZddlZddlmZdd�Zddd �Zdd d �Zdd d�ZdS)z1Various types of useful iterators and generators.)�body_line_iterator�typed_subpart_iterator�walk�N)�StringIOccs.|V|��r*|��D]}|��EdHqdS)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�r �4/opt/alt/python39/lib64/python3.9/email/iterators.pyrs rFccs6|��D](}|j|d�}t|t�rt|�EdHqdS)z�Iterate over the parts, returning string payloads line-by-line. Optional decode (default False) is passed through to .get_payload(). )�decodeN)rr� isinstance�strr)�msgr r Zpayloadr r r r"s   r�textccs8|��D]*}|��|kr|dus,|��|kr|VqdS)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)rZget_content_maintypeZget_content_subtype)rZmaintypeZsubtyper r r r r-s  rcCs�|durtj}d|d}t||��d|d�|rJtd|��|d�n t|d�|��r||��D]}t|||d|�qddS) zA handy debugging aidN� ��)�end�filez [%s])r�)�sys�stdout�printZget_content_typeZget_default_typerr� _structure)r�fp�levelZinclude_defaultZtabr r r r r;s   r)F)rN)NrF) �__doc__�__all__r�iorrrrrr r r r �s