B
    Mhh	                 @   sp   d dl Z d dlZd dlZd dlZd dlZddlmZ ddlm	Z	 e j
ejdee	ddZG dd	 d	ejjZdS )
    N   )
FoldedCase)pypy_partialzFImplicit None on return values is deprecated and will raise KeyErrors.   )
stacklevelc                   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-PlatformZDynamic)origc                s"   t  | }t|t| |S )N)super__new__varsupdate)clsr
   res)	__class__ L/tmp/pip-install-vv81h98y/importlib-metadata/importlib_metadata/_adapters.pyr   *   s    zMessage.__new__c             O   s   |   | _d S )N)_repair_headers_headers)selfargskwargsr   r   r   __init__/   s    zMessage.__init__c                s
   t   S )N)r   __iter__)r   )r   r   r   r   3   s    zMessage.__iter__c                s   t  |}|dkrt  |S )z
        Warn users that a ``KeyError`` can be expected when a
        mising key is supplied. Ref python/importlib_metadata#371.
        N)r   __getitem___warn)r   itemr   )r   r   r   r   6   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   redentA   s    z'Message._repair_headers.<locals>.redentc                s   g | ]\}}| |fqS r   r   ).0keyr!   )r"   r   r   
<listcomp>G   s    z+Message._repair_headers.<locals>.<listcomp>r   Description)r   _payloadappendget_payload)r   headersr   )r"   r   r   @   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 )NZKeywordsz\s+-_)multiple_use_keysget_allresplitlowerreplace)r$   r!   Ztk)r   r   r   	transformS   s
    zMessage.json.<locals>.transform)dictmapr   )r   r3   r   )r   r   jsonL   s    zMessage.json)__name__
__module____qualname__setr5   r   r-   emailmessager   r   r   r   r   r   propertyr6   __classcell__r   r   )r   r   r      s&   

r   )	functoolswarningsr/   r   email.messager;   Z_textr   _compatr   partialwarnDeprecationWarningr   r<   r   r   r   r   r   <module>   s   