U
    ,d	                     @   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__ @/tmp/pip-unpacked-wheel-hk5ne9re/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   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tkr   r   r   	transformS   s
    zMessage.json.<locals>.transform)dictmapr   )r   r7   r   r   r   jsonL   s    zMessage.json)__name__
__module____qualname__setr9   r   r1   emailmessager   r   r   r   r   r   propertyr:   __classcell__r   r   r   r   r      s.   
r   )	functoolswarningsr3   r"   email.messager?   Z_textr   _compatr   partialwarnDeprecationWarningr   r@   r   r   r   r   r   <module>   s   