
) X                 @   sU   d  Z  d d l Z d d l m Z Gd d   d e j  Z Gd d   d e  Z d S)	zO
requests.structures
~~~~~~~~~~~~~~~~~~~

Data structures that power Requests.
    N   )OrderedDictc               @   s   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
    ``collections.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   s5   t    |  _ | d  k r! i  } n  |  j | |  d  S)N)r   _storeupdate)selfdatakwargs r
   C/home/ubuntu/projects/ifolica/build/requests/requests/structures.py__init__*   s    	zCaseInsensitiveDict.__init__c             C   s   | | f |  j  | j   <d  S)N)r   lower)r   keyvaluer
   r
   r   __setitem__0   s    zCaseInsensitiveDict.__setitem__c             C   s   |  j  | j   d S)Nr   )r   r   )r   r   r
   r
   r   __getitem__5   s    zCaseInsensitiveDict.__getitem__c             C   s   |  j  | j   =d  S)N)r   r   )r   r   r
   r
   r   __delitem__8   s    zCaseInsensitiveDict.__delitem__c             C   s   d d   |  j  j   D S)Nc             s   s   |  ] \ } } | Vq d  S)Nr
   ).0casedkeymappedvaluer
   r
   r   	<genexpr><   s    z/CaseInsensitiveDict.__iter__.<locals>.<genexpr>)r   values)r   r
   r
   r   __iter__;   s    zCaseInsensitiveDict.__iter__c             C   s   t  |  j  S)N)lenr   )r   r
   r
   r   __len__>   s    zCaseInsensitiveDict.__len__c             C   s   d d   |  j  j   D S)z.Like iteritems(), but with all lowercase keys.c             s   s%   |  ] \ } } | | d  f Vq d S)r   Nr
   )r   lowerkeykeyvalr
   r
   r   r   D   s   z2CaseInsensitiveDict.lower_items.<locals>.<genexpr>)r   items)r   r
   r
   r   lower_itemsA   s    	zCaseInsensitiveDict.lower_itemsc             C   sG   t  | t j  r! t |  } n t St |  j    t | j    k S)N)
isinstancecollectionsMappingr   NotImplementeddictr   )r   otherr
   r
   r   __eq__I   s    zCaseInsensitiveDict.__eq__c             C   s   t  |  j j    S)N)r   r   r   )r   r
   r
   r   copyR   s    zCaseInsensitiveDict.copyc             C   s   t  t |  j     S)N)strr#   r   )r   r
   r
   r   __repr__U   s    zCaseInsensitiveDict.__repr__)__name__
__module____qualname____doc__r   r   r   r   r   r   r   r%   r&   r(   r
   r
   r
   r   r      s   	r   c                   sR   e  Z d  Z d Z d   f d d  Z d d   Z d d   Z d d	 d
  Z   S)
LookupDictzDictionary lookup object.Nc                s    | |  _  t t |   j   d  S)N)namesuperr-   r   )r   r.   )	__class__r
   r   r   \   s    	zLookupDict.__init__c             C   s   d |  j  S)Nz<lookup '%s'>)r.   )r   r
   r
   r   r(   `   s    zLookupDict.__repr__c             C   s   |  j  j | d   S)N)__dict__get)r   r   r
   r
   r   r   c   s    zLookupDict.__getitem__c             C   s   |  j  j | |  S)N)r1   r2   )r   r   defaultr
   r
   r   r2   h   s    zLookupDict.get)r)   r*   r+   r,   r   r(   r   r2   r
   r
   )r0   r   r-   Y   s
   r-   )r,   r    compatr   MutableMappingr   r#   r-   r
   r
   r
   r   <module>   s   J