ó
    Ð]j  ã                   óZ  • S r SSKrSSKJr  SSKrSSKJr  S rS\0r	S!S jr
S"S jr\
" S\S5         SS	KJr  \
" S
\S
5         SSKJr  S#S jr\
" S\S5         SSKJr  \
" S\S5        \
" S\S5         SSKr\
" S\R(                  SSS9  \
" S\R(                  SSS9   " S S\5      r SSKr\R0                  " S5        \
" S\/ 5         SSKr\
" S\R:                  R<                  S5         \R>                  S:¼  a  SSK J!r!  OSSK"J!r!  \
" S\!RF                  S5        S  r&g! \ a     Néf = f! \ a    SSKJr  \
" SS S5         Nðf = f! \ a     Náf = f! \ a     NÂf = f! \\\4 a     N¥f = f! \ a     NŽf = f! \ a$     SSK$r!S#S jr%\
" S\%S5        O! \ a     Of = f N‰f = f)$z9Helper functions for a standard streaming compression APIé    N)ÚZipFile)ÚAbstractBufferedFilec                 ó   • U $ ©N© )ÚfileÚmodeÚkwargss      ÚO/home/mande/repo/quber/.venv/lib/python3.13/site-packages/fsspec/compression.pyÚ	noop_filer   
   s   € Ø€Kó    c                 óT  • [        U[        5      (       a  U/nU [        ;   a  U(       d  [        SU  35      eU H<  nU[        R
                  R                  ;   d  M#  U(       a  M,  [        SU SU  S35      e   U[        U '   U H   nU [        R
                  R                  U'   M"     g)a	  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ãˆØ”&—,‘,×+Ñ+Õ+·E°EÜÐEÀcÀUÈ"ÈTÈFÐRSÐTÓUÐUñ ð „Eˆ$�KãˆØ)-Œ�‰×!Ñ! #Ó&ò r   c                 ó  ^• SU;  aC  U=(       d    Sn[        U 4SS0UD6mTR                  USS9nUR                  4U4S jjUl        U$ [        U 5      mUc  TR                  5       S   nTR                  " U4SS0UD6$ )NÚrr   r	   Úw)r	   c                 ó@   >• U " 5       =(       d    TR                  5       $ r   )Úclose)ÚcloserÚzs    €r   Ú<lambda>Ú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ØÑØ—:‘:“< ‘?ˆØ�6Š6�(Ñ/ Ð/¨Ñ/Ð/r   Úzip)ÚBZ2FileÚbz2)Úigzipc                 ó2   • [         R                  " SXS.UD6$ )N)Úfileobjr	   r   )r/   Ú	IGzipFile)r(   r	   r
   s      r   Úisalr3   Q   s   € Ü�ŠÐC vÑC¸FÑCÐCr   ÚgzipÚgz©ÚGzipFilec                 ó   • [        SSU 0UD6$ )Nr1   r   r6   )Úfr
   s     r   r$   r$   Y   s   € ¤HÑ$A°QÐ$A¸&Ò$Ar   )ÚLZMAFileÚlzmaÚxzT)r   c                   óH   ^ • \ rS rSrU 4S jrSS jrS	S jrS rS rSr	U =r
$ )
Ú
SnappyFileém   c                 óÎ   >• SS K n[        TU ]  " SS SUR                  S5      S-   SS.UD6  Xl        SU;   a  UR
                  " 5       U l        g UR                  " 5       U l        g )Nr   ÚsnappyÚbiÿÉš;)ÚfsÚpathr	   Úsizer   r   )rA   ÚsuperÚ__init__Ústripr(   ÚStreamDecompressorÚcodecÚStreamCompressor)Úselfr(   r	   r
   rA   Ú	__class__s        €r   rG   ÚSnappyFile.__init__n   sd   ø€ Ûä‰Òð 	
Ø˜(¨¯©°C«¸3Ñ)>ÀYñ	
ØRXò	
ð ŒØ�$‹;Ø×2Ò2Ó4ˆD�Jà×0Ò0Ó2ˆD�Jr   c                 óÖ   • U R                   R                  S5        U R                  R                  U R                   R	                  5       5      nU R
                  R                  U5        g)Nr   T)ÚbufferÚseekrJ   Ú	add_chunkÚreadr(   Úwrite)rL   ÚfinalÚouts      r   Ú_upload_chunkÚSnappyFile._upload_chunkz   sJ   € Ø�‰×Ñ˜ÔØ�j‰j×"Ñ" 4§;¡;×#3Ñ#3Ó#5Ó6ˆØ�‰×Ñ˜#ÔØr   c                 ó   • [        S5      e)NzSnappyFile is not seekable)ÚNotImplementedError)rL   ÚlocÚwhences      r   rQ   ÚSnappyFile.seek€   s   € Ü!Ð">Ó?Ð?r   c                 ó   • g)NFr   )rL   s    r   ÚseekableÚSnappyFile.seekableƒ   s   € Ør   c                 ór   • U R                   R                  X!-
  5      nU R                  R                  U5      $ )z*Get the specified set of bytes from remote)r(   rS   rJ   Ú
decompress)rL   ÚstartÚendÚdatas       r   Ú_fetch_rangeÚSnappyFile._fetch_range†   s-   € à�{‰{×Ñ ¡Ó,ˆØ�z‰z×$Ñ$ TÓ*Ð*r   )rJ   r(   ©F)r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rG   rW   rQ   r_   rf   Ú__static_attributes__Ú__classcell__)rM   s   @r   r>   r>   m   s"   ø† õ
3ôô@ò÷+ð +r   r>   r   rA   Úlz4)é   é   )Úzstdrr   Úzstc                 ó¤   • SU;   a&  [         R                  " 5       nUR                  U 5      $ [         R                  " SS9nUR	                  U 5      $ )Nr   é
   )Úlevel)rr   ÚZstdDecompressorÚstream_readerÚZstdCompressorÚstream_writer)r(   r	   Úcctxs      r   Úzstandard_filer|   ©   sI   € Ø�d‹{Ü×,Ò,Ó.�Ø×)Ñ)¨&Ó1Ð1ä×*Ò*°Ñ4�Ø×)Ñ)¨&Ó1Ð1r   c                  ó    • [        [        5      $ )z.Return a list of the implemented compressions.)Úlistr   r   r   r   Úavailable_compressionsr   ·   s   € ä”‹;Ðr   rh   )ÚrbN)r€   )'Ú__doc__ÚsysÚzipfiler   Úfsspec.utilsr   Úfsspec.specr   r   r   r   r+   r.   r-   ÚImportErrorr3   r/   r4   r7   r;   r:   Úlzmaffir>   rA   ÚcompressÚ	NameErrorÚAttributeErrorÚ	lz4.framero   Úframer&   Úversion_infoÚcompressionrr   Ú	backportsÚZstdFileÚ	zstandardr|   r   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ô
+Ð%ô +ð>		Ûà
‡O‚O�CÔñ ˜ :¨rÔ2ð
	Ûá˜ §	¡	§¡°Ô6ð	Ø
×Ñ˜7Ó"Þ$å"á˜ §¡°Ô6ó&øð] ó 	Ùð	ûð ó ÝáØÑAÀ4öðûð ó 	Ùð	ûð ó 	Ùð	ûðV 	�Y Ð/ó 	Ùð	ûð ó 	Ùð	ûð ó 	ðÛ ô	2ñ 	˜V ^°UÕ;øØó Ùðúáð	ús¡   ³D$ ÁD0 ÁE Á5*E Â+ E% Ã"E4 Ã/1F  Ä$D-Ä,D-Ä0E
Å	E
ÅEÅEÅE"Å!E"Å%	E1Å0E1Å4E=Å<E=Æ F*ÆFÆF*ÆF$Æ!F*Æ#F$Æ$F*Æ)F*