o !QçdWã@sJdZgd¢ZddlZddlmZdd„Zddd „Zdd d „Zdd d„ZdS)z1Various types of useful iterators and generators.)Úbody_line_iteratorÚtyped_subpart_iteratorÚwalkéN)ÚStringIOccs4|V| ¡r| ¡D] }| ¡EdHq dSdS)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 ú6/opt/alt/python310/lib64/python3.10/email/iterators.pyrs€ þrFccs8| ¡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Útextccs:| ¡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|r%td| ¡|dnt|d| ¡r>| ¡D] }t|||d|ƒq2dSdS) 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