ó
    †>i,$  ã                   ó  • S r SSKrSSKr SSKJr  SSKJr  SSKJr   SSK	J
r
  SSKJr  \R                  S:  a  SrO SS	KJr  \R"                  S
:„  r\(       a  SSKJrJr  SSKrSSKJrJr  OSSKJrJr  SSKrSSKJr  SSKJr   \r " S S\5      r"Sr#g! \ a    SSKJr  SSKJr  SSKJr   N•f = f! \ a!     SSKJ
r
  SSKJr   N¡! \ a    Sr
Sr  N®f = ff = f! \ a	    SS	KJr   Nªf = f! \ a    \ \!4r Ntf = f)zþPrivate module full of compatibility hacks.

Primarily this is for downstream redistributions of requests that unvendor
urllib3 without providing a shim.

.. warning::

    This module is private. If you use it, and something breaks, you were
    warned
é    N)Úfields)Úfilepost)Úpoolmanager)ÚHTTPConnection)Ú
connectioni  )Útimeout)é   r   )ÚMappingÚMutableMapping)Ú	urlencodeÚurljoin)r   )r   c                   ó  ^ • \ rS rSrSrSU 4S jjrS rS rS rS r	S r
S	 r\(       d  \R                  r\R                  r\" 5       rS
 rS r\4S jrS rS rS rS r\r\r\rS rS rS rS rS r S r!\"S 5       r#Sr$U =r%$ )ÚHTTPHeaderDicté>   a  
:param headers:
    An iterable of field-value pairs. Must not contain multiple field names
    when compared case-insensitively.

:param kwargs:
    Additional field-value pairs to pass in to ``dict.update``.

A ``dict`` like container for storing HTTP Headers.

Field names are stored and compared case-insensitively in compliance with
RFC 7230. Iteration provides the first case-sensitive key seen for each
case-insensitive pair.

Using ``__setitem__`` syntax overwrites fields that compare equal
case-insensitively in order to maintain ``dict``'s api. For fields that
compare equal, instead create a new ``HTTPHeaderDict`` and use ``.add``
in a loop.

If multiple fields that are equal case-insensitively are passed to the
constructor or ``.update``, the behavior is undefined and some will be
lost.

>>> headers = HTTPHeaderDict()
>>> headers.add('Set-Cookie', 'foo=bar')
>>> headers.add('set-cookie', 'baz=quxx')
>>> headers['content-length'] = '7'
>>> headers['SET-cookie']
'foo=bar, baz=quxx'
>>> headers['Content-Length']
'7'
c                 óà   >• [         [        U ]  5         0 U l        Ub8  [	        U[        5      (       a  U R                  U5        OU R                  U5        U(       a  U R                  U5        g g ©N)Úsuperr   Ú__init__Ú
_containerÚ
isinstanceÚ
_copy_fromÚextend)ÚselfÚheadersÚkwargsÚ	__class__s      €ÚV/home/mande/repo/quber/.venv/lib/python3.13/site-packages/requests_toolbelt/_compat.pyr   ÚHTTPHeaderDict.__init__`   sV   ø€ ÜŒn˜dÑ,Ô.ØˆŒØÑÜ˜'¤>×2Ñ2Ø—‘ Õ(à—‘˜GÔ$ÞØ�K‰K˜Õð ó    c                 óx   • X4U R                   UR                  5       '   U R                   UR                  5          $ r   ©r   Úlower©r   ÚkeyÚvals      r   Ú__setitem__ÚHTTPHeaderDict.__setitem__k   s-   € Ø(+ zˆ�‰˜Ÿ	™	›Ñ$Ø�‰˜sŸy™y›{Ñ+Ð+r   c                 ód   • U R                   UR                  5          nSR                  USS  5      $ )Nú, é   ©r   r"   Újoinr#   s      r   Ú__getitem__ÚHTTPHeaderDict.__getitem__o   s+   € Ø�o‰o˜cŸi™i›kÑ*ˆØ�y‰y˜˜Q˜R˜Ó!Ð!r   c                 ó:   • U R                   UR                  5       	 g r   r!   ©r   r$   s     r   Ú__delitem__ÚHTTPHeaderDict.__delitem__s   s   € Ø�O‰O˜CŸI™I›KÑ(r   c                 ó<   • UR                  5       U R                  ;   $ r   )r"   r   r0   s     r   Ú__contains__ÚHTTPHeaderDict.__contains__v   s   € Ø�y‰y‹{˜dŸo™oÑ-Ð-r   c                 ó�  • [        U[        5      (       d  [        US5      (       d  g[        U[        U 5      5      (       d  [        U 5      " U5      nU R	                  5        VVs0 s H  u  p#UR                  5       U_M     snnUR	                  5        VVs0 s H  u  p#UR                  5       U_M     snn:H  $ s  snnf s  snnf )NÚkeysF)r   r
   ÚhasattrÚtypeÚ
itermergedr"   )r   ÚotherÚkÚvs       r   Ú__eq__ÚHTTPHeaderDict.__eq__y   s�   € Ü˜%¤×)Ñ)´'¸%À×2HÑ2HØÜ˜%¤ d£×,Ñ,Ü˜”J˜uÓ%ˆEØ*.¯/©/Ô*;Ô<Ò*;¡$ !�—‘“˜A’Ñ*;Ò<Ø*/×*:Ñ*:Ô*<Ô=Ò*<¡$ !�—‘“˜A’Ñ*<Ò=ñ>ð 	?ùÓ<ùÛ=s   Á&B<ÂCc                 ó.   • U R                  U5      (       + $ r   )r>   )r   r;   s     r   Ú__ne__ÚHTTPHeaderDict.__ne__�   s   € Ø—;‘;˜uÓ%Ô%Ð%r   c                 ó,   • [        U R                  5      $ r   )Úlenr   ©r   s    r   Ú__len__ÚHTTPHeaderDict.__len__Š   s   € Ü�4—?‘?Ó#Ð#r   c              #   ó\   #   • U R                   R                  5        H
  nUS   v •  M     g 7f)Nr   )r   Úvalues)r   Úvalss     r   Ú__iter__ÚHTTPHeaderDict.__iter__�   s%   é € à—O‘O×*Ñ*Ö,ˆDØ�q‘'ŒMò -ùs   ‚*,c                 óV   •  X   nX	 U$ ! [          a    X R                  L a  e Us $ f = f)zŠD.pop(k[,d]) -> v, remove specified key and return its value.

If key is not found, d is returned if given, otherwise KeyError is
raised.
)ÚKeyErrorÚ_HTTPHeaderDict__marker)r   r$   ÚdefaultÚvalues       r   ÚpopÚHTTPHeaderDict.pop’   s=   € ð	Ø‘IˆEð �	ØˆLøô ó 	ØŸ-™-Ò'ØØŠNð	ús   ‚
 Š(§(c                 ó*   •  X	 g ! [          a     g f = fr   )rN   r0   s     r   ÚdiscardÚHTTPHeaderDict.discard¦   s   € ð	Ø‘	øÜó 	Ùð	ús   ‚ …
‘c                 óè   • UR                  5       nX4nU R                  R                  X45      nXELa@  [        U[        5      (       a  UR                  U5        gUS   US   U/U R                  U'   gg)z²Adds a (name, value) pair, doesn't overwrite the value if it already
exists.

>>> headers = HTTPHeaderDict(foo='bar')
>>> headers.add('Foo', 'baz')
>>> headers['foo']
'bar, baz'
r   r*   N)r"   r   Ú
setdefaultr   ÚlistÚappend)r   r$   r%   Ú	key_lowerÚnew_valsrJ   s         r   ÚaddÚHTTPHeaderDict.add¬   sm   € ð —I‘I“Kˆ	Ø�8ˆà�‰×)Ñ)¨)Ó>ˆØÒä˜$¤×%Ñ%à—‘˜CÕ ð /3°1©g°t¸A±wÀÐ-D�—‘ 	Ò*ð  r   c                 ó€  • [        U5      S:”  a#  [        SR                  [        U5      5      5      e[        U5      S:¼  a  US   OSn[        U[        5      (       a+  UR                  5        H  u  pEU R                  XE5        M     OŒ[        U[        5      (       a  U H  nU R                  XCU   5        M     OY[        US5      (       a,  UR                  5        H  nU R                  XCU   5        M     OU H  u  pFU R                  XF5        M     UR                  5        H  u  pFU R                  XF5        M     g)z¨Generic import function for any type of header-like object.
Adapted version of MutableMapping.update in order to insert items
with self.add instead of self.__setitem__
r*   z8extend() takes at most 1 positional arguments ({} given)r   © r7   N)rD   Ú	TypeErrorÚformatr   r   Ú	iteritemsr]   r
   r8   r7   Úitems)r   Úargsr   r;   r$   r%   rQ   s          r   r   ÚHTTPHeaderDict.extendÃ   s   € ô
 ˆt‹9�q‹=Üð 3ß39±6¼#¸d»)Ó3DóFð Fä˜t›9¨›>��Q’¨rˆä�eœ^×,Ñ,Ø!ŸO™OÖ-‘�Ø—‘˜Ö"ò .ä˜œw×'Ñ'Û�Ø—‘˜ C™jÖ)ò ä�U˜F×#Ñ#Ø—z‘z–|�Ø—‘˜ C™jÖ)ò $ó $‘
�Ø—‘˜Ö$ñ $ð !Ÿ,™,ž.‰JˆCØ�H‰H�SÖ ò )r   c                 ó¢   •  U R                   UR                  5          n[        U[        5      (       a  US   /$ USS $ ! [         a    / s $ f = f)zeReturns a list of all the values for the named field. Returns an
empty list if the key doesn't exist.r*   N)r   r"   r   ÚtuplerN   )r   r$   rJ   s      r   ÚgetlistÚHTTPHeaderDict.getlistÝ   sW   € ð	 Ø—?‘? 3§9¡9£;Ñ/ˆDô ˜$¤×&Ñ&Ø˜Q™�yÐ à˜A˜B�x�øô ó 	ØŠIð	ús   ‚? ¿AÁAc                 ój   • [        U 5      R                  < S[        U R                  5       5      < S3$ )NÚ(Ú))r9   Ú__name__Údictr:   rE   s    r   Ú__repr__ÚHTTPHeaderDict.__repr__ï   s#   € Ü ›:×.Ô.´°T·_±_Ó5FÖ0GÐHÐHr   c                 óº   • U HU  nUR                  U5      n[        U[        5      (       a  [        U5      nU/U-   U R                  UR	                  5       '   MW     g r   )ri   r   rY   r   r"   )r   r;   r$   r%   s       r   r   ÚHTTPHeaderDict._copy_fromò   sJ   € ÛˆCØ—-‘- Ó$ˆCÜ˜#œt×$Ñ$ä˜3“i�Ø,/¨5°3©;ˆD�O‰O˜CŸI™I›KÓ(ò r   c                 óH   • [        U 5      " 5       nUR                  U 5        U$ r   )r9   r   )r   Úclones     r   ÚcopyÚHTTPHeaderDict.copyú   s    € Ü�T”
“ˆØ×Ñ˜ÔØˆr   c              #   ó‚   #   • U  H5  nU R                   UR                  5          nUSS  H  nUS   U4v •  M     M7     g7f)z8Iterate over all header lines, including duplicate ones.r*   Nr   r!   )r   r$   rJ   r%   s       r   rc   ÚHTTPHeaderDict.iteritemsÿ   sA   é € ãˆCØ—?‘? 3§9¡9£;Ñ/ˆDØ˜A˜B“x�Ø˜1‘g˜s�lÔ"ó  ò ùs   ‚=?c              #   óŽ   #   • U  H;  nU R                   UR                  5          nUS   SR                  USS 5      4v •  M=     g7f)z:Iterate over all headers, merging duplicate ones together.r   r)   r*   Nr+   r#   s      r   r:   ÚHTTPHeaderDict.itermerged  sA   é € ãˆCØ—/‘/ #§)¡)£+Ñ.ˆCØ�a‘&˜$Ÿ)™) C¨¨ GÓ,Ð,Ô,ò ùs   ‚AAc                 ó4   • [        U R                  5       5      $ r   )rY   rc   rE   s    r   rd   ÚHTTPHeaderDict.items  s   € Ü�D—N‘NÓ$Ó%Ð%r   c                 ó  • / nUR                    Hp  nUR                  S5      (       a#  US   u  pEXES-   UR                  5       -   4US'   M<  UR                  SS5      u  pEUR	                  XER                  5       45        Mr     U " U5      $ )z4Read headers from a Python 2 httplib message object.)Ú Ú	éÿÿÿÿz
Ú:r*   )r   Ú
startswithÚrstripÚsplitrZ   Ústrip)ÚclsÚmessager   Úliner$   rQ   s         r   Úfrom_httplibÚHTTPHeaderDict.from_httplib  s‚   € ð ˆà—O”OˆDØ�‰˜{×+Ñ+Ø$ R™[‘
�Ø"¨F¡N°T·[±[³]Ñ$BÐC�˜‘ÙàŸ™ C¨Ó+‰JˆCØ�N‰N˜C§¡£Ð/Ö0ñ $ñ �7‹|Ðr   )r   r   )&rn   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r&   r-   r1   r4   r>   rA   ÚPY3r   ÚiterkeysÚ
itervaluesÚobjectrO   rF   rK   rR   rU   r]   r   ri   Ú
getheadersÚgetallmatchingheadersÚigetrp   r   rv   rc   r:   rd   ÚclassmethodrŠ   Ú__static_attributes__Ú__classcell__)r   s   @r   r   r   >   s¼   ø† ñ÷B	 ò,ò"ò)ò.ò?ò&ö Ø!×*Ñ*ˆØ#×.Ñ.ˆ
á‹x€Hò$òð
  (ô ò(òEò.!ò4 ð €JØ#ÐØ€DòIò7òò
#ò-ò&ð ñó ör   r   )
Ú
basestringr   r   r   r   r   r   Úqueuer   r   )$r�   ÚsysÚrequestsÚrequests.packages.urllib3r   r   r   ÚImportErrorÚurllib3Ú$requests.packages.urllib3.connectionr   r   Úurllib3.connectionÚ	__build__r   Úrequests.packages.urllib3.utilÚurllib3.utilÚversion_infor�   Úcollections.abcr
   r   r›   Úurllib.parser   r   ÚcollectionsÚQueueÚurllibÚurlparserš   Ú	NameErrorÚstrÚbytesr   Ú__all__r`   r   r   Ú<module>r±      s  ðñ	ó ã ð$Ý0Ý2Ý5ð	ÝCÝ4ð ×Ñ˜Ó Ø�Gð)Ý:ð 
×Ñ˜Ñ€æß7Ûß/Ð/ç3ÛÝ Ý ðØ€Jô
b�^ô bðJ�øða ó $ÝÝ ß#ð$ûð ó ðÝ5ß&øØó ØˆØ‹
ðúð	ûð ó )ß(ð)ûð" ó Ø�u�‚Jðús]   ŒB ŸB7 ¿C! Â	C3 ÂB4Â3B4Â7CÂ>CÃ
CÃCÃCÃCÃ!C0Ã/C0Ã3
D Ã?D 