
    h                         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y# e$ r	 d dlmZ Y w xY w)	    )BaseAdapter)urlparseunquote)ResponsecodesN)BytesIO)StringIOc                   ,     e Zd Zd fd	Zd Zd Z xZS )FileAdapterc                 8    t         t        |           || _        y N)superr   __init___set_content_length)selfset_content_length	__class__s     P/var/www/html/ranktracker/api/venv/lib/python3.12/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k7  rt        d      t               }||_        	 |j                  j                  d      D cg c]  }t        |       }}|r|d   s|j                  d       |r|d   st        d |D              r;t        t        j                  t        j                   t        j                              |rs|d   j#                  d      s|d   j#                  d	      rK|j                  d      }|j#                  d      r|d
d d	z   }|r!|d   s|j                  d       |r	|d   snd}|t        j$                  z   t        j                  j&                  | z   }|rPt        j                  j)                  |      s1t        j$                  t        j                  j&                  |g| z   }t+        j,                  |d      |_        |j.                  j0                  |j.                  _        t4        j6                  |_        |j                  |_        t        j:                  |j.                  j=                               }	t?        j@                  |	jB                        r%| jD                  r|	jF                  |jH                  d<   |S c c}w # t        $ r}
|
j                  t        jJ                  k(  rt4        jL                  |_        nH|
j                  t        j                  k(  rt4        jN                  |_        nt4        jP                  |_        tS        |
      jU                  tW        jX                  d            }t[        |      |_        | jD                  rt]        |      |jH                  d<   |j.                  j0                  |j.                  _        Y d
}
~
|S d
}
~
ww xY w)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   @   K   | ]  }t         j                  |v   y wr   )ossep).0ps     r   	<genexpr>z#FileAdapter.send.<locals>.<genexpr>8   s     31266Q;3s   |: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   sendzFileAdapter.send   s    >>087>>IJJ W[[)	 	 0 0K ?TUUz
G	C /8nn.B.B3.GH'!*HJH Z]q! Z]
 3
33ellBKK,EFF 1&&s+z!}/E/Ec/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   4K) K$#!K) C K) CK) $K) )
O?3DO::O?c                      y r    )r   s    r   r9   zFileAdapter.closex   s    r   )T)__name__
__module____qualname__r   rU   r9   __classcell__)r   s   @r   r   r      s    6aFr   r   )requests.adaptersr   requests.compatr   r   requestsr   r   r0   r   r?   rJ   r6   r   ImportErrorr	   r   rW   r   r   <module>r`      sG    ) - $  	   	-
i+ i	  -,-s   > AA