
    i                         d dl Z d dlZd dlZd dlmZmZ d dlmZ d dlm	Z	m
Z
mZmZmZ d dlZddlmZmZmZ erddlmZmZ  ed	       G d
 de             Z ed       G d de             Zy)    N)PathPurePosixPath)TemporaryDirectory)AnyTupleTYPE_CHECKINGUnionOptional   )	CloudPathNoStatErrorregister_path_class   )
HttpClientHttpsClienthttpc            	       
    e Zd ZU dZded<   dddeed f   deded   ddf fd	Ze	de
fd
       Zdedef fdZe	dej                  j                   fd       Ze	defd       Ze	defd       Ze	defd       Zd%dedefdZd%dedefdZ	 d&dededee   ddfdZd'dedee   ddfdZd%dedej6                  fdZd(dededefdZe	defd       Ze	de d   f fd       Z!de e"jF                  jH                  e%f   fd Z&de e"jF                  jH                  e%f   fd!Z'de e"jF                  jH                  e%f   fd"Z(de e"jF                  jH                  e%f   fd#Z)de e"jF                  jH                  e%f   fd$Z* xZ+S ))HttpPathzhttp://r   clientN)r   
cloud_pathpartsreturnc                   t        |   |g|d|i | j                  j                  j	                  d      r%t        | j                  j                        | _        y t        d| j                  j                         | _        y )Nr   /)super__init___urlpath
startswithr   _path)selfr   r   r   	__class__s       k/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/cloudpathlib/http/httppath.pyr   zHttpPath.__init__   sn     	;e;F; yy~~((- $))..) 	
 499>>"234 	
    c                 z    | j                   j                  | j                  j                  j	                  d      z  S )z!Cached local version of the file.r   )r   _local_cache_dirr   r   lstripr!   s    r#   _localzHttpPath._local#   s,     {{++diinn.C.CC.HHHr$   funcc                     t        |   |g|i |}|dk(  r:t        |d         j                  d      r| j	                  t        |      dz         S |S )N__truediv__r   r   )r   _dispatch_to_pathstrendswith_new_cloudpath)r!   r*   argskwargssupr"   s        r#   r-   zHttpPath._dispatch_to_path)   s[    g'>t>v> = Sa\%:%:3%?&&s3x#~66 Jr$   c                     | j                   S N)r   r(   s    r#   
parsed_urlzHttpPath.parsed_url4   s    yyr$   c                 .    | j                   j                  S r5   )r   netlocr(   s    r#   drivezHttpPath.drive8   s     yyr$   c                 b    | j                   j                   d| j                   j                   dS )Nz://r   )r   schemer8   r(   s    r#   anchorzHttpPath.anchor=   s+    ))""#3tyy'7'7&8::r$   c                 L    | j                   t        | j                        dz
  d  S )Nr   )_strlenr<   r(   s    r#   _no_prefix_no_drivezHttpPath._no_prefix_no_driveA   s$     yyT[[)A-/00r$   follow_symlinksc                 l    | j                         sy| j                  j                  t        |             S NFexistsr   dir_matcherr.   r!   rA   s     r#   is_dirzHttpPath.is_dirF   s)    {{} {{&&s4y11r$   c                 n    | j                         sy| j                  j                  t        |              S rC   rD   rG   s     r#   is_filezHttpPath.is_fileM   s*    {{};;**3t9555r$   parentsexist_okmodec                      y r5    )r!   rK   rL   rM   s       r#   mkdirzHttpPath.mkdirS   s     	r$   c                 .   | j                         r|st        d|        t        d      t        t	               j
                        dz  }|j                  j                  dd       |j                  d       | j                  j                  ||        y )NzFile already exists: zTouch not implemented for existing HTTP files since we can't update the modified time; use `put()` or write to the file instead.zempty_file.txtT)rK   rL    )rE   FileExistsErrorNotImplementedErrorr   r   nameparentrP   
write_textr   _upload_file)r!   rL   rM   
empty_files       r#   touchzHttpPath.touchX   s    ;;=%(=dV&DEE%< 
 02778;KKJ##D4#@!!"%KK$$Z6r$   c                 H   	 | j                   j                  |       }t        j                  d d | j
                  d d d |j                  dd      d |j                  dt        j                  j                  d            j                         d f
      S #  t        d|        xY w)NzCould not get metadata for sizer   last_modified)
r   _get_metadatar   osstat_resultcloud_prefixgetdatetimefromtimestamp	timestamp)r!   rA   metas      r#   statzHttpPath.statg   s    	D;;,,T2D ~~!!##X%6%6%D%DQ%G)+
 	
	D ;D6BCCs   B B!presignexpire_secondsc                 P    |rt        d      | j                  j                         S )Nz'Presigning not supported for HTTP paths)rT   r   geturl)r!   rh   ri   s      r#   as_urlzHttpPath.as_url~   s(    %&OPP II	
r$   c                 .    | j                   j                  S r5   )r    rU   r(   s    r#   rU   zHttpPath.name   s    zzr$   )r   .c                 >    t         |   | j                  d      fz   S )NrR   )r   rK   r0   )r!   r"   s    r#   rK   zHttpPath.parents   s     w$"5"5b"9!;;;r$   c                 >     | j                   j                  | dfi |S )z1Issue a get request with `urllib.request.Request`GETr   requestr!   r2   s     r#   rb   zHttpPath.get        "t{{""49&99r$   c                 >     | j                   j                  | dfi |S )z1Issue a put request with `urllib.request.Request`PUTrq   rs   s     r#   putzHttpPath.put   rt   r$   c                 >     | j                   j                  | dfi |S )z2Issue a post request with `urllib.request.Request`POSTrq   rs   s     r#   postzHttpPath.post        "t{{""4:6::r$   c                 >     | j                   j                  | dfi |S )z4Issue a delete request with `urllib.request.Request`DELETErq   rs   s     r#   deletezHttpPath.delete   s     "t{{""4<V<<r$   c                 >     | j                   j                  | dfi |S )z2Issue a head request with `urllib.request.Request`HEADrq   rs   s     r#   headzHttpPath.head   r{   r$   )T)FFN)TN)Fi  ),__name__
__module____qualname__ra   __annotations__r	   r.   r
   r   propertyr   r)   r   r-   urllibparseParseResultr6   r9   r<   r@   boolrH   rJ   rP   rZ   r_   r`   rg   intrl   rU   r   rK   r   r   HTTPResponsebytesrb   rw   rz   r~   r   __classcell__)r"   s   @r#   r   r      ss   L *.	
#z/*
 
 &	

 

 I I I
	c 	s 	 FLL44    s     ; ; ; 1S 1 12d 2d 26t 6t 6 TX/3CKC=	
7d 7# 7$ 7
D 
BNN 
.
d 
C 
c 
 c   </ < <:uT[[%=%=u%DE ::uT[[%=%=u%DE :;dkk&>&>&E F ;=%(@(@%(G"H =;dkk&>&>&E F ;r$   r   httpsc                   &    e Zd ZU dZeed<   ded<   y)	HttpsPathzhttps://ra   r   r   N)r   r   r   ra   r.   r   rO   r$   r#   r   r      s    "L#"r$   r   )rc   r   r_   pathlibr   r   tempfiler   typingr   r   r   r	   r
   r   	cloudpathr   r   r   
httpclientr   r   r   r   rO   r$   r#   <module>r      so      	 ' ' = =  C C 3 VO;y O; O;d W  r$   