
    F2j)                    B   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 ej        d          Zej        r!ddlmZ  edd          Z edd          Zn  ej        d          Z ej        d          Z G d deej        eef                   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    [/home/thesage/.hermes/hermes-agent/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   _T)TypeVar_KTzstr | bytesdefault_VTc                  
    e Zd ZdZd6d7dZd8d
Zd9dZej        d:d            Z	ej        d;d            Z	d6d< fdZ	d7dZ
d=dZd>dZd?dZd?dZd@dZdAdZdBd ZdCd"Zej        rej        d9d#            Zej        dDd$            Zej        dEd&            Zej        d:d'            Zej        dDd(            ZdFd*ZdGd,ZdHd.Zej        dId2            Zej        dJd4            Zej        dKd5            Z xZS  xZS )L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                n   i | _         ||sd S |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>k   s    +++daQ+++r   )_storehasattr
_containercopyr   r&   update)selfdatakwargss      r   __init__zCaseInsensitiveDict.__init__Z   s   LN<<F<D 4## 	/..00DKKK122 		+**,,DKKK 	V 	tW%% D++F+++++++d+++     		 	r   r   r!   r   r$   c                P    t          ||          | j        t          |          <   d S N)r   r1   r   r6   r   r   s      r   __setitem__zCaseInsensitiveDict.__setitem__o   s)     ,@U+K+KN3''(((r   c                   | 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 r;   r   r   decoder-   r/   s     r   	<genexpr>z2CaseInsensitiveDict.__getitem__.<locals>.<genexpr>|   s=      VV1:a+?+?FQXXZZZQVVVVVVr   )r1   r   lenr   r   join	TypeError)r6   r   es      r   __getitem__zCaseInsensitiveDict.__getitem__t   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 
_VT | Nonec                    d S r;   r,   r6   r   s     r   getzCaseInsensitiveDict.get~   s    +.3r   r#   _VT | _Tc                    d S r;   r,   r6   r   r#   s      r   rN   zCaseInsensitiveDict.get   s    <?Cr   _VT | _T | Nonec                J    t                                          ||          S )Nr"   )superrN   )r6   r   r#   	__class__s      r   rN   zCaseInsensitiveDict.get   s    ww{{3{000r   c                0    | j         t          |          = d S r;   )r1   r   rM   s     r   __delitem__zCaseInsensitiveDict.__delitem__   s    Ks++,,,r   typing.Iterator[_KT]c              #  H   K   | j         D ]}| j         |         d         V  d S )Nr   )r1   )r6   key_cis     r   __iter__zCaseInsensitiveDict.__iter__   s<      k 	) 	)F+f%a(((((	) 	)r   r   c                *    t          | j                  S r;   )rF   r1   r6   s    r   __len__zCaseInsensitiveDict.__len__   s    4;r    typing.Iterator[tuple[_KT, _VT]]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   rE   z2CaseInsensitiveDict.lower_items.<locals>.<genexpr>   s0      TT*<8V6!9%TTTTTTr   )r1   r*   r]   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 r;   rB   rD   s     r   rE   z,CaseInsensitiveDict.items.<locals>.<genexpr>   s>      ![![PQ
1e0D0D"K!((***!![![![![![![r   )r1   rF   tuplerG   rH   )r6   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 r;   )r   r   r&   NotImplementeddictrd   )r6   others     r   __eq__zCaseInsensitiveDict.__eq__   s\    eW%% 	"'..EE!!D$$&&''40A0A0C0C+D+DDDr   CaseInsensitiveDict[_KT, _VT]c                     t          |           S r;   )r&   r]   s    r   r4   zCaseInsensitiveDict.copy   s    "4(((r   r   c                ^    t          t          |                                                     S r;   )r   rl   r*   r]   s    r   __repr__zCaseInsensitiveDict.__repr__   s     4

%%&&&r   itemc                .    t          |          | j        v S r;   )r   r1   r6   rs   s     r   __contains__z CaseInsensitiveDict.__contains__   s    d##t{22r   c                    d S r;   r,   rM   s     r   popzCaseInsensitiveDict.pop   s    (+r   c                    d S r;   r,   rQ   s      r   rx   zCaseInsensitiveDict.pop       69cr   r   c                    d S r;   r,   rQ   s      r   rx   zCaseInsensitiveDict.pop   s    :=#r   c                    d S r;   r,   rM   s     r   
setdefaultzCaseInsensitiveDict.setdefault   rz   r   c                    d S r;   r,   rQ   s      r   r}   zCaseInsensitiveDict.setdefault   s    =@Sr   tuple[_KT, _VT]c                    d S r;   r,   r]   s    r   popitemzCaseInsensitiveDict.popitem         r   typing.KeysView[_KT]c                    d S r;   r,   r]   s    r   keyszCaseInsensitiveDict.keys   r   r   typing.ValuesView[_VT]c                    d S r;   r,   r]   s    r   valueszCaseInsensitiveDict.values   r   r   mtyping.Mapping[_KT, _VT]r8   c                    d S r;   r,   r6   r   r8   s      r   r5   zCaseInsensitiveDict.update   s    NQcr    typing.Iterable[tuple[_KT, _VT]]c                    d S r;   r,   r   s      r   r5   zCaseInsensitiveDict.update   s    VYVYr   c                    d S r;   r,   )r6   r8   s     r   r5   zCaseInsensitiveDict.update   s    14r   r;   r   r'   )r   r!   r   r$   r   r'   )r   r!   r   r$   )r   r!   r   rK   )r   r!   r#   rO   r   rO   )r   r!   r#   rR   r   rR   )r   rX   r   r   )r   r_   )r   ri   )r   ro   )r   r   )rs   r!   r   ri   )r   r!   r#   r$   r   r$   )r   r!   r#   r   r   rO   )r   r   )r   r   )r   r   )r   r   r8   r$   r   r'   )r   r   r8   r$   r   r'   )r8   r$   r   r'   )__name__
__module____qualname____doc__r9   r=   rJ   typingoverloadrN   rW   r[   r^   rd   r*   rn   r4   rr   rv   TYPE_CHECKINGrx   r}   r   r   r   r5   __classcell__rU   s   @r   r&   r&   ?   s        4    *L L L L
W W W W _... _._??? _?1 1 1 1 1 1 1- - - -) ) ) )       U U U U   E E E E) ) ) )' ' ' '3 3 3 3  5	+++ 
+	999 
9	=== 
=	999 
9	@@@ 
@111133337777	QQQ 
Q	YYY 
Y	444 
44444/5 5 5 5r   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 r;   )namerT   r9   )r6   r   rU   s     r   r9   zLookupDict.__init__   s&     $	r   c                    d| j          dS )Nz	<lookup 'z'>)r   r]   s    r   rr   zLookupDict.__repr__   s    (49((((r   c                8    | j                             |d           S r;   __dict__rN   rM   s     r   rJ   zLookupDict.__getitem__   s    }  d+++r   c                8    | j                             ||          S r;   r   rQ   s      r   rN   zLookupDict.get   s    }  g...r   r;   r   )	r   r   r   r   r9   rr   rJ   rN   r   r   s   @r   r   r      sz        ##      ) ) ), , ,/ / / / / / / /r   r   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 r;   )r1   	_max_size	threadingRLock_lock)r6   r   s     r   r9   zSharableLimitedDict.__init__   s#    EG!2;/2C2C


r   dict[str, typing.Any]c                     | j         | j        dS )Nr1   r   r   r]   s    r   __getstate__z SharableLimitedDict.__getstate__   s    +DNCCCr   statec                j    t          j                    | _        |d         | _        |d         | _        d S Nr1   r   )r   r   r   r1   r   r6   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 r;   r   r1   )r6   _SharableLimitedDict__keys     r   rW   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 r;   )r   rF   r1   r]   s    r   r^   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 r;   )r   iterr1   r]   s    r   r[   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 r;   )r   r   rF   r1   r   r<   s      r   r=   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 r;   r   ru   s     r   rJ   zSharableLimitedDict.__getitem__  sx    Z 	% 	%;t$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   "&&Nr   r   r   r'   )r   r   r   r   r   r'   r   r   )r   r   )r   r   r   r9   r   r   rW   r^   r[   r=   rJ   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 r;   )rT   r9   _exclusion_storer6   r   rU   s     r   r9   zQuicSharedCache.__init__  s)    """OQr   Nhostr   portalt_portc                (    |d}||}||f| ||f<   d S Ni  r,   r6   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 r;   )r   r   r   rF   r1   r   r<   s      r   r=   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   )r   r   r   r9   r   r   r=   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 r;   )rT   r9   	DummyLockr   r   s     r   r9   zAsyncQuicSharedCache.__init__&  s*    """[[


r   r   r   c                `    t                      | _        |d         | _        |d         | _        d S r   )r   r   r1   r   r   s     r   r   z!AsyncQuicSharedCache.__setstate__*  s(    [[
Ho{+r   r   r   )r   r   r   r9   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 r;   r,   r]   s    r   	__enter__zDummyLock.__enter__1  s    r   c                    d S r;   r,   )r6   exc_typeexc_valexc_tbs       r   __exit__zDummyLock.__exit__4      r   c                    d S r;   r,   r]   s    r   acquirezDummyLock.acquire7  r   r   c                    d S r;   r,   r]   s    r   releasezDummyLock.release:  r   r   N)r   r   r   r   r   r   r   r,   r   r   r   r   0  sP                  r   r   )r   r   r   r   )r   r   r   r   r   r   )!r   
__future__r   r   r   collections.abcr   r   _compatr   urllib3._collectionsr   urllib3_future._collectionsImportError	functoolsr	   
exceptionsr   r   r    r   r   typing_extensionsr!   r$   Genericr&   rl   r   r   r   r   r   r,   r   r   <module>r      s    # " " " " "      3 3 3 3 3 3 3 3++++++ 
7777777	
 	
 	
 	
 	
 	
    ######Yr     	 & % % % % %     V^D	  ))))))
'%
/
/
/C
'%
/
/
/CC
&.

C
&.

CM5 M5 M5 M5 M5.&.c*B M5 M5 M5`/ / / / / / / /$#% #% #% #% #%&/ #% #% #%L% % % % %) % % %<, , , , ,? , , ,         s   0 !AA