U e5dWã@sLdZdddgZddlZddlmZdd„Zdd d„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 ú'/usr/lib64/python3.8/email/iterators.pyrs Fccs6| ¡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   Útextccs8| ¡D]*}| ¡|kr|dks,| ¡|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  cCs€|dkrtj}d|d}t|| ¡d|d|rJtd| ¡|dn 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ý