a
    sÀh—
  ã                   @  sh   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œdd	„Zd
ddœdd„ZdS )é    )Úannotations)ÚHeaderÚdecode_headerÚmake_header)ÚMessage)ÚAnyÚcast))zMetadata-VersionF)ÚNameF)ÚVersionF)ZDynamicT)Ú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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Ústr)ÚfieldÚreturnc                 C  s   |   ¡  dd¡S )Nú-Ú_)ÚlowerÚreplace)r   © r   úX/var/www/html/assistant/venv/lib/python3.9/site-packages/pip/_internal/metadata/_json.pyÚ	json_name(   s    r   r   zdict[str, Any])Úmsgr   c                   s´   dddœdd„‰ i }t D ]|\}}|| vr*qt|ƒ}|rP‡ fdd„|  |¡D ƒ}n<ˆ |  |¡ƒ}|dkrŒd	|v r„d
d„ | d	¡D ƒ}n| ¡ }|||< qtt|  ¡ ƒ}|r°||d< |S )z;Convert a Message object into a JSON-compatible dictionary.zHeader | strr   )Úhr   c              	   S  st   t | tƒrlg }t| ƒD ]H\}}|dkrPz| d¡ d}W n tyN   d}Y n0 | ||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   ó    Údescription)ÚMETADATA_FIELDSr   Úget_allÚgetÚsplitr   r   Úget_payload)r   Úresultr   ZmultiÚkeyÚvalueÚpayloadr   r&   r   Úmsg_to_json,   s(    
ÿ
r6   N)Ú
__future__r   Zemail.headerr   r   r   Úemail.messager   Útypingr   r   r-   r   r6   r   r   r   r   Ú<module>   s    