
    nbid"                    v   d Z ddlmZ ddlZddlZddlmZmZ 	 ddlm	Z	 e	sddl
mZ nddlmZ n'# e$ r ddlmZ  ed	
          d!d            ZY nw xY wddlmZ d"dZ G d de          Z G d de          Z G d dej                  Z G d de          Z G d de          Z G d d           ZdS )#zO
requests.structures
~~~~~~~~~~~~~~~~~~~

Data structures that power Requests.
    )annotationsN)MappingMutableMapping   )HAS_LEGACY_URLLIB3)_lower_wrapper)	lru_cache@   )maxsizestringstrreturnc                *    |                                  S )backport)lower)r   s    c/var/www/html/mdtn/previsions/meteo_cartes/venv/lib/python3.11/site-packages/niquests/structures.pyr   r      s     ||~~    )InvalidHeaderkey
typing.Anyvaluetuple[bytes | str, bytes | str]c                x   t          | t          t          f          r t          |t          t          f          r| |fS t          |t          t          f          rt          |          }t          | t          t          f          du s |0t          |t          t          f          du rt          d|            | |fS )NFzIllegal header name or value )
isinstancebytesr   floatintr   )r   r   s     r   _ensure_str_or_bytesr   #   s    #s|$$ EE3<)H)H Ez	
   E

#s|$$--%2C
SX[`beZfHgHgkpHpHpACAABBB:r   c                  r    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 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.
    Nr   Nonec                b   i | _         |i }t          |d          r |j                                        | _         d S t	          |t
                    r |j                                         | _         d S |s|r:t          |d          r | j        |fi | d S  | j        d |D             fi | d S d S )Ngetlistitemsc                    i | ]\  }}||	S  r&   ).0kvs      r   
<dictcomp>z0CaseInsensitiveDict.__init__.<locals>.<dictcomp>^   s    ///$!QA///r   )_storehasattr
_containercopyr   r    update)selfdatakwargss      r   __init__zCaseInsensitiveDict.__init__N   s    LN<D 4## 	/..00DKKK122 
	+**,,DKKK v 4)) DK///////DK//$///      	 r   r   str | bytesr   c                P    t          ||          | j        t          |          <   d S N)r   r+   r   r0   r   r   s      r   __setitem__zCaseInsensitiveDict.__setitem__b   s)     ,@U+K+KN3''(((r   bytes | strc                   | j         t          |                   }t          |          dk    r|d         S 	 t          |d         t                    rd                    |dd                    nd                    |dd                    S # t          $ r* d                    d |dd          D                       cY S w xY w)N   r   , s   , c              3  l   K   | ]/}t          |t                    r|                                n|V  0d S r6   r   r   decoder'   r)   s     r   	<genexpr>z2CaseInsensitiveDict.__getitem__.<locals>.<genexpr>o   s=      VV1:a+?+?FQXXZZZQVVVVVVr   )r+   r   lenr   r   join	TypeError)r0   r   es      r   __getitem__zCaseInsensitiveDict.__getitem__g   s    Ks++,q66Q;;Q4K	W'1!A$'<'<S499QqrrU###%**QqrrUBSBSS 	W 	W 	W99VVPQRSRTRTPUVVVVVVVV	Ws   AB 1C ?C c                0    | j         t          |          = d S r6   )r+   r   r0   r   s     r   __delitem__zCaseInsensitiveDict.__delitem__q   s    Ks++,,,r   typing.Iterator[str | bytes]c              #  H   K   | j         D ]}| j         |         d         V  d S )Nr   )r+   )r0   key_cis     r   __iter__zCaseInsensitiveDict.__iter__t   s<      k 	) 	)F+f%a(((((	) 	)r   r   c                *    t          | j                  S r6   )rB   r+   r0   s    r   __len__zCaseInsensitiveDict.__len__x   s    4;r   0typing.Iterator[tuple[bytes | str, bytes | str]]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   rA   z2CaseInsensitiveDict.lower_items.<locals>.<genexpr>}   s0      TT*<8V6!9%TTTTTTr   )r+   r$   rO   s    r   lower_itemszCaseInsensitiveDict.lower_items{   s$    TT@Q@Q@S@STTTTr   c           	   #  T  K   | j         D ]}| j         |         }t          |          dk    rt          |          V  4	 |d         d                    |dd                    fV  ]# t          $ r4 |d         d                    d |dd          D                       fV  Y w xY wd S )Nr;   r   r<   r   c              3  l   K   | ]/}t          |t                    r|                                n|V  0d S r6   r>   r@   s     r   rA   z,CaseInsensitiveDict.items.<locals>.<genexpr>   s>      ![![PQ
1e0D0D"K!((***!![![![![![![r   )r+   rB   tuplerC   rD   )r0   r(   ts      r   r$   zCaseInsensitiveDict.items   s       	 	AAA1vv{{AhhA$		!ABB% 0 000000    !		![![UVWXWYWYUZ![![![[[     	 	s   'A'';B%$B%boolc                    t          |t                    rt          |          }nt          S t	          |                                           t	          |                                          k    S r6   )r   r   r    NotImplementeddictrV   )r0   others     r   __eq__zCaseInsensitiveDict.__eq__   s\    eW%% 	"'..EE!!D$$&&''40A0A0C0C+D+DDDr   c                     t          |           S r6   )r    rO   s    r   r.   zCaseInsensitiveDict.copy   s    "4(((r   r   c                ^    t          t          |                                                     S r6   )r   r^   r$   rO   s    r   __repr__zCaseInsensitiveDict.__repr__   s     4

%%&&&r   itemc                .    t          |          | j        v S r6   )r   r+   r0   rd   s     r   __contains__z CaseInsensitiveDict.__contains__   s    d##t{22r   r6   r   r!   )r   r4   r   r4   r   r!   )r   r9   )r   rJ   r   r   )r   rQ   )r   r[   )r   r    )r   r   )rd   r   r   r[   )__name__
__module____qualname____doc__r3   r8   rF   rI   rM   rP   rV   r$   r`   r.   rc   rg   r&   r   r   r    r    3   s        4    (L L L L
W W W W- - - -) ) ) )       U U U U  E E E E) ) ) )' ' ' '3 3 3 3 3 3r   r    c                  :     e Zd ZdZd	d
 fdZd Zd Zd	dZ xZS )
LookupDictzDictionary lookup object.Nr   r!   c                V    || _         t                                                       d S r6   )namesuperr3   )r0   rq   	__class__s     r   r3   zLookupDict.__init__   s&     $	r   c                    d| j          dS )Nz	<lookup 'z'>)rq   rO   s    r   rc   zLookupDict.__repr__   s    (49((((r   c                8    | j                             |d           S r6   __dict__getrH   s     r   rF   zLookupDict.__getitem__   s    }  d+++r   c                8    | j                             ||          S r6   rv   )r0   r   defaults      r   rx   zLookupDict.get   s    }  g...r   r6   rh   )	rj   rk   rl   rm   r3   rc   rF   rx   __classcell__rs   s   @r   ro   ro      sz        ##      ) ) ), , ,/ / / / / / / /r   ro   c                  J    e Zd ZddZddZdd	Zdd
ZddZddZd Z	d Z
dS )SharableLimitedDictmax_size
int | Noner   r!   c                R    i | _         || _        t          j                    | _        d S r6   )r+   	_max_size	threadingRLock_lock)r0   r   s     r   r3   zSharableLimitedDict.__init__   s#    EG!2;/2C2C


r   dict[str, typing.Any]c                     | j         | j        dS )Nr+   r   r   rO   s    r   __getstate__z SharableLimitedDict.__getstate__   s    +DNCCCr   statec                j    t          j                    | _        |d         | _        |d         | _        d S Nr+   r   )r   r   r   r+   r   r0   r   s     r   __setstate__z SharableLimitedDict.__setstate__   s,    _&&
Ho{+r   c                V    | j         5  | j        |= d d d            d S # 1 swxY w Y   d S r6   r   r+   )r0   _SharableLimitedDict__keys     r   rI   zSharableLimitedDict.__delitem__   sx    Z 	# 	#E"	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   	""r   c                l    | j         5  t          | j                  cd d d            S # 1 swxY w Y   d S r6   )r   rB   r+   rO   s    r   rP   zSharableLimitedDict.__len__   s{    Z 	$ 	$t{##	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$   )--typing.Iteratorc                l    | j         5  t          | j                  cd d d            S # 1 swxY w Y   d S r6   )r   iterr+   rO   s    r   rM   zSharableLimitedDict.__iter__   s{    Z 	% 	%$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%r   c                    | j         5  | j        r6t          | j                  | j        k    r| j                                         || j        |<   d d d            d S # 1 swxY w Y   d S r6   )r   r   rB   r+   popitemr7   s      r   r8   zSharableLimitedDict.__setitem__   s    Z 	% 	%~ &#dk"2"2dn"D"D##%%%$DK		% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   AAA!$A!c                ^    | j         5  | j        |         cd d d            S # 1 swxY w Y   d S r6   r   rf   s     r   rF   zSharableLimitedDict.__getitem__   sx    Z 	% 	%;t$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   "&&Nr   r   r   r!   )r   r   r   r   r   r!   rh   ri   )r   r   )rj   rk   rl   r3   r   r   rI   rP   rM   r8   rF   r&   r   r   r~   r~      s        D D D D
D D D D, , , ,
# # # #$ $ $ $% % % %% % %% % % % %r   r~   c                  :     e Zd Zd fdZdddZdddZd Z xZS )QuicSharedCacher   r   r   r!   c                X    t                                          |           i | _        d S r6   )rr   r3   _exclusion_storer0   r   rs   s     r   r3   zQuicSharedCache.__init__   s)    """OQr   Nhostr   portalt_portc                (    |d}||}||f| ||f<   d S Ni  r&   r0   r   r   r   s       r   
add_domainzQuicSharedCache.add_domain   s0    <DH"H-dD\r   c                2    |d}||}||f| j         ||f<   d S r   )r   r   s       r   exclude_domainzQuicSharedCache.exclude_domain   s3    <DH/3X.>tTl+++r   c                   | j         5  || j        v r	 d d d            d S | j        r6t          | j                  | j        k    r| j                                         || j        |<   d d d            d S # 1 swxY w Y   d S r6   )r   r   r   rB   r+   r   r7   s      r   r8   zQuicSharedCache.__setitem__   s    Z 	% 	%d+++	% 	% 	% 	% 	% 	% 	% 	% ~ &#dk"2"2dn"D"D##%%%$DK	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   A4AA44A8;A8r   )NN)r   r   r   r   r   r   r   r!   )r   r   r   r   r   r   )rj   rk   rl   r3   r   r   r8   r{   r|   s   @r   r   r      s        R R R R R R. . . . .? ? ? ? ?% % % % % % %r   r   c                  (     e Zd Zd	 fdZd
dZ xZS )AsyncQuicSharedCacher   r   r   r!   c                p    t                                          |           t                      | _        d S r6   )rr   r3   	DummyLockr   r   s     r   r3   zAsyncQuicSharedCache.__init__   s*    """[[


r   r   r   c                `    t                      | _        |d         | _        |d         | _        d S r   )r   r   r+   r   r   s     r   r   z!AsyncQuicSharedCache.__setstate__   s(    [[
Ho{+r   r   r   )rj   rk   rl   r3   r   r{   r|   s   @r   r   r      sQ        ! ! ! ! ! !, , , , , , , ,r   r   c                  &    e Zd Zd Zd Zd Zd ZdS )r   c                    | S r6   r&   rO   s    r   	__enter__zDummyLock.__enter__  s    r   c                    d S r6   r&   )r0   exc_typeexc_valexc_tbs       r   __exit__zDummyLock.__exit__      r   c                    d S r6   r&   rO   s    r   acquirezDummyLock.acquire  r   r   c                    d S r6   r&   rO   s    r   releasezDummyLock.release  r   r   N)rj   rk   rl   r   r   r   r   r&   r   r   r   r     sP                  r   r   )r   r   r   r   )r   r   r   r   r   r   )rm   
__future__r   r   typingcollections.abcr   r   _compatr   urllib3._collectionsr   urllib3_future._collectionsImportError	functoolsr	   
exceptionsr   r   r    r^   ro   r~   r   r   r   r&   r   r   <module>r      sB    # " " " " "      3 3 3 3 3 3 3 3++++++ 
7777777	
 	
 	
 	
 	
 	
    ######Yr     	 & % % % % %    j3 j3 j3 j3 j3. j3 j3 j3Z/ / / / / / / /$#% #% #% #% #%&/ #% #% #%L% % % % %) % % %<, , , , ,? , , ,         s   0 !AA