Ë
    äš¾jÅ  ã                   óà   — 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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Ú_ensure_local_path_within_baseÚ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       €úd/home/spazio/kingdom_calls/work5/transenv/lib/python3.12/site-packages/cloudpathlib/http/httppath.pyr   zHttpPath.__init__   sn   ø€ ô 	‰Ñ˜Ð; eÒ;°FÒ;ð �y‰y�~‰~×(Ñ(¨Ô-ô ˜$Ÿ)™)Ÿ.™.Ó)ð 	�
ô   4§9¡9§>¡>Ð"2Ð3Ó4ð 	�
ó    c                 ó¼   — t        | j                  j                  | j                  j                  j                  d«      z  | j                  j                  | d¬«      S )z!Cached local version of the file.r   F)Úresolve)r   r   Ú_local_cache_dirr   r   Úlstrip©r"   s    r$   Ú_localzHttpPath._local'   sI   € ô .Ø�K‰K×(Ñ(¨4¯9©9¯>©>×+@Ñ+@ÀÓ+EÑEØ�K‰K×(Ñ(ØØô	
ð 	
r%   Ú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_path2   s[   ø€ Ü‰gÑ'¨Ð>¨tÒ>°vÑ>ˆð �=Ò ¤S¨¨a©£\×%:Ñ%:¸3Ô%?Ø×&Ñ&¤s¨3£x°#¡~Ó6Ð6ð ˆJr%   c                 ó   — | j                   S ©N)r   r*   s    r$   Ú
parsed_urlzHttpPath.parsed_url=   s   € à�y‰yÐr%   c                 ó.   — | j                   j                  S r7   )r   Únetlocr*   s    r$   ÚdrivezHttpPath.driveA   s   € ð �y‰y×ÑÐr%   c                 ób   — | j                   j                  › d| j                   j                  › d�S )Nz://r   )r   Úschemer:   r*   s    r$   ÚanchorzHttpPath.anchorF   s+   € à—)‘)×"Ñ"Ð# 3 t§y¡y×'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_driveJ   s$   € ð �y‰yœ˜TŸ[™[Ó)¨AÑ-Ð/Ð0Ð0r%   Úfollow_symlinksc                 ól   — | j                  «       sy| j                  j                  t        | «      «      S ©NF©Úexistsr   Údir_matcherr0   ©r"   rC   s     r$   Úis_dirzHttpPath.is_dirO   s)   € Ø�{‰{Œ}Øð �{‰{×&Ñ&¤s¨4£yÓ1Ð1r%   c                 ón   — | j                  «       sy| j                  j                  t        | «      «       S rE   rF   rI   s     r$   Úis_filezHttpPath.is_fileV   s*   € Ø�{‰{Œ}Øà—;‘;×*Ñ*¬3¨t«9Ó5Ð5Ð5r%   ÚparentsÚexist_okÚmodec                  ó   — y r7   © )r"   rM   rN   rO   s       r$   ÚmkdirzHttpPath.mkdir\   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: z€Touch 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)rM   rN   Ú )rG   ÚFileExistsErrorÚNotImplementedErrorr   r   ÚnameÚparentrR   Ú
write_textr   Ú_upload_file)r"   rN   rO   Ú
empty_files       r$   ÚtouchzHttpPath.toucha   sŠ   € Ø�;‰;Œ=ÙÜ%Ð(=¸d¸VÐ&DÓEÐEä%ð<óð ô
 Ô0Ó2×7Ñ7Ó8Ð;KÑKˆJØ×Ñ×#Ñ#¨D¸4Ð#Ô@Ø×!Ñ! "Ô%Ø�K‰K×$Ñ$ 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"   rC   Úmetas      r$   ÚstatzHttpPath.statp   s¤   € ð	DØ—;‘;×,Ñ,¨TÓ2ˆDô �~‰~àØØ×!Ñ!ØØØØ—‘˜ Ó#ØØ—‘Ø#¤X×%6Ñ%6×%DÑ%DÀQÓ%Góç‘)“+Øðó
ð 	
øð	DÜÐ ;¸D¸6ÐBÓCÐCús   ‚B ÂB!ÚpresignÚexpire_secondsc                 óP   — |rt        d«      ‚| j                  j                  «       S )Nz'Presigning not supported for HTTP paths)rV   r   Úgeturl)r"   rj   rk   s      r$   Úas_urlzHttpPath.as_url‡   s(   € ÙÜ%Ð&OÓPÐPð �I‰I×ÑÓð	
r%   c                 ó.   — | j                   j                  S r7   )r!   rW   r*   s    r$   rW   zHttpPath.name�   s   € à�z‰z�‰Ðr%   )r   .c                 ó>   •— t         ‰| �  | j                  d«      fz   S )NrT   )r   rM   r2   )r"   r#   s    €r$   rM   zHttpPath.parents“   s    ø€ ä‰w‰ $×"5Ñ"5°bÓ"9Ð!;Ñ;Ð;r%   c                 ó>   —  | j                   j                  | dfi |¤ŽS )z1Issue a get request with `urllib.request.Request`ÚGET©r   Úrequest©r"   r4   s     r$   rd   zHttpPath.get—   ó    € à"ˆt�{‰{×"Ñ" 4¨Ñ9°&Ñ9Ð9r%   c                 ó>   —  | j                   j                  | dfi |¤ŽS )z1Issue a put request with `urllib.request.Request`ÚPUTrs   ru   s     r$   ÚputzHttpPath.put›   rv   r%   c                 ó>   —  | j                   j                  | dfi |¤ŽS )z2Issue a post request with `urllib.request.Request`ÚPOSTrs   ru   s     r$   ÚpostzHttpPath.postŸ   ó    € à"ˆt�{‰{×"Ñ" 4¨Ñ:°6Ñ:Ð:r%   c                 ó>   —  | j                   j                  | dfi |¤ŽS )z4Issue a delete request with `urllib.request.Request`ÚDELETErs   ru   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`ÚHEADrs   ru   s     r$   ÚheadzHttpPath.head§   r}   r%   )T)FFN)TN)Fi  ),Ú__name__Ú
__module__Ú__qualname__rc   Ú__annotations__r	   r0   r
   r   Úpropertyr   r+   r   r/   ÚurllibÚparseÚParseResultr8   r;   r>   rB   ÚboolrJ   rL   rR   r\   ra   rb   ri   Úintrn   rW   r   rM   r   r   ÚHTTPResponseÚbytesrd   ry   r|   r€   rƒ   Ú__classcell__)r#   s   @r$   r   r      sp  ø… à€LØÓð *.ò	
à˜#˜z˜/Ñ*ð
ð ð
ð ˜Ñ&ð	
ð
 
õ
ð ð
˜ò 
ó ð
ð	 cð 	¸sõ 	ð ð˜FŸL™L×4Ñ4ò ó ðð ð �sò  ó ð ð ð;˜ò ;ó ð;ð ð1 Sò 1ó ð1ñ2 dð 2°dó 2ñ6 tð 6°tó 6ð TXñØðØ/3ðØCKÈCÁ=ðà	óñ
7˜dð 7°¸#±ð 7È$ó 7ñ
 Dð 
°B·N±Nó 
ñ.
˜dð 
¸Cð 
Ècó 
ð ð�cò ó ðð ð<˜˜Ñ/ô <ó ð<ð:˜u T§[¡[×%=Ñ%=¸uÐ%DÑEó :ð:˜u T§[¡[×%=Ñ%=¸uÐ%DÑEó :ð;  d§k¡k×&>Ñ&>ÀÐ&EÑ Fó ;ð= %¨¯©×(@Ñ(@À%Ð(GÑ"Hó =ð;  d§k¡k×&>Ñ&>ÀÐ&EÑ F÷ ;r%   r   Úhttpsc                   ó&   — e Zd ZU dZeed<   ded<   y)Ú	HttpsPathzhttps://rc   r   r   N)r„   r…   r†   rc   r0   r‡   rQ   r%   r$   r“   r“   ¬   s   … à"€L�#Ó"ØÔr%   r“   )re   r   ra   Úpathlibr   r   Útempfiler   Útypingr   r   r   r	   r
   r‰   Ú	cloudpathr   r   r   r   Ú
httpclientr   r   r   r“   rQ   r%   r$   ú<module>r™      ss   ðÛ Û Û 	ß 'Ý 'ß =Õ =Û ÷ó ñ ß3ñ �VÓôT;ˆyó T;ó ðT;ñn �WÓô�ó ó ñr%   