B
    òñºc#
  ã               @   sš   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
 dddddd	d
ddddddddddddddddddgZeedœdd„Zeeeef d œd!d"„Zd#S )$é    )ÚHeaderÚdecode_headerÚmake_header)ÚMessage)ÚAnyÚDictÚListÚUnion)zMetadata-VersionF)ÚNameF)ÚVersionF)ZDynamicT)ÚPlatformT)zSupported-PlatformT)ZSummaryF)Z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)Ú
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   úM/var/www/cleansys/lib/python3.7/site-packages/pip/_internal/metadata/_json.pyÚ	json_name%   s    r   )Úmsgr   c                sº   t ttf tdœdd„‰ i }x„tD ]|\}}|| kr4q"t|ƒ}|rZ‡ fdd„|  |¡D ƒ}n<ˆ |  |¡ƒ}|dkr–d|krŽdd„ | d¡D ƒ}n| ¡ }|||< q"W |  ¡ }|r¶||d	< |S )
z;Convert a Message object into a JSON-compatible dictionary.)Úhr   c          	   S   sz   t | tƒrrg }xVt| ƒD ]J\}}|dkrTy| d¡ d}W n tk
rR   d}Y nX | ||f¡ qW 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>C   s    zmsg_to_json.<locals>.<listcomp>Úkeywordsú,c             S   s   g | ]}|  ¡ ‘qS r   )Ústrip)r#   r$   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$    r3   N)Zemail.headerr   r   r   Úemail.messager   Útypingr   r   r   r	   r*   r   r   r3   r   r   r   r   Ú<module>   s:   