U ��.e� �@s<dZddlmZmZmZGdd�de�ZGdd�de�ZdS)zO requests.structures ~~~~~~~~~~~~~~~~~~~ Data structures that power Requests. �)� OrderedDict�Mapping�MutableMappingc@sbeZdZdZddd�Zdd�Zdd�Zd d �Zd d �Zd d�Z dd�Z dd�Z dd�Z dd�Z dS)�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. NcKs&t�|_|dkri}|j|f|�dS�N)r�_store�update)�self�data�kwargs�r �C/usr/lib/python3.8/site-packages/pip/_vendor/requests/structures.py�__init__(szCaseInsensitiveDict.__init__cCs||f|j|��<dSr�r�lower)r �key�valuer r r � __setitem__.szCaseInsensitiveDict.__setitem__cCs|j|��dS)Nrr�r rr r r � __getitem__3szCaseInsensitiveDict.__getitem__cCs|j|��=dSrrrr r r � __delitem__6szCaseInsensitiveDict.__delitem__cCsdd�|j��D�S)Ncss|]\}}|VqdSrr )�.0ZcasedkeyZ mappedvaluer r r � :sz/CaseInsensitiveDict.__iter__..)r�values�r r r r �__iter__9szCaseInsensitiveDict.__iter__cCs t|j�Sr)�lenrrr r r �__len__<szCaseInsensitiveDict.__len__cCsdd�|j��D�S)z.Like iteritems(), but with all lowercase keys.css|]\}}||dfVqdS)rNr )rZlowerkeyZkeyvalr r r rAs�z2CaseInsensitiveDict.lower_items..)r�itemsrr r r � lower_items?s�zCaseInsensitiveDict.lower_itemscCs0t|t�rt|�}ntSt|���t|���kSr)� isinstancerr�NotImplemented�dictr)r �otherr r r �__eq__Gs  zCaseInsensitiveDict.__eq__cCst|j���Sr)rrrrr r r �copyPszCaseInsensitiveDict.copycCstt|����Sr)�strr"rrr r r �__repr__SszCaseInsensitiveDict.__repr__)N)�__name__� __module__� __qualname__�__doc__rrrrrrrr$r%r'r r r r r s  rcs<eZdZdZd �fdd� Zdd�Zdd�Zd d d �Z�ZS) � LookupDictzDictionary lookup object.Ncs||_tt|���dSr)�name�superr,r)r r-�� __class__r r rZszLookupDict.__init__cCs d|jS)Nz )r-rr r r r'^szLookupDict.__repr__cCs|j�|d�Sr��__dict__�getrr r r raszLookupDict.__getitem__cCs|j�||�Srr1)r r�defaultr r r r3fszLookupDict.get)N)N) r(r)r*r+rr'rr3� __classcell__r r r/r r,Ws r,N)r+�compatrrrrr"r,r r r r �sJ