o
    ûÄOc#
  ã                   @   sp   d dl mZmZmZ d dlmZ d dlmZmZm	Z	m
Z
 g d¢Zdedefdd„Zd	edeeef fd
d„ZdS )é    )ÚHeaderÚdecode_headerÚmake_header)ÚMessage)ÚAnyÚDictÚListÚUnion))zMetadata-VersionF)ÚNameF)ÚVersionF)ZDynamicT)ZPlatformT)zSupported-PlatformT)ZSummaryF)ÚDescriptionF)zDescription-Content-TypeF)ZKeywordsF)z	Home-pageF)zDownload-URLF)ZAuthorF)zAuthor-emailF)Z
MaintainerF)zMaintainer-emailF)ZLicenseF)Z
ClassifierT)zRequires-DistT)zRequires-PythonF)zRequires-ExternalT)zProject-URLT)zProvides-ExtraT)zProvides-DistT)zObsoletes-DistTÚfieldÚreturnc                 C   s   |   ¡  dd¡S )Nú-Ú_)ÚlowerÚreplace)r   © r   ú>D:\Flask\env\lib\site-packages\pip\_internal\metadata\_json.pyÚ	json_name%   s   r   Úmsgc                    s¸   dt ttf dtfdd„‰ i }tD ]>\}}|| vrqt|ƒ}|r-‡ fdd„|  |¡D ƒ}nˆ |  |¡ƒ}|dkrKd|v rGd	d„ | d¡D ƒ}n| ¡ }|||< q|  ¡ }|rZ||d
< |S )z;Convert a Message object into a JSON-compatible dictionary.Úhr   c              	   S   st   t | tƒr6g }t| ƒD ]$\}}|dkr(z	| d¡ d}W n ty'   d}Y nw | ||f¡ qtt|ƒƒS t| ƒS )Nzunknown-8bitzutf-8Úlatin1)Ú
isinstancer   r   ÚdecodeÚUnicodeDecodeErrorÚappendÚstrr   )r   ÚchunksÚbytesÚencodingr   r   r   Úsanitise_header,   s   

þz$msg_to_json.<locals>.sanitise_headerc                    s   g | ]}ˆ |ƒ‘qS r   r   ©Ú.0Úv©r!   r   r   Ú
<listcomp>B   s    ÿzmsg_to_json.<locals>.<listcomp>Úkeywordsú,c                 S   s   g | ]}|  ¡ ‘qS r   )Ústripr"   r   r   r   r&   K   s    Údescription)	r	   r   r   ÚMETADATA_FIELDSr   Úget_allÚgetÚsplitÚget_payload)r   Úresultr   ZmultiÚkeyÚvalueÚpayloadr   r%   r   Úmsg_to_json)   s(   
ÿ
r4   N)Zemail.headerr   r   r   Úemail.messager   Útypingr   r   r   r	   r+   r   r   r4   r   r   r   r   Ú<module>   s   