Y @sdZddlmZyedZWnek r>dZYnXes|ddlmZddZdd Z d d Z n4dd lm Z d dZdd Z dd Z dS)zTTools for reading and writing PKG-INFO / METADATA without caring about the encoding.)ParserFT) GeneratorcCstj|S)N)rparsestr)bytestrr./tmp/pip-build-3puug3g5/wheel/wheel/pkginfo.pyread_pkg_info_bytessrc Cs/t|d}tj|}WdQRX|S)Nr)openrparse)pathheadersmessagerrr read_pkg_infosrc Cs6t|d }t|ddj|WdQRXdS)Nw maxheaderlenr)r rflatten)r rmetadatarrrwrite_pkg_infosr)BytesGeneratorcCs.|jdddd}tj|}|S)Nencodingasciierrorssurrogateescape)decoderr)rr rrrrrsc Cs;t|ddddd}tj|}WdQRX|S)Nr rrrr)r rr )r r rrrrr"s   c Cs6t|d }t|ddj|WdQRXdS)Nwbrr)r rr)r routrrrr)sN) __doc__ email.parserrunicodeZ_PY3 NameErroremail.generatorrrrrrrrrrs