§ !A?hQ ã ó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 ú