U
    ?h	                     @   s<   d dl Zd dlZd dlZddlmZ G dd dejjZdS )    N   )
FoldedCasec                       s|   e Zd Zeeeddddddddd	d
g
Zejj	d fddZ
dd Z fddZ fddZdd Zedd Z  ZS )Message
ClassifierzObsoletes-DistPlatformzProject-URLzProvides-DistzProvides-ExtrazRequires-DistzRequires-ExternalzSupported-PlatformDynamic)origc                    s"   t  | }t|t| |S N)super__new__varsupdate)clsr   res	__class__ N/var/www/html/venv/lib/python3.8/site-packages/importlib_metadata/_adapters.pyr      s    zMessage.__new__c                 O   s   |   | _d S r	   )_repair_headers_headers)selfargskwargsr   r   r   __init__#   s    zMessage.__init__c                    s
   t   S r	   )r
   __iter__r   r   r   r   r   '   s    zMessage.__iter__c                    s    t  |}|dkrt||S )a"  
        Override parent behavior to typical dict behavior.

        ``email.message.Message`` will emit None values for missing
        keys. Typical mappings, including this ``Message``, will raise
        a key error for missing keys.

        Ref python/importlib_metadata#371.
        N)r
   __getitem__KeyError)r   itemr   r   r   r   r   *   s    
zMessage.__getitem__c                    s>   dd   fddt | d D }| jr:|d|  f |S )Nc                 S   s   | rd| kr| S t d|  S )zCorrect for RFC822 indentation
z        )textwrapdedent)valuer   r   r   redent:   s    z'Message._repair_headers.<locals>.redentc                    s   g | ]\}}| |fqS r   r   ).0keyr"   r#   r   r   
<listcomp>@   s     z+Message._repair_headers.<locals>.<listcomp>r   Description)r   _payloadappendget_payload)r   headersr   r&   r   r   9   s
    zMessage._repair_headersc                    s     fdd}t t|tt S )z[
        Convert PackageMetadata to a JSON-compatible format
        per PEP 0566.
        c                    sH   |  j kr | n |  }| dkr0td|}|  dd}||fS )NKeywordsz\s+-_)multiple_use_keysget_allresplitlowerreplace)r%   r"   Ztkr   r   r   	transformL   s
    zMessage.json.<locals>.transform)dictmapr   )r   r6   r   r   r   jsonE   s    zMessage.json)__name__
__module____qualname__setr8   r   r0   emailmessager   r   r   r   r   r   propertyr9   __classcell__r   r   r   r   r      s.   r   )email.messager>   r2   r    _textr   r?   r   r   r   r   r   <module>   s   