
    Zh                     P    d Z ddlmZ ddlmZmZ  G d de      Z G d de      Zy	)
zO
requests.structures
~~~~~~~~~~~~~~~~~~~

Data structures that power Requests.
    )OrderedDict   )MappingMutableMappingc                   N    e Zd ZdZddZd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zy)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                 P    t               | _        |i } | j                  |fi | y N)r   _storeupdate)selfdatakwargss      b/mounts/lovelace/software/anaconda3/envs/py312/lib/python3.12/site-packages/requests/structures.py__init__zCaseInsensitiveDict.__init__*   s(    !m<DD#F#    c                 B    ||f| j                   |j                         <   y r
   r   lower)r   keyvalues      r   __setitem__zCaseInsensitiveDict.__setitem__0   s     %(<CIIK r   c                 B    | j                   |j                            d   S )Nr   r   r   r   s     r   __getitem__zCaseInsensitiveDict.__getitem__5   s    {{399;'**r   c                 :    | j                   |j                         = y r
   r   r   s     r   __delitem__zCaseInsensitiveDict.__delitem__8   s    KK		$r   c                 D    d | j                   j                         D        S )Nc              3   &   K   | ]	  \  }}|  y wr
    ).0casedkeymappedvalues      r   	<genexpr>z/CaseInsensitiveDict.__iter__.<locals>.<genexpr><   s     K2X{Ks   )r   valuesr   s    r   __iter__zCaseInsensitiveDict.__iter__;   s    Kdkk6H6H6JKKr   c                 ,    t        | j                        S r
   )lenr   r&   s    r   __len__zCaseInsensitiveDict.__len__>   s    4;;r   c                 D    d | j                   j                         D        S )z.Like iteritems(), but with all lowercase keys.c              3   0   K   | ]  \  }}||d    f  yw)r   Nr    )r!   lowerkeykeyvals      r   r$   z2CaseInsensitiveDict.lower_items.<locals>.<genexpr>C   s%      
"6 vay!
s   )r   itemsr&   s    r   lower_itemszCaseInsensitiveDict.lower_itemsA   s#    
 {{  "
 	
r   c                     t        |t              rt        |      }nt        S t	        | j                               t	        |j                               k(  S r
   )
isinstancer   r   NotImplementeddictr0   )r   others     r   __eq__zCaseInsensitiveDict.__eq__I   sC    eW%'.E!!D$$&'40A0A0C+DDDr   c                 H    t        | j                  j                               S r
   )r   r   r%   r&   s    r   copyzCaseInsensitiveDict.copyR   s    "4;;#5#5#788r   c                 F    t        t        | j                                     S r
   )strr4   r/   r&   s    r   __repr__zCaseInsensitiveDict.__repr__U   s    4

%&&r   r
   )__name__
__module____qualname____doc__r   r   r   r   r'   r*   r0   r6   r8   r;   r    r   r   r   r      s;    4$0
+%L 
E9'r   r   c                   8     e Zd ZdZd fd	Zd Zd ZddZ xZS )
LookupDictzDictionary lookup object.c                 8    || _         t        t        |           y r
   )namesuperrA   r   )r   rC   	__class__s     r   r   zLookupDict.__init__\   s    	j$(*r   c                      d| j                   z  S )Nz<lookup '%s'>)rC   r&   s    r   r;   zLookupDict.__repr__`   s     DII..r   c                 :    | j                   j                  |d       S r
   __dict__getr   s     r   r   zLookupDict.__getitem__c   s     }}  d++r   c                 :    | j                   j                  ||      S r
   rH   )r   r   defaults      r   rJ   zLookupDict.geth   s    }}  g..r   r
   )	r<   r=   r>   r?   r   r;   r   rJ   __classcell__)rE   s   @r   rA   rA   Y   s    #+/,
/r   rA   N)	r?   collectionsr   compatr   r   r   r4   rA   r    r   r   <module>rP      s-    $ +G'. G'T/ /r   