Ë
    F^(h  ã                   óÐ  — 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
«       	 ddlmZ d!d„Z e	ded«       	 ddlmZ  e	ded«        e	ded«       	 ddlZ e	dej&                  dd¬«        e	dej&                  dd¬«        G d„ de«      Z	 ddlZ ej.                  d«        e	deg «       	 ddlZ e	dej8                  j:                  d«       	 ddlZd!d„Z  e	de d«       d„ Z!y# e$ r Y ŒÎw xY w# e$ r ddlmZ  e	dd„ d«       Y ŒÕw xY w# e$ r Y ŒÅw xY w# e$ r Y ŒŸw xY w# eeef$ r Y Œ�w xY w# e$ r Y Œiw xY w# e$ r Y d„ Z!yw xY w)"z9Helper functions for a standard streaming compression APIé    )ÚZipFileN)ÚAbstractBufferedFilec                 ó   — | S ©N© )ÚfileÚmodeÚkwargss      úP/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/fsspec/compression.pyÚ	noop_filer   	   s   € Ø€Kó    c                 ó$  — t        |t        «      r|g}| t        v r|st        d| › �«      ‚|D ]3  }|t        j
                  j                  v sŒ |rŒ#t        d|› d| › d�«      ‚ |t        | <   |D ]  }| t        j
                  j                  |<   Œ! y)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ÜÐ?À¸vÐFÓGÐGàò VˆØ”&—,‘,×+Ñ+Ò+²EÜÐEÀcÀUÈ"ÈTÈFÐRSÐTÓUÐUðVð „Eˆ$�Kàò .ˆØ)-Œ�‰×!Ñ! #Ò&ñ.r   c                 óô   ‡— d|vr?|xs d}t        | fddi|¤ŽŠ‰j                  |d¬«      }|j                  fˆfd„	|_        |S t        | «      Š|€‰j                  «       d   } ‰j                  |fddi|¤ŽS )NÚrr   r	   Úw)r	   c                 ó6   •—  | «       xs ‰j                  «       S r   )Úclose)ÚcloserÚzs    €r   ú<lambda>zunzip.<locals>.<lambda><   s   ø€ ©6«8Ò+@°q·w±w³y€ r   r   )r   Úopenr!   Únamelist)Úinfiler	   Úfilenamer
   Úfor#   s        @r   Úunzipr*   7   s†   ø€ Ø
�$�ØÒ%˜vˆÜ�FÑ/ Ð/¨Ñ/ˆØ�V‰V�H 3ˆVÓ'ˆØ!#§¡Ô@ˆŒØˆ	Ü�‹€AØÐØ—:‘:“< ‘?ˆØˆ1�6‰6�(Ñ/ Ð/¨Ñ/Ð/r   Úzip)ÚBZ2FileÚbz2)Úigzipc                 ó2   — t        j                  d| |dœ|¤ŽS )N)Úfileobjr	   r   )r.   Ú	IGzipFile)r'   r	   r
   s      r   Úisalr2   P   s   € Ü�‰ÐC v°DÑC¸FÑCÐCr   ÚgzipÚgz©ÚGzipFilec                 ó   — t        dd| i|¤ŽS )Nr0   r   r5   )Úfr
   s     r   r$   r$   X   s   € ¤HÑ$A°QÐ$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        ‰| �  dd d|j                  d«      dz   ddœ|¤Ž || _        d|v r |j
                  «       | _        y  |j                  «       | _        y )Nr   ÚsnappyÚbiÿÉš;)ÚfsÚpathr	   Úsizer   r   )r?   ÚsuperÚ__init__Ústripr'   ÚStreamDecompressorÚcodecÚStreamCompressor)Úselfr'   r	   r
   r?   Ú	__class__s        €r   rE   zSnappyFile.__init__m   sj   ø€ Ûä‰Ñð 	
Ø˜(¨¯©°C«¸3Ñ)>ÀYñ	
ØRXò	
ð ˆŒØ�$‰;Ø2˜×2Ñ2Ó4ˆD�Jà0˜×0Ñ0Ó2ˆD�Jr   c                 óÖ   — | j                   j                  d«       | j                  j                  | j                   j	                  «       «      }| j
                  j                  |«       y)Nr   T)ÚbufferÚseekrH   Ú	add_chunkÚreadr'   Úwrite)rJ   ÚfinalÚouts      r   Ú_upload_chunkzSnappyFile._upload_chunky   sJ   € Ø�‰×Ñ˜ÔØ�j‰j×"Ñ" 4§;¡;×#3Ñ#3Ó#5Ó6ˆØ�‰×Ñ˜#ÔØr   c                 ó   — t        d«      ‚)NzSnappyFile is not seekable)ÚNotImplementedError)rJ   ÚlocÚwhences      r   rN   zSnappyFile.seek   s   € Ü!Ð">Ó?Ð?r   c                  ó   — y)NFr   )rJ   s    r   ÚseekablezSnappyFile.seekable‚   s   € Ør   c                 ót   — | j                   j                  ||z
  «      }| j                  j                  |«      S )z*Get the specified set of bytes from remote)r'   rP   rH   Ú
decompress)rJ   ÚstartÚendÚdatas       r   Ú_fetch_rangezSnappyFile._fetch_range…   s/   € à�{‰{×Ñ  e¡Ó,ˆØ�z‰z×$Ñ$ TÓ*Ð*r   ©F)r   )	Ú__name__Ú
__module__Ú__qualname__rE   rT   rN   rZ   r`   Ú__classcell__)rK   s   @r   r=   r=   l   s   ø„ ô
3óó@òö+r   r=   r   r?   Úlz4c                 ó¢   — d|v r%t        j                  «       }|j                  | «      S t        j                  d¬«      }|j	                  | «      S )Nr   é
   )Úlevel)ÚzstdÚZstdDecompressorÚstream_readerÚZstdCompressorÚstream_writer)r'   r	   Úcctxs      r   Úzstandard_filerp       sI   € Ø�$‰;Ü×(Ñ(Ó*ˆDØ×%Ñ% fÓ-Ð-ä×&Ñ&¨RÔ0ˆDØ×%Ñ% fÓ-Ð-r   rj   Úzstc                  ó    — t        t        «      S )z.Return a list of the implemented compressions.)Úlistr   r   r   r   Úavailable_compressionsrt   ­   s   € ä”‹;Ðr   ra   )ÚrbN)ru   )"Ú__doc__Úzipfiler   Úfsspec.utilsr   Úfsspec.specr   r   r   r   r*   r-   r,   ÚImportErrorr2   r.   r3   r6   r:   r9   Úlzmaffir=   r?   ÚcompressÚ	NameErrorÚAttributeErrorÚ	lz4.framerf   Úframer%   Ú	zstandardrj   rp   rt   r   r   r   ú<module>r‚      sÎ  ðÙ ?å ã Ý ,òð 
ˆyÐ€ó".óJ
0ñ �U˜E 5Ô )ð0Ýñ ˜ ¨Ô/ðÝóDñ ˜  tÔ,ð	Ýá˜ ¨6Ô2Ù˜˜x¨Ô.ð	Ûá˜ ×!1Ñ!1°6ÀÕFÙ˜˜w×/Ñ/°¸TÕBô
+Ð%ô +ð>		Ûà€F‡O�O�CÔñ ˜ :¨rÔ2ð
	Ûá˜ §	¡	§¡°Ô6ð	Ûó.ñ ˜ °Ô7ó
øðK ò 	Ùð	ûð ò ÝáØÑAÀ4öðûð ò 	Ùð	ûð ò 	Ùð	ûðV 	�Y Ð/ò 	Ùð	ûð ò 	Ùð	ûð ò 	Øóð		ús|   ­D ¾D ÁD+ Á.0D6 Â* E Ã"E Ã.E ÄDÄDÄD(Ä'D(Ä+D3Ä2D3Ä6D>Ä=D>ÅEÅEÅEÅEÅE%Å$E%