Ë
    ùÇ:jS  ã                   óN   — d dl Z d dlZd dlmZ d dlmZ d dlmZ  G d„ de«      Zy)é    N)Úunquote)ÚAbstractFileSystem)Ústringify_pathc                   óv   ‡ — e Zd ZdZdZˆ fd„Zed„ «       Zdd„Zd„ Z		 	 	 	 dd„Z
edded	edz  fd
„«       Zˆ xZS )ÚDataFileSystemzüA handy decoder for data-URLs

    Example
    -------
    >>> with fsspec.open("data:,Hello%2C%20World%21") as f:
    ...     print(f.read())
    b"Hello, World!"

    See https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs
    Údatac                 ó$   •— t        ‰| �  di |¤Ž y)z!No parameters for this filesystemN© )ÚsuperÚ__init__)ÚselfÚkwargsÚ	__class__s     €úp/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/fsspec/implementations/data.pyr   zDataFileSystem.__init__   s   ø€ ä‰ÑÑ"˜6Ó"ó    c                 óà   — t        |t        «      r|D �cg c]  }| j                  |«      ‘Œ c}S t        |«      }|j	                  d«      r|dd  }|S |j	                  d«      r|dd  }|S c c}w )Nzdata://é   údata:é   )Ú
isinstanceÚlistÚ_strip_protocolr   Ú
startswith)ÚclsÚpathÚps      r   r   zDataFileSystem._strip_protocol   su   € ä�dœDÔ!Ø48Ö9¨q�C×'Ñ'¨Õ*Ò9Ð9Ü˜dÓ#ˆØ�?‰?˜9Ô%Ø˜˜�8ˆDð
 ˆð	 �_‰_˜WÔ%Ø˜˜�8ˆDð ˆùò :s   •A+Nc                 ó¶   — |j                  dd«      \  }}|j                  d«      rt        j                  |«      || S t	        |«      j                  «       || S )Nú,é   Úbase64)ÚsplitÚendswithr    Ú	b64decoder   Úencode)r   r   ÚstartÚendr   Úprefr   s          r   Úcat_filezDataFileSystem.cat_file(   sT   € Ø—Z‘Z  QÓ'‰
ˆˆdØ�=‰=˜Ô"Ü×#Ñ# DÓ)¨%°Ð4Ð4Ü�t‹}×#Ñ#Ó% e¨CÐ0Ð0r   c                 ó¾   — |j                  dd«      \  }}| j                  |«      }|j                  dd«      d   j                  dd«      d   }|t        |«      d|dœS )Nr   r   ú:ú;r   Úfile)ÚnameÚsizeÚtypeÚmimetype)r!   r(   Úlen)r   r   r   r'   r-   r   Úmimes          r   ÚinfozDataFileSystem.info.   s^   € Ø—Z‘Z  QÓ'‰
ˆˆdØ�}‰}˜TÓ"ˆØ�z‰z˜#˜qÓ! !Ñ$×*Ñ*¨3°Ó2°1Ñ5ˆØ¤c¨$£i¸ÈTÑRÐRr   c                 óh   — d|vrt        d«      ‚t        j                  | j                  |«      «      S )NÚrzRead only filesystem)Ú
ValueErrorÚioÚBytesIOr(   )r   r   ÚmodeÚ
block_sizeÚ
autocommitÚcache_optionsr   s          r   Ú_openzDataFileSystem._open4   s/   € ð �d‰?ÜÐ3Ó4Ð4Ü�z‰z˜$Ÿ-™-¨Ó-Ó.Ð.r   r2   c                 ó\   — d|xs d› dt        j                  | «      j                  «       › �S )z†Format the given data into data-URL syntax

        This version always base64 encodes, even when the data is ascii/url-safe.
        r   Ú z;base64,)r    Ú	b64encodeÚdecode)r   r2   s     r   r$   zDataFileSystem.encodeA   s0   € ð �t’z˜r�l (¬6×+;Ñ+;¸DÓ+A×+HÑ+HÓ+JÐ*KÐLÐLr   )NN)ÚrbNTN)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úprotocolr   Úclassmethodr   r(   r3   r=   ÚstaticmethodÚbytesÚstrr$   Ú__classcell__)r   s   @r   r   r   	   sp   ø„ ñ	ð €Hô#ð ñ
ó ð
ó1òSð ØØØó/ð ñM�Uð M #¨¡*ò Mó ôMr   r   )	r    r7   Úurllib.parser   Úfsspecr   Úfsspec.utilsr   r   r
   r   r   ú<module>rP      s#   ðÛ Û 	Ý  å %Ý 'ô>MÐ'õ >Mr   