B ƒ fWã@sLdZdddgZddlZddlmZdd„Zdd d„Zdd d„Zdd d „ZdS)z1Various types of useful iterators and generators.Úbody_line_iteratorÚtyped_subpart_iteratorÚwalkéN)ÚStringIOccs2|V| ¡r.x| ¡D]}| ¡EdHqWdS)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/python37/lib64/python3.7/email/iterators.pyrsFccs:x4| ¡D](}|j|d}t|tƒr t|ƒEdHq WdS)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  Útextccs<x6| ¡D]*}| ¡|kr |dks.| ¡|kr |Vq WdS)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€x"| ¡D]}t|||d|ƒqfWdS) 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