§
    dŠtjr  ã                   ó–   — d dl Z d dlmZmZ d dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZ d„ Zd„ Z G d	„ d
e
¦  «        Z G d„ de	¦  «        ZdS )é    N)ÚClientÚ_get_global_client)ÚWorker)Ú
filesystem)ÚAbstractBufferedFileÚAbstractFileSystem©Úinfer_storage_optionsc                 ón   — | €t          ¦   «         S t          | t          ¦  «        r| S t          | ¦  «        S ©N)r   Ú
isinstancer   )Úclients    úY/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/fsspec/implementations/dask.pyÚ_get_clientr   
   s8   € Ø€~Ý!Ñ#Ô#Ð#Ý	�F�FÑ	#Ô	#ð Øˆõ �f‰~Œ~Ðó    c                  ó4   — t          t          j        ¦  «        S r   )Úboolr   Ú
_instances© r   r   Ú
_in_workerr      s   € Ý•Ô!Ñ"Ô"Ð"r   c                   óv   ‡ — e Zd ZdZ	 dˆ fd„	Zed„ ¦   «         Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Z	 	 	 	 dd„Zd„ Zˆ xZS )ÚDaskWorkerFileSystema)  View files accessible to a worker as any other remote file-system

    When instances are run on the worker, uses the real filesystem. When
    run on the client, they call the worker to provide information or data.

    **Warning** this implementation is experimental, and read-only for now.
    Nc                 óØ   •—  t          ¦   «         j        di |¤Ž |d u |d u z  st          d¦  «        ‚|| _        || _        d | _        || _        || _        |                      ¦   «          d S )NzKPlease provide one of filesystem instance (fs) or target_protocol, not bothr   )	ÚsuperÚ__init__Ú
ValueErrorÚtarget_protocolÚtarget_optionsÚworkerr   ÚfsÚ_determine_worker)Úselfr   r   r    r   ÚkwargsÚ	__class__s         €r   r   zDaskWorkerFileSystem.__init__!   sŽ   ø€ ð 	�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"Ø�d�
˜°$Ð6Ñ7ð 	Ýð-ñô ð ð  /ˆÔØ,ˆÔØˆŒØˆŒØˆŒØ×ÒÑ Ô Ð Ð Ð r   c                 ó^   — t          | ¦  «        }d|v rd|v rd|d         › d|d         › �iS i S )NÚhostÚportr   ú:r	   )ÚpathÚsos     r   Ú_get_kwargs_from_urlsz*DaskWorkerFileSystem._get_kwargs_from_urls1   sF   € å" 4Ñ(Ô(ˆØ�Rˆ<ˆ<˜F b˜L˜LØ  F¤Ð:Ð:¨b°¬jÐ:Ð:Ð;Ð;àˆIr   c                 óô   — t          ¦   «         r0d| _        | j        € t          | j        fi | j        pi ¤Ž| _        d S d S d| _        t          | j        ¦  «        | _        t          j	        | ¦  «        | _
        d S )NTF)r   r   r    r   r   r   r   r   ÚdaskÚdelayedÚrfs©r"   s    r   r!   z&DaskWorkerFileSystem._determine_worker9   s‚   € Ý‰<Œ<ð 		*ØˆDŒKØŒwˆÝ$ØÔ(ðð Ø-1Ô-@Ð-FÀBðð �”��ð ˆð
  ˆDŒKÝ% d¤kÑ2Ô2ˆDŒKÝ”| DÑ)Ô)ˆDŒHˆHˆHr   c                 ó„   — | j         r | j        j        |i |¤Ž d S  | j        j        |i |¤Ž                     ¦   «          d S r   )r   r    Úmkdirr/   Úcompute©r"   Úargsr#   s      r   r2   zDaskWorkerFileSystem.mkdirE   sV   € ØŒ;ð 	6ØˆDŒGŒM˜4Ð* 6Ð*Ð*Ð*Ð*Ð*àˆDŒHŒN˜DÐ+ FÐ+Ð+×3Ò3Ñ5Ô5Ð5Ð5Ð5r   c                 ó„   — | j         r | j        j        |i |¤Ž d S  | j        j        |i |¤Ž                     ¦   «          d S r   )r   r    Úrmr/   r3   r4   s      r   r7   zDaskWorkerFileSystem.rmK   óV   € ØŒ;ð 	3ØˆDŒGŒJ˜Ð' Ð'Ð'Ð'Ð'Ð'àˆDŒHŒK˜Ð( Ð(Ð(×0Ò0Ñ2Ô2Ð2Ð2Ð2r   c                 ó„   — | j         r | j        j        |i |¤Ž d S  | j        j        |i |¤Ž                     ¦   «          d S r   )r   r    Úcopyr/   r3   r4   s      r   r:   zDaskWorkerFileSystem.copyQ   sV   € ØŒ;ð 	5ØˆDŒGŒL˜$Ð) &Ð)Ð)Ð)Ð)Ð)àˆDŒHŒM˜4Ð* 6Ð*Ð*×2Ò2Ñ4Ô4Ð4Ð4Ð4r   c                 ó„   — | j         r | j        j        |i |¤Ž d S  | j        j        |i |¤Ž                     ¦   «          d S r   )r   r    Úmvr/   r3   r4   s      r   r<   zDaskWorkerFileSystem.mvW   r8   r   c                 ó|   — | j         r | j        j        |i |¤ŽS  | j        j        |i |¤Ž                     ¦   «         S r   )r   r    Úlsr/   r3   r4   s      r   r>   zDaskWorkerFileSystem.ls]   sJ   € ØŒ;ð 	:Ø�4”7”:˜tÐ. vÐ.Ð.Ð.à�4”8”; Ð/¨Ð/Ð/×7Ò7Ñ9Ô9Ð9r   ÚrbTc           
      óf   — | j         r | j        j        |f||||dœ|¤ŽS t          d| |||||dœ|¤ŽS )N)ÚmodeÚ
block_sizeÚ
autocommitÚcache_options)r    r)   rA   rB   rC   rD   r   )r   r    Ú_openÚDaskFile)r"   r)   rA   rB   rC   rD   r#   s          r   rE   zDaskWorkerFileSystem._openc   sƒ   € ð Œ;ð 	Ø �4”7”=ØðàØ%Ø%Ø+ðð ð ðð ð õ ð ØØØØ%Ø%Ø+ðð ð ðð ð r   c                 ó(  — | j         r]|                      ||¦  «        5 }|                     |¦  «         |                     ||z
  ¦  «        cd d d ¦  «         S # 1 swxY w Y   d S | j                             ||||¦  «                             ¦   «         S r   )r   rE   ÚseekÚreadr/   Úfetch_ranger3   )r"   r)   rA   ÚstartÚendÚfs         r   rJ   z DaskWorkerFileSystem.fetch_range€   sÎ   € ØŒ;ð 	JØ—’˜D $Ñ'Ô'ð +¨1Ø—’�u‘”�Ø—v’v˜c E™kÑ*Ô*ð+ð +ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +ð +ð ”8×'Ò'¨¨d°E¸3Ñ?Ô?×GÒGÑIÔIÐIs   ž-AÁAÁA)NNNN)r?   NTN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ústaticmethodr+   r!   r2   r7   r:   r<   r>   rE   rJ   Ú__classcell__©r$   s   @r   r   r      sû   ø€ € € € € ðð ð JNð!ð !ð !ð !ð !ð !ð  ðð ñ „\ðð
*ð 
*ð 
*ð6ð 6ð 6ð3ð 3ð 3ð5ð 5ð 5ð3ð 3ð 3ð:ð :ð :ð ØØØðð ð ð ð:Jð Jð Jð Jð Jð Jð Jr   r   c                   ó4   ‡ — e Zd Zdˆ fd„	Zdd„Zd„ Zd„ Zˆ xZS )	rF   r?   c                 ód   •— |dk    rt          d¦  «        ‚ t          ¦   «         j        di |¤Ž d S )Nr?   z1Remote dask files can only be opened in "rb" moder   )r   r   r   )r"   rA   r#   r$   s      €r   r   zDaskFile.__init__Š   s>   ø€ Ø�4Š<ˆ<ÝÐPÑQÔQÐQØ�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"Ð"Ð"r   Fc                 ó   — d S r   r   )r"   Úfinals     r   Ú_upload_chunkzDaskFile._upload_chunk�   s   € Øˆr   c                 ó   — dS )zCreate remote file/uploadNr   r0   s    r   Ú_initiate_uploadzDaskFile._initiate_upload’   s   € àˆr   c                 óP   — | j                              | j        | j        ||¦  «        S )z*Get the specified set of bytes from remote)r    rJ   r)   rA   )r"   rK   rL   s      r   Ú_fetch_rangezDaskFile._fetch_range–   s"   € àŒw×"Ò" 4¤9¨d¬i¸ÀÑDÔDÐDr   )r?   )F)rN   rO   rP   r   rY   r[   r]   rS   rT   s   @r   rF   rF   ‰   sv   ø€ € € € € ð#ð #ð #ð #ð #ð #ð
ð ð ð ðð ð ðEð Eð Eð Eð Eð Eð Er   rF   )r-   Údistributed.clientr   r   Údistributed.workerr   Úfsspecr   Úfsspec.specr   r   Úfsspec.utilsr
   r   r   r   rF   r   r   r   ú<module>rc      s  ðØ €€€Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø %Ð %Ð %Ð %Ð %Ð %à Ð Ð Ð Ð Ð Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø .Ð .Ð .Ð .Ð .Ð .ðð ð ð#ð #ð #ðnJð nJð nJð nJð nJÐ-ñ nJô nJð nJðbEð Eð Eð Eð EÐ#ñ Eô Eð Eð Eð Er   