a
    ǏPfC
                     @   sl   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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)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)
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   ]/var/www/html/python-backend/venv/lib/python3.9/site-packages/pip/_internal/metadata/_json.py	json_name%   s    r   )msgr   c                    s   t ttf tddd i }tD ]|\}}|| vr2q t|}|rX fdd| |D }n< | |}|dkrd|v rdd |dD }n| }|||< q |  }|r||d	< |S )
z;Convert a Message object into a JSON-compatible dictionary.)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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       description)	r	   r   r%   METADATA_FIELDSr   get_allgetsplitget_payload)r   resultr   multikeyvaluepayloadr   r-   r   msg_to_json)   s(    

r>   N)Zemail.headerr   r   r   email.messager   typingr   r   r   r	   r4   r%   r   r>   r   r   r   r   <module>   s
   