Ë
    ùÇ:j  ã                   óR  — d Z ddl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j0                  d«        e
deg «       	 ddlZ e
dej:                  j<                  d«       	 ej>                  dk\  rddl m!Z! nddl"m!Z!  e
de!jF                  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 Œ‡w xY w# e$ r% 	 ddl$Z!d#d„Z% e
de%d«       n# e$ r Y nw xY wY d „ Z&yw xY w)$z9Helper functions for a standard streaming compression APIé    N)ÚZipFile)ÚAbstractBufferedFilec                 ó   — | S ©N© )ÚfileÚmodeÚkwargss      úg/home/mcse/projects/srt_converter/srt-converter-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*   8   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   Q   s   € Ü�‰ÐC v°DÑC¸FÑCÐCr   ÚgzipÚgz©ÚGzipFilec                 ó   — t        dd| i|¤ŽS )Nr0   r   r5   )Úfr
   s     r   r$   r$   Y   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__n   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_chunkz   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=   m   s   ø„ ô
3óó@òö+r   r=   r   r?   Úlz4)é   é   )Úzstdri   Úzstc                 ó¢   — d|v r%t        j                  «       }|j                  | «      S t        j                  d¬«      }|j	                  | «      S )Nr   é
   )Úlevel)ri   ÚZstdDecompressorÚstream_readerÚZstdCompressorÚstream_writer)r'   r	   Úcctxs      r   Úzstandard_filers   ©   sI   € Ø�d‰{Ü×,Ñ,Ó.�Ø×)Ñ)¨&Ó1Ð1ä×*Ñ*°Ô4�Ø×)Ñ)¨&Ó1Ð1r   c                  ó    — t        t        «      S )z.Return a list of the implemented compressions.)Úlistr   r   r   r   Úavailable_compressionsrv   ·   s   € ä”‹;Ðr   ra   )ÚrbN)rw   )'Ú__doc__ÚsysÚ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%   Úversion_infoÚcompressionri   Ú	backportsÚZstdFileÚ	zstandardrs   rv   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Ò"Þ$å"á˜ §¡°Ô6ó&øð] ò 	Ùð	ûð ò ÝáØÑAÀ4öðûð ò 	Ùð	ûð ò 	Ùð	ûðV 	�Y Ð/ò 	Ùð	ûð ò 	Ùð	ûð ò 	ðÛ ó	2ñ 	˜V ^°UÕ;øØò Ùðúàóð%	ús¡   ±D& ÁD1 ÁE Á20E Â. E# Ã"E1 Ã20E< Ä&D.Ä-D.Ä1E
Å	E
ÅEÅEÅE ÅE Å#E.Å-E.Å1E9Å8E9Å<F&ÆFÆF&ÆFÆF&ÆFÆF&Æ%F&