
    !}g                         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 n# e$ r	 d dlmZ Y nw xY w G d de          ZdS )	    )BaseAdapter)urlparseunquote)ResponsecodesN)BytesIO)StringIOc                   ,     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     M/var/www/py-google-trends/myenv/lib/python3.11/site-packages/requests_file.pyr   zFileAdapter.__init__   s-    k4  ))+++#5       c                 N   |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        _        t2          j        |_        |j        |_        t          j        |j                                                  }t=          j        |j                   r| j!        r|j"        |j#        d<   n# t          $ r}	|	j        t          j$        k    rt2          j%        |_        n8|	j        t          j        k    rt2          j&        |_        nt2          j'        |_        tQ          |	          )                    tU          j+        d                    }
tY          |
          |_        | j!        rt[          |
          |j#        d<   |j        j        |j        _        Y d}	~	nd}	~	ww xY w|S )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 permittedc                 ,    g | ]}t          |          S  )r   .0ps     r   
<listcomp>z$FileAdapter.send.<locals>.<listcomp>0   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>8   s(      33126Q;333333r   |:N rbzContent-LengthF).method
ValueErrorr   urlnetlocr   request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   r.   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J3 3
N"=CNN"c                     d S r   r   )r   s    r   r=   zFileAdapter.closex   s    r   )T)__name__
__module____qualname__r   rY   r=   __classcell__)r   s   @r   r   r      s_        6 6 6 6 6 6a a aF      r   r   )requests.adaptersr   requests.compatr   r   requestsr   r   r4   r"   rC   rN   r:   r   ImportErrorr	   r   r   r   r   <module>rc      s    ) ) ) ) ) ) - - - - - - - - $ $ $ $ $ $ $ $  				   				- - - -,,,,,,,,-i i i i i+ i i i i is   3 A A