o
    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   O/var/www/html/venv/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   email.headerr   r   r   email.messager   typingr   r   r4   r   r>   r   r   r   r   <module>   s   
 