
    ay                         d dl mZ d dlmZmZ d dlmZmZ d dlZd dl	Z	d dl
Z
d dlZd dlZd dlmZ  G d de          ZdS )    )BaseAdapter)urlparseunquote)ResponsecodesN)BytesIOc                   ,     e Zd Zd fd	Zd Zd Z xZS )FileAdapterTc                 d    t          t          |                                            || _        d S N)superr
   __init___set_content_length)selfset_content_length	__class__s     -lib/python3.11/site-packages/requests_file.pyr   zFileAdapter.__init__   s-    k4  ))+++#5       c                 @   |j         dvrt          d|j         z            t          |j                  }|j        r|j        dk    rt          d          t                      }	 d |j                            d          D             }|r'|d         s|                    d           |r|d         t          d |D                       r6t          t          j        t          j        t          j                            |r|d                             d	          s|d                             d
          ra|                    d          }|                    d	          r|dd         d
z   }|r'|d         s|                    d           |r|d         nd}|t          j        z   t          j        j        | z   }|rCt          j                            |          s$t          j        t          j        j        |g|R  z   }t'          j        |d          |_        |j        j        |j        _        t0          j        |_        |j        |_        t          j        |j                                                  }t;          j        |j                  r| j         r|j!        |j"        d<   n# t          $ r}	|	j        t          j#        k    rt0          j$        |_        n8|	j        t          j        k    rt0          j%        |_        nt0          j&        |_        tO          |	          (                    tS          j*        d                    }
tW          |
          |_        | j         rtY          |
          |j"        d<   |j        j        |j        _        Y d}	~	nd}	~	ww xY w|S )z Wraps 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 permittedc                 ,    g | ]}t          |          S  )r   .0ps     r   
<listcomp>z$FileAdapter.send.<locals>.<listcomp>,   s    HHH'!**HHHr   /r   c              3   2   K   | ]}t           j        |v V  d S r   )ossepr   s     r   	<genexpr>z#FileAdapter.send.<locals>.<genexpr>4   s(      33126Q;333333r   |:N rbzContent-LengthF)-method
ValueErrorr   urlnetlocr   pathsplit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   requestkwargs	url_partsresp
path_parts
path_driver-   	resp_stateresp_strs              r   sendzFileAdapter.send   s    >0087>IJJJ W[))	  	V	 0K ? ?TUUUzz
G	C IHin.B.B3.G.GHHHJ  "Z] "q!!!  "Z] "
 33
33333 GelBK,E,EFFF  
 1&&s++
 /9!}/E/Ec/J/J
  (^^A..
&&s++ 7!+CRC3!6J  &A &NN1%%% ! &A &  

 &z)BBD  F"'"4"4T":": FvZ E* E E EE wtT**DH$(HNDH!(  %xD{DH !2!233I|I-.. C43K C1:1B-.3  	3 	3 	3w%,&&#(?  EL((#(?  #(#4 
 1vv}}V%@%G%GHHHx((DH' ?14X-. %)HNDH!!!!!!#	36 s   %GJ, ,
N6CNNc                     d S r   r   )r   s    r   r;   zFileAdapter.closet   s    r   )T)__name__
__module____qualname__r   rX   r;   __classcell__)r   s   @r   r
   r
      s_        6 6 6 6 6 6` ` `D      r   r
   )requests.adaptersr   requests.compatr   r   requestsr   r   r2   r!   rA   rL   r8   sixr   r
   r   r   r   <module>rb      s    ) ) ) ) ) ) - - - - - - - - $ $ $ $ $ $ $ $  				   				      h h h h h+ h h h h hr   