
    i                         S SK Jr  S SKJr  S SKJrJrJr  S SK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\5      rg)	    )BytesIO)BaseAdapter)PreparedRequestResponsecodes)Any)urlparseunquoteNc                   \   ^  \ rS rSrSS\SS4U 4S jjjrS\S\S\S\4S	 jr	SS
 jr
SrU =r$ )FileAdapter   set_content_lengthreturnNc                 6   > [         [        U ]  5         Xl        g N)superr   __init___set_content_length)selfr   	__class__s     Z/home/kali/github-search/github-env/lib/python3.13/site-packages/requests_file/__init__.pyr   FileAdapter.__init__   s    k4)+#5     requestargskwargsc                 	   UR                   S;  a  [        SUR                   -  5      e[        5       n UR                  c=  [	        [
        R                  [        R                  " [
        R                  5      S5      e[        UR                  5      nUR                  (       a  UR                  S:w  a  [        S5      eXl        UR                  b  UR                  U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        [        R:                  " UR.                  R=                  5       5      n
[>        R@                  " U
RB                  5      (       a3  U RD                  (       a"  [G        U
RH                  5      URJ                  S'   U$ s  snf ! [         Ga-  nUR
                  [
        RL                  :X  a  [4        RN                  Ul        OIUR
                  [
        R                  :X  a  [4        RP                  Ul        O[4        RR                  Ul        [G        U5      RU                  [V        RX                  " S5      5      n[[        U5      Ul        [G        U5      Ul.        U RD                  (       a!  [G        [_        U5      5      URJ                  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 %sNNone	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>=   s     3
1266Q;
s    "|: rbzContent-LengthF)0method
ValueErrorr   urlIOErrorerrnoENOENTr$   strerrorr	   netlocr   pathsplitr
   popanyendswithr%   join
splitdriveioopenrawcloserelease_connr   okstatus_codefstatfilenostatS_ISREGst_moder   strst_sizeheadersEACCES	forbidden	not_foundbad_requestencodelocalegetpreferredencodingr   reasonlen)r   r   r   r   resp	url_partsr'   
path_parts
path_driver7   	resp_stateresp_strs                r   sendFileAdapter.send   sq    >>087>>IJJz
W	H{{"ellBKK,EvNN !-I I$4$4$C !XYY"L{{&";; /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 !23I||I--..43K3K14Y5F5F1G-.M IV  	3ww%,,&#(?? ELL(#(?? #(#4#4 
 1v}}V%@%@%GHHx(DHa&DK''14S]1C-. %)HHNNDHH!! 7	3s9   CN0  N+5N0 C.N0 <CN0 +N0 0S(;D"S##S(c                     g r    )r   s    r   rA   FileAdapter.close}   s    r   )r   )T)r   N)__name__
__module____qualname____firstlineno__boolr   r   r   r   r]   rA   __static_attributes____classcell__)r   s   @r   r   r      sL    64 64 6 6iO iC i3 i8 iV r   r   )r>   r   requests.adaptersr   requestsr   r   r   typingr   urllib.parser	   r
   r3   r$   rG   rR   r   r`   r   r   <module>rm      s4     ) 5 5  *  	   	q+ qr   