L irddlZddlmZmZddlmZddlmZddlm Z m Z ddl m Z dZ dZGd d e ZGd d e Zy) N)Client_get_global_client)Worker) filesystem)AbstractBufferedFileAbstractFileSysteminfer_storage_optionscT| tSt|tr|St|SN)r isinstancer)clients a/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/fsspec/implementations/dask.py _get_clientr s+ ~!## FF # f~c4ttjSr )boolr _instancesrr _in_workerrs !! ""rcpeZdZdZ d fd ZedZdZdZdZ dZ dZ d Z d d Z d ZxZS)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. c t|di||du|duz s td||_||_d|_||_||_|jy)NzKPlease provide one of filesystem instance (fs) or target_protocol, not bothr) super__init__ ValueErrortarget_protocoltarget_optionsworkerrfs_determine_worker)selfrrr rkwargs __class__s rrzDaskWorkerFileSystem.__init__!sk "6"d $67-  /,    rcJt|}d|vrd|vrd|dd|diSiS)Nhostportr:r )pathsos r_get_kwargs_from_urlsz*DaskWorkerFileSystem._get_kwargs_from_urls1s< "4 ( Rd|_|j*t|jfi|j xsi|_yyd|_t |j|_tj||_ y)NTF) rrr rrrrrdaskdelayedrfsr"s rr!z&DaskWorkerFileSystem._determine_worker9sm <DKww$((-1-@-@-FB  DK%dkk2DK||D)DHrc|jr|jj|i|y|jj|i|j yr )rr mkdirr/computer"argsr#s rr2zDaskWorkerFileSystem.mkdirEs@ ;; DGGMM4 *6 * DHHNND +F + 3 3 5rc|jr|jj|i|y|jj|i|j yr )rr rmr/r3r4s rr7zDaskWorkerFileSystem.rmK@ ;; DGGJJ ' ' DHHKK ( ( 0 0 2rc|jr|jj|i|y|jj|i|j yr )rr copyr/r3r4s rr:zDaskWorkerFileSystem.copyQs@ ;; DGGLL$ )& ) DHHMM4 *6 * 2 2 4rc|jr|jj|i|y|jj|i|j yr )rr mvr/r3r4s rr<zDaskWorkerFileSystem.mvWr8rc|jr|jj|i|S|jj|i|j Sr )rr lsr/r3r4s rr>zDaskWorkerFileSystem.ls]sF ;;477::t.v. .488;;//779 9rc |jr"|jj|f||||d|Std||||||d|S)N)mode block_size autocommit cache_options)r r)r@rArBrCr)rr _openDaskFile)r"r)r@rArBrCr#s rrDzDaskWorkerFileSystem._opencsp ;; 477==%%+    %%+  rc |jrA|j||5}|j||j||z cdddS|jj ||||j S#1swYyxYwr )rrDseekreadr/ fetch_ranger3)r"r)r@startendfs rrIz DaskWorkerFileSystem.fetch_rangest ;;D$' +1u vvcEk* + +88''dE3?GGI I  + +s %A::B)NNNN)rbNTN)__name__ __module__ __qualname____doc__r staticmethodr+r!r2r7r:r<r>rDrI __classcell__r$s@rrrs_JN!  *6 3 5 3 : :Jrrc4eZdZdfd ZddZdZdZxZS)rEc D|dk7r tdt|di|y)NrMz1Remote dask files can only be opened in "rb" moder)rrr)r"r@r#r$s rrzDaskFile.__init__s& 4<PQ Q "6"rcyr r)r"finals r _upload_chunkzDaskFile._upload_chunks rcy)zCreate remote file/uploadNrr0s r_initiate_uploadzDaskFile._initiate_uploads rcf|jj|j|j||S)z*Get the specified set of bytes from remote)r rIr)r@)r"rJrKs r _fetch_rangezDaskFile._fetch_ranges%ww""499diiDDr)rM)F)rNrOrPrrYr[r]rSrTs@rrErEs#   ErrE)r-distributed.clientrrdistributed.workerrfsspecr fsspec.specrr fsspec.utilsr rrrrErrrrcsB 9%@.#nJ-nJbE#Er