
    !h                        S SK Jr  S SKJr  S SKJrJrJrJrJ	r	  S SK
Jr  S SKJrJr  S SKJr  \(       a  S SKJr  S SKJr  \\\\4   r " S	 S
\5      rg)    )annotations)Mapping)TYPE_CHECKINGAnyAnyStrUnioncastheaders_dict_to_raw)CaseInsensitiveDictCaselessDict)
to_unicode)Iterable)Selfc                    ^  \ rS rSrSr  S   SU 4S jjjr    SU 4S jjrSS jrSS jrSS jr	SU 4S jjr
SSU 4S	 jjjrSSU 4S
 jjjrSS jr S     S S jjrS!S jrS"S jrS#S jrS$S jrS%S jrS&S jr\rSrU =r$ )'Headers   z(Case insensitive http headers dictionaryc                0   > X l         [        TU ]	  U5        g N)encodingsuper__init__)selfseqr   	__class__s      Z/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/scrapy/http/headers.pyr   Headers.__init__   s    
 &    c                
  > [        U[        5      (       a  UR                  5       OUn0 nU HD  u  p4UR                  U R	                  U5      / 5      R                  U R                  U5      5        MF     [        TU ]!  U5        g r   )	
isinstancer   items
setdefaultnormkeyextend	normvaluer   update)r   r   iseqkvr   s        r   r&   Headers.update"   se     (W55ciik3)+DAOODLLOR077q8IJ tr   c                @    U R                  UR                  5       5      $ )zNormalize key to bytes)_tobytestitle)r   keys     r   r#   Headers.normkey+   s    }}SYY[))r   c                    Uc  / nO6[        U[        [        45      (       a  U/nO[        US5      (       a  UnOU/nU Vs/ s H  o0R	                  U5      PM     sn$ s  snf )zNormalize values to bytes__iter__)r    strbyteshasattrr,   )r   value_valuexs       r   r%   Headers.normvalue/   s^     =FU|,,WFUJ''FWF*01&Qa &111s   Ac                0   [        U[        5      (       a  U$ [        U[        5      (       a  UR                  U R                  5      $ [        U[
        5      (       a$  [        U5      R                  U R                  5      $ [        S[        U5       35      e)NzUnsupported value type: )r    r3   r2   encoder   int	TypeErrortype)r   r7   s     r   r,   Headers._tobytes=   so    aHa88DMM**aq6==//247)<==r   c                t   >  [        [        [           [        TU ]  U5      5      S   $ ! [
         a     g f = fN)r	   listr3   r   __getitem__
IndexError)r   r.   r   s     r   rC   Headers.__getitem__F   s:    	UUW%8%=>rBB 		   &* 
77c                t   >  [        [        [           [        TU ]  X5      5      S   $ ! [
         a     g f = fr@   )r	   rB   r3   r   getrD   r   r.   def_valr   s      r   rH   Headers.getL   s9    	UUW[%>?CC 		rF   c                   >  [        [        [           [        TU ]  U5      5      $ ! [
         a    Ub  U R                  U5      s $ / s $ f = fr   )r	   rB   r3   r   rC   KeyErrorr%   rI   s      r   getlistHeaders.getlistR   sL    	UUW%8%=>> 	"~~g..I	s   #' AAAc                    X U'   g r    )r   r.   list_s      r   setlistHeaders.setlistZ   s	    S	r   c                $    U R                  X5      $ r   )r"   )r   r.   default_lists      r   setlistdefaultHeaders.setlistdefault]   s     s11r   c                n    U R                  U5      nUR                  U R                  U5      5        X0U'   g r   )rN   r$   r%   )r   r.   r5   lsts       r   
appendlistHeaders.appendlistb   s,    ll3

4>>%()S	r   c                8   ^  U 4S jT R                  5        5       $ )Nc              3  H   >#    U  H  oTR                  U5      4v   M     g 7fr   )rN   ).0r(   r   s     r   	<genexpr> Headers.items.<locals>.<genexpr>h   s     :kDLLO$ks   "keysr   s   `r   r!   Headers.itemsg   s    :diik::r   c                R    U R                  5        Vs/ s H  nX   PM	     sn$ s  snf r   rb   )r   r(   s     r   valuesHeaders.valuesj   s1     YY[
  G 
 	
 
s   $c                    [        U 5      $ r   r
   rd   s    r   	to_stringHeaders.to_stringp   s    "4((r   c                J   ^  [        U 4S jT R                  5        5       5      $ )zkReturn headers as a CaseInsensitiveDict with str keys
and str values. Multiple values are joined with ','.
c              3     >#    U  H>  u  p[        UTR                  S 9[        SR                  U5      TR                  S 94v   M@     g7f)r      ,N)r   r   join)r_   r.   r5   r   s      r   r`   *Headers.to_unicode_dict.<locals>.<genexpr>w   sE      #

 +
 37499U+dmmD +s   AA	)r   r!   rd   s   `r   to_unicode_dictHeaders.to_unicode_dicts   s'     # #

 #jjl#
 
 	
r   c                $    U R                  U 5      $ r   r   rd   s    r   __copy__Headers.__copy__   s    ~~d##r   rn   )Nzutf-8)r   z:Mapping[AnyStr, Any] | Iterable[tuple[AnyStr, Any]] | Noner   r2   )r   z3Mapping[AnyStr, Any] | Iterable[tuple[AnyStr, Any]]returnNone)r.   r   rx   r3   )r5   z!_RawValueT | Iterable[_RawValueT]rx   list[bytes])r7   
_RawValueTrx   r3   )r.   r   rx   bytes | Noner   )r.   r   rJ   r   rx   r|   )r.   r   rJ   r   rx   rz   )r.   r   rR   Iterable[_RawValueT]rx   ry   )rQ   )r.   r   rV   r}   rx   r   )r.   r   r5   r}   rx   ry   )rx   z#Iterable[tuple[bytes, list[bytes]]])rx   zlist[bytes | None])rx   r3   )rx   r   )rx   r   )__name__
__module____qualname____firstlineno____doc__r   r&   r#   r%   r,   rC   rH   rN   rS   rW   r[   r!   rg   rj   rr   rv   copy__static_attributes____classcell__ru   s   @r   r   r      s    2 KOG  F	*2>   AC22)=2	2

;
)

$ Dr   r   N)
__future__r   collections.abcr   typingr   r   r   r   r	   
w3lib.httpr   scrapy.utils.datatypesr   r   scrapy.utils.pythonr   r   typing_extensionsr   r3   r2   r;   r{   r   rQ   r   r   <module>r      sE    " # : : * D *( ' 5#s?#

kl kr   