o
    ¨ZŽh—
  ã                   @  s\   d dl mZ d dlmZmZmZ d dlmZ d dlm	Z	m
Z
 g d¢Zdd	d
„Zddd„ZdS )é    )Úannotations)ÚHeaderÚdecode_headerÚmake_header)ÚMessage)ÚAnyÚcast))zMetadata-VersionF)ÚNameF)ÚVersionF)ÚDynamicT)ÚPlatformT)zSupported-PlatformT)ÚSummaryF)ÚDescriptionF)zDescription-Content-TypeF)ÚKeywordsF)z	Home-pageF)zDownload-URLF)ÚAuthorF)zAuthor-emailF)Ú
MaintainerF)zMaintainer-emailF)ÚLicenseF)zLicense-ExpressionF)zLicense-FileT)Ú
ClassifierT)zRequires-DistT)zRequires-PythonF)zRequires-ExternalT)zProject-URLT)zProvides-ExtraT)zProvides-DistT)zObsoletes-DistTÚfieldÚstrÚreturnc                 C  s   |   ¡  dd¡S )Nú-Ú_)ÚlowerÚreplace)r   © r   úK/var/www/auris/lib/python3.10/site-packages/pip/_internal/metadata/_json.pyÚ	json_name(   s   r   Úmsgr   údict[str, Any]c                   s®   ddd„‰ i }t D ]>\}}|| vrq	t|ƒ}|r%‡ fdd„|  |¡D ƒ}nˆ |  |¡ƒ}|d	krCd
|v r?dd„ | d
¡D ƒ}n| ¡ }|||< q	tt|  ¡ ƒ}|rU||d< |S )z;Convert a Message object into a JSON-compatible dictionary.ÚhúHeader | strr   r   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Úappendr   r   )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>E   s    ÿzmsg_to_json.<locals>.<listcomp>Úkeywordsú,c                 S  s   g | ]}|  ¡ ‘qS r   )Ústripr+   r   r   r   r/   N   s    ÚdescriptionN)r    r!   r   r   )ÚMETADATA_FIELDSr   Úget_allÚgetÚsplitr   r   Úget_payload)r   Úresultr   ÚmultiÚkeyÚvalueÚpayloadr   r.   r   Úmsg_to_json,   s(   

ÿ
r>   N)r   r   r   r   )r   r   r   r   )Ú
__future__r   Zemail.headerr   r   r   Úemail.messager   Útypingr   r   r4   r   r>   r   r   r   r   Ú<module>   s   
 