L i dZddlmZddlZddlmZdZdeiZd dZ d!dZ e de d dd l m Z e d e d  dd lmZd"d Ze d ed ddlmZe dede ded ddlZe dej&dde dej&ddGddeZ ddlZej.de deg ddlZe dej8j:d ddlmZe deddZ#y#e $rYwxYw#e $rddlmZe d ddYwxYw#e $rYwxYw#e $rYwxYw#e eef$rYwxYw#e $rYgwxYw#e $r% ddl Z!d"dZ"e de"dn #e $rYnwxYwYdZ#ywxYw)#z9Helper functions for a standard streaming compression API)ZipFileN)AbstractBufferedFilec |SN)filemodekwargss X/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/fsspec/compression.py noop_filer s Kc$t|tr|g}|tvr|std||D]3}|tj j vs |r#td|d|d|t|<|D]}|tj j |<!y)aARegister an "inferable" file compression type. Registers transparent file compression type for use with fsspec.open. Compression can be specified by name in open, or "infer"-ed for any files ending with the given extensions. Args: name: (str) The compression type name. Eg. "gzip". callback: A callable of form (infile, mode, **kwargs) -> file-like. Accepts an input file-like object, the target mode and kwargs. Returns a wrapped file-like object. extensions: (str, Iterable[str]) A file extension, or list of file extensions for which to infer this compression scheme. Eg. "gz". force: (bool) Force re-registration of compression type or extensions. Raises: ValueError: If name or extensions already registered, and not force. z$Duplicate compression registration: z&Duplicate compression file extension: z ()N) isinstancestrcompr ValueErrorfsspecutils compressions)namecallback extensionsforceexts r register_compressionrs(*c" \  u}U?vFGGV &,,++ +EEcU"TFRSTU UVE$K.)- !!#&.r c d|vr?|xsd}t|fddi|j|d}|jffd |_|St||jd}j|fddi|S)Nrrr w)r c6|xsjSr)close)closerzs r zunzip..<s68+@qwwyr r)ropenr!namelist)infiler filenamer for#s @r unzipr*7s $%v F / / / VVH3V '!#@ A::<? 166( / / //r zip)BZ2Filebz2)igzipc 2tjd||d|S)N)fileobjr r)r. IGzipFile)r'r r s r isalr2PsCvDCFCCr gzipgzGzipFilec tdd|i|S)Nr0rr5)fr s r r$r$XsH$AQ$A&$Ar )LZMAFilelzmaxzT)rc:eZdZfdZddZddZdZdZxZS) SnappyFilec ddl}t|ddd|jddzdd|||_d|vr|j |_y|j|_y)Nrsnappybiɚ;)fspathr sizerr)r?super__init__stripr'StreamDecompressorcodecStreamCompressor)selfr'r r r? __class__s r rEzSnappyFile.__init__msj  (C3)>Y RX  $;2224DJ0002DJr c|jjd|jj|jj }|j j |y)NrT)bufferseekrH add_chunkreadr'write)rJfinalouts r _upload_chunkzSnappyFile._upload_chunkysJ jj""4;;#3#3#56 #r ctd)NzSnappyFile is not seekable)NotImplementedError)rJlocwhences r rNzSnappyFile.seeks!">??r cy)NFr)rJs r seekablezSnappyFile.seekablesr ct|jj||z }|jj|S)z*Get the specified set of bytes from remote)r'rPrH decompress)rJstartenddatas r _fetch_rangezSnappyFile._fetch_ranges/{{e ,zz$$T**r F)r) __name__ __module__ __qualname__rErTrNrZr` __classcell__)rKs@r r=r=ls 3 @+r r=r r?lz4)ZstdFilezstdzstcd|vr%tj}|j|Stjd}|j |S)Nr )level)rhZstdDecompressor stream_readerZstdCompressor stream_writer)r'r cctxs r zstandard_filerrsId{,,.))&11**4))&11r c ttS)z.Return a list of the implemented compressions.)listrrr r available_compressionsrus ;r ra)rbN)rv)$__doc__zipfiler fsspec.utilsr fsspec.specrr rrr*r-r, ImportErrorr2r.r3r6r:r9lzmaffir=r?compress NameErrorAttributeError lz4.framerfframer%compression.zstdrg zstandardrhrrrurr r rs?, y".J 0UE5)0/ Dt, 62x. !1!16Fw//TB +%+>  FOOC:r2   6 )51&Y  A4    V Y/         2 V^U;    # sDD D).0D4* D? "E .ED  D  D&%D&)D10D14D<;D<?E  E  EEFE10F1E96F8E99FF