
    çg                        d Z ddlmZ ddlZddlmZ d ZdeiZd!dZ	d"d	Z
 e	d
e
d
           	 ddlmZ  e	ded           n# e$ r Y nw xY w	 ddlmZ d#dZ e	ded           n# e$ r ddlmZ  e	dd d           Y nw xY w	 ddlmZ  e	ded            e	ded           n# e$ r Y nw xY w	 ddlZ e	dej        dd            e	dej        dd           n# e$ r Y nw xY w G d de          Z	 ddlZ ej        d            e	deg            n# eeef$ r Y nw xY w	 ddlZ e	dej        j        d           n# e$ r Y nw xY w	 ddlZd#dZ  e	de d           n# e$ r Y nw xY wd  Z!dS )$z9Helper functions for a standard streaming compression API    )ZipFileN)AbstractBufferedFilec                     | S N )filemodekwargss      N/var/www/html/ai-engine/env/lib/python3.11/site-packages/fsspec/compression.py	noop_filer   	   s    K    Fc                    t          |t                    r|g}| t          v r|st          d|            |D ]-}|t          j        j        v r|st          d| d|  d          .|t          | <   |D ]}| t          j        j        |<   dS )aA  Register 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)
isinstancestrcompr
ValueErrorfsspecutilscompressions)namecallback
extensionsforceexts        r   register_compressionr      s    ( *c"" " \
 u}}U}FFFGGG V V&,+++E+TcTTTTTTUUUE$K . .)-!#&&. .r   rbc                     d|vr=|pd}t          | fddi|                    |d          }|j        ffd	|_        |S t          |           |                                d         } j        |fddi|S )Nrr   r	   w)r	   c                 @     |             p                                 S r   )close)closerzs    r   <lambda>zunzip.<locals>.<lambda><   s    6688+@qwwyy r   r   )r   openr"   namelist)infiler	   filenamer
   for$   s        @r   unzipr+   7   s    
$%vF/////VVH3V''!#@@@@@	A::<<?16(//////r   zip)BZ2Filebz2)igzipc                 *    t          j        d| |d|S )N)fileobjr	   r   )r/   	IGzipFile)r(   r	   r
   s      r   isalr3   P   s    CvDCCFCCCr   gzipgzGzipFilec                     t          dd| i|S )Nr1   r   r6   )fr
   s     r   r%   r%   X   s    H$A$AQ$A&$A$A r   )LZMAFilelzmaxzT)r   c                   :     e Zd Z fdZddZd	dZd Zd Z xZS )

SnappyFilec                     dd l } t                      j        dd d|                    d          dz   dd| || _        d|v r |j                    | _        d S  |j                    | _        d S )Nr   snappybiɚ;)fspathr	   sizer   r   )r@   super__init__stripr(   StreamDecompressorcodecStreamCompressor)selfr(   r	   r
   r@   	__class__s        r   rF   zSnappyFile.__init__m   s     	
(C3)>Y	
 	
RX	
 	
 	
 $;;2244DJJJ0022DJJJr   Fc                     | j                             d           | j                            | j                                                   }| j                            |           dS )Nr   T)bufferseekrI   	add_chunkreadr(   write)rK   finalouts      r   _upload_chunkzSnappyFile._upload_chunky   sV    j""4;#3#3#5#566#tr   r   c                      t          d          )NzSnappyFile is not seekable)NotImplementedError)rK   locwhences      r   rO   zSnappyFile.seek   s    !">???r   c                     dS )NFr   )rK   s    r   seekablezSnappyFile.seekable   s    ur   c                 p    | j                             ||z
            }| j                            |          S )z*Get the specified set of bytes from remote)r(   rQ   rI   
decompress)rK   startenddatas       r   _fetch_rangezSnappyFile._fetch_range   s1    {e,,z$$T***r   F)r   )	__name__
__module____qualname__rF   rU   rO   r[   ra   __classcell__)rL   s   @r   r>   r>   l   s        
3 
3 
3 
3 
3   @ @ @ @  + + + + + + +r   r>   r   r@   lz4c                     d|v r(t          j                    }|                    |           S t          j        d          }|                    |           S )Nr   
   )level)zstdZstdDecompressorstream_readerZstdCompressorstream_writer)r(   r	   cctxs      r   zstandard_filerq      sT    $;;(**D%%f---&R000D%%f---r   rk   zstc                  *    t          t                    S )z.Return a list of the implemented compressions.)listr   r   r   r   available_compressionsru      s    ;;r   rb   )r   N)r   )"__doc__zipfiler   fsspec.utilsr   fsspec.specr   r   r   r   r+   r.   r-   ImportErrorr3   r/   r4   r7   r;   r:   lzmaffir>   r@   compress	NameErrorAttributeError	lz4.framerg   framer&   	zstandardrk   rq   ru   r   r   r   <module>r      s   ? ?           , , , , , ,   
y". ". ". ".J
0 
0 
0 
0  UE5 ) ) )0 ////  	 	 	D	
D D D D t,,,,   AA4    	6222x.... 	 	 	D		NNN!16FFFFw/TBBBBB 	 	 	D	+ + + + +% + + +>		MMMFOC :r2222Y/ 	 	 	D			6666 	 	 	D		. . . . 7777 	 	 	D	    s}   A AAA( (BB B) )B10B15,C" "C*)C*<!D D)(D)-E	 	EEE+ +E32E3