U
    cUh`                     @   sD   d Z ddlmZ ddlmZmZ G dd deZG dd deZd	S )
zO
requests.structures
~~~~~~~~~~~~~~~~~~~

Data structures that power Requests.
    )OrderedDict   )MappingMutableMappingc                   @   sb   e Zd ZdZdddZdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd ZdS )CaseInsensitiveDicta  A case-insensitive ``dict``-like object.

    Implements all methods and operations of
    ``MutableMapping`` as well as dict's ``copy``. Also
    provides ``lower_items``.

    All keys are expected to be strings. The structure remembers the
    case of the last key to be set, and ``iter(instance)``,
    ``keys()``, ``items()``, ``iterkeys()``, and ``iteritems()``
    will contain case-sensitive keys. However, querying and contains
    testing is case insensitive::

        cid = CaseInsensitiveDict()
        cid['Accept'] = 'application/json'
        cid['aCCEPT'] == 'application/json'  # True
        list(cid) == ['Accept']  # True

    For example, ``headers['content-encoding']`` will return the
    value of a ``'Content-Encoding'`` response header, regardless
    of how the header name was originally stored.

    If the constructor, ``.update``, or equality comparison
    operations are given keys that have equal ``.lower()``s, the
    behavior is undefined.
    Nc                 K   s&   t  | _|d kri }| j|f| d S N)r   _storeupdate)selfdatakwargs r   _/opt/bot/vods_filmes/script/venv/lib/python3.8/site-packages/pip/_vendor/requests/structures.py__init__(   s    zCaseInsensitiveDict.__init__c                 C   s   ||f| j | < d S r   r   lower)r
   keyvaluer   r   r   __setitem__.   s    zCaseInsensitiveDict.__setitem__c                 C   s   | j |  d S )Nr   r   r
   r   r   r   r   __getitem__3   s    zCaseInsensitiveDict.__getitem__c                 C   s   | j | = d S r   r   r   r   r   r   __delitem__6   s    zCaseInsensitiveDict.__delitem__c                 C   s   dd | j  D S )Nc                 s   s   | ]\}}|V  qd S r   r   ).0ZcasedkeyZmappedvaluer   r   r   	<genexpr>:   s     z/CaseInsensitiveDict.__iter__.<locals>.<genexpr>)r   valuesr
   r   r   r   __iter__9   s    zCaseInsensitiveDict.__iter__c                 C   s
   t | jS r   )lenr   r   r   r   r   __len__<   s    zCaseInsensitiveDict.__len__c                 C   s   dd | j  D S )z.Like iteritems(), but with all lowercase keys.c                 s   s   | ]\}}||d  fV  qdS )r   Nr   )r   ZlowerkeyZkeyvalr   r   r   r   A   s     z2CaseInsensitiveDict.lower_items.<locals>.<genexpr>)r   itemsr   r   r   r   lower_items?   s    zCaseInsensitiveDict.lower_itemsc                 C   s0   t |trt|}ntS t|  t| kS r   )
isinstancer   r   NotImplementeddictr    )r
   otherr   r   r   __eq__C   s    

zCaseInsensitiveDict.__eq__c                 C   s   t | j S r   )r   r   r   r   r   r   r   copyL   s    zCaseInsensitiveDict.copyc                 C   s   t t|  S r   )strr#   r   r   r   r   r   __repr__O   s    zCaseInsensitiveDict.__repr__)N)__name__
__module____qualname____doc__r   r   r   r   r   r   r    r%   r&   r(   r   r   r   r   r      s   
	r   c                       s<   e Zd ZdZd fdd	Zdd Zdd Zdd	d
Z  ZS )
LookupDictzDictionary lookup object.Nc                    s   || _ t   d S r   )namesuperr   )r
   r.   	__class__r   r   r   V   s    zLookupDict.__init__c                 C   s   d| j  dS )Nz	<lookup 'z'>)r.   r   r   r   r   r(   Z   s    zLookupDict.__repr__c                 C   s   | j |d S r   __dict__getr   r   r   r   r   ]   s    zLookupDict.__getitem__c                 C   s   | j ||S r   r2   )r
   r   defaultr   r   r   r4   b   s    zLookupDict.get)N)N)	r)   r*   r+   r,   r   r(   r   r4   __classcell__r   r   r0   r   r-   S   s
   r-   N)	r,   collectionsr   compatr   r   r   r#   r-   r   r   r   r   <module>   s   F