
     h                         S SK Jr  S SKJrJr  S SKJrJr  S SKrS SK	r	S SK
r
S SKrS SKr S SKJr   " S S\5      rg! \ a	    S SKJr   Nf = f)	    )BaseAdapter)urlparseunquote)ResponsecodesN)BytesIO)StringIOc                   8   ^  \ rS rSrSU 4S jjrS rS rSrU =r$ )FileAdapter   c                 6   > [         [        U ]  5         Xl        g N)superr   __init___set_content_length)selfset_content_length	__class__s     T/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/requests_file.pyr   FileAdapter.__init__   s    k4)+#5     c                    UR                   S;  a  [        SUR                   -  5      e[        UR                  5      nUR                  (       a  UR                  S:w  a  [        S5      e[        5       nXl         UR                  R                  S5       Vs/ s H  n[        U5      PM     nnU(       a.  US   (       d$  UR                  S5        U(       a  US   (       d  M$  [        S U 5       5      (       a<  [        [        R                  [        R                   " [        R                  5      5      eU(       a  US   R#                  S5      (       d  US   R#                  S	5      (       ae  UR                  S5      nUR#                  S5      (       a  US
S S	-   nU(       a.  US   (       d$  UR                  S5        U(       a  US   (       d  M$  OSnU[        R$                  -   [        R                  R&                  " U6 -   nU(       aV  [        R                  R)                  U5      (       d2  [        R$                  [        R                  R&                  " U/UQ76 -   n[*        R,                  " US5      Ul        UR.                  R0                  UR.                  l        [4        R6                  Ul        UR                  Ul        [        R:                  " UR.                  R=                  5       5      n	[>        R@                  " U	RB                  5      (       a*  U RD                  (       a  U	RF                  URH                  S'   U$ s  snf ! [         Ga  n
U
R                  [        RJ                  :X  a  [4        RL                  Ul        OIU
R                  [        R                  :X  a  [4        RN                  Ul        O[4        RP                  Ul        [S        U
5      RU                  [V        RX                  " S5      5      n[[        U5      Ul        U RD                  (       a  []        U5      URH                  S'   UR.                  R0                  UR.                  l         S
n
A
U$ S
n
A
ff = f)zWraps a file, described in request, in a Response object.

:param request: The PreparedRequest` being "sent".
:returns: a Response object containing the file
)GETHEADzInvalid request method %s	localhostz5file: URLs with hostname components are not permitted/r   c              3   H   #    U  H  n[         R                  U;   v   M     g 7fr   )ossep).0ps     r   	<genexpr>#FileAdapter.send.<locals>.<genexpr>8   s     3
1266Q;
s    "|:N rbzContent-LengthF)/method
ValueErrorr   urlnetlocr   requestpathsplitr   popanyIOErrorerrnoENOENTr   strerrorendswithr   join
splitdriveioopenrawcloserelease_connr   okstatus_codefstatfilenostatS_ISREGst_moder   st_sizeheadersEACCES	forbidden	not_foundbad_requeststrencodelocalegetpreferredencodingr   len)r   r-   kwargs	url_partsrespr!   
path_parts
path_driver.   	resp_stateresp_strs               r   sendFileAdapter.send   s(    >>087>>IJJ W[[)	 	 0 0K ?TUUz
G	C /8nn.B.B3.GH.G'!*.GJH Z]q! Z]]
 3
333ellBKK,EFF 1&&s++z!}/E/Ec/J/J'^^A.
&&s++!+CR3!6J ANN1% !A  

 &z)BBD "''"4"4T":":vvZ E* EE wwtT*DH$(HHNNDHH!(  %xxD{{DH !23I||I--..43K3K1:1B1B-.M IV  	3ww%,,&#(?? ELL(#(?? #(#4#4 
 1v}}V%@%@%GHHx(DH''14X-. %)HHNNDHH!! 7	3s9   ;M M-5M $C.M CM M Q/D	Q**Q/c                     g r    )r   s    r   r<   FileAdapter.closex   s    r   )r   )T)	__name__
__module____qualname____firstlineno__r   rX   r<   __static_attributes____classcell__)r   s   @r   r   r      s    6aF r   r   )requests.adaptersr   requests.compatr   r   requestsr   r   r3   r   rB   rM   r9   r   ImportErrorr	   r   r[   r   r   <module>rg      sG    ) - $  	   	-
i+ i	  -,-s   > AA