
     f`                     ^    d Z ddlmZ ddlmZmZ  G d de          Z G d de          Zd	S )
zO
requests.structures
~~~~~~~~~~~~~~~~~~~

Data structures that power Requests.
    )OrderedDict   )MappingMutableMappingc                   P    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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                 P    t                      | _        |i } | j        |fi | d S N)r   _storeupdate)selfdatakwargss      V/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/requests/structures.py__init__zCaseInsensitiveDict.__init__(   s7    !mm<DD##F#####    c                 B    ||f| j         |                                <   d S r
   r   lower)r   keyvalues      r   __setitem__zCaseInsensitiveDict.__setitem__.   s"     %(<CIIKK   r   c                 L    | j         |                                         d         S )Nr   r   r   r   s     r   __getitem__zCaseInsensitiveDict.__getitem__3   s    {399;;'**r   c                 :    | j         |                                = d S r
   r   r   s     r   __delitem__zCaseInsensitiveDict.__delitem__6   s    K		$$$r   c                 H    d | j                                         D             S )Nc              3       K   | ]	\  }}|V  
d S r
    ).0casedkeymappedvalues      r   	<genexpr>z/CaseInsensitiveDict.__iter__.<locals>.<genexpr>:   s'      KK2X{KKKKKKr   )r   valuesr   s    r   __iter__zCaseInsensitiveDict.__iter__9   s$    KKdk6H6H6J6JKKKKr   c                 *    t          | j                  S r
   )lenr   r&   s    r   __len__zCaseInsensitiveDict.__len__<   s    4;r   c                 H    d | j                                         D             S )z.Like iteritems(), but with all lowercase keys.c              3   0   K   | ]\  }}||d          fV  dS )r   Nr    )r!   lowerkeykeyvals      r   r$   z2CaseInsensitiveDict.lower_items.<locals>.<genexpr>A   s0      TT*<8V6!9%TTTTTTr   )r   itemsr&   s    r   lower_itemszCaseInsensitiveDict.lower_items?   s$    TT@Q@Q@S@STTTTr   c                     t          |t                    rt          |          }nt          S t	          |                                           t	          |                                          k    S r
   )
isinstancer   r   NotImplementeddictr0   )r   others     r   __eq__zCaseInsensitiveDict.__eq__C   s\    eW%% 	"'..EE!!D$$&&''40A0A0C0C+D+DDDr   c                 N    t          | j                                                  S r
   )r   r   r%   r&   s    r   copyzCaseInsensitiveDict.copyL   s    "4;#5#5#7#7888r   c                 ^    t          t          |                                                     S r
   )strr4   r/   r&   s    r   __repr__zCaseInsensitiveDict.__repr__O   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 0 0
+ + +% % %L L L     U U UE E E9 9 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.Nc                 V    || _         t                                                       d S r
   )namesuperr   )r   rC   	__class__s     r   r   zLookupDict.__init__V   s&    	r   c                     d| j          dS )Nz	<lookup 'z'>)rC   r&   s    r   r;   zLookupDict.__repr__Z   s    (49((((r   c                 8    | j                             |d           S r
   __dict__getr   s     r   r   zLookupDict.__getitem__]   s     }  d+++r   c                 8    | j                             ||          S r
   rH   )r   r   defaults      r   rJ   zLookupDict.getb   s    }  g...r   r
   )	r<   r=   r>   r?   r   r;   r   rJ   __classcell__)rE   s   @r   rA   rA   S   su        ##     ) ) ), , ,
/ / / / / / / /r   rA   N)	r?   collectionsr   compatr   r   r   r4   rA   r    r   r   <module>rP      s     $ # # # # # + + + + + + + +C' C' C' C' C'. C' C' C'L/ / / / / / / / / /r   