Ë
    ÚÍ:j�  ã                  ó  — d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ ddl	m
Z
 ddlmZmZmZ ddlmZ ddlmZmZmZmZ dd	lmZ ej0                  rd d
lmZ d dlmZmZ ddlmZ  G d„ de
«      Z G d„ de
«      Z  G d„ de«      Z!y)é    )ÚannotationsN)Údatetimeé   )ÚFS)ÚFileExpectedÚResourceNotFoundÚResourceReadOnly)ÚInfo)ÚdirnameÚforcedirÚnormpathÚrelpath)ÚTempFS)Ú
Collection)ÚIOÚAny)ÚSubFSc                  óV   — e Zd ZdZ	 d	 	 	 	 	 dd„Zej                  r	 d	 	 	 	 	 dd„Zyy)ÚZipFSzRead and write zip files.c                ó6   — |rt        ||«      S t        ||«      S ©N)Ú
WriteZipFSÚ	ReadZipFS)ÚclsÚfileÚwriteÚencodings       úu/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/fontTools/misc/filesystem/_zipfs.pyÚ__new__zZipFS.__new__   s!   € ñ Ü˜d HÓ-Ð-ä˜T 8Ó,Ð,ó    c                 ó   — y r   © )Úselfr   r   r   s       r   Ú__init__zZipFS.__init__%   s   € ð r    N)Fúutf-8)r   ústr | os.PathLiker   Úboolr   Ústr)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚtypingÚTYPE_CHECKINGr$   r"   r    r   r   r      s]   „ Ù#ð LSð-Ø$ð-Ø-1ð-ØEHó-ð ×Òð QXð	Ø)ð	Ø26ð	ØJMô	ð r    r   c                  óÌ   ‡ — e Zd ZdZddˆ fd„Zdd„Zdd„Zdd„Zedd„«       Z	ˆ fd„Z
ddd„Zdd	„Zdd
„Zdd„Zdd„Zddd„Zddd„Zdd„Zdd„Zdd„Zdd d„Zd!d„Zd"d#d„Zˆ xZS )$r   zA readable zip file.c                ó¨   •— t         ‰| �  «        t        j                  |«      | _        || _        t        j                  |d«      | _        d | _	        y )NÚr)
Úsuperr$   ÚosÚfspathÚ_filer   ÚzipfileÚZipFileÚ_zipÚ_directory_fs©r#   r   r   Ú	__class__s      €r   r$   zReadZipFS.__init__.   s>   ø€ Ü‰ÑÔÜ—Y‘Y˜t“_ˆŒ
Ø ˆŒÜ—O‘O D¨#Ó.ˆŒ	Ø!ˆÕr    c                ó"   — d| j                   ›d�S )Nz
ReadZipFS(ú)©r5   ©r#   s    r   Ú__repr__zReadZipFS.__repr__5   s   € Ø˜DŸJ™J˜>¨Ð+Ð+r    c                ó"   — d| j                   › d�S )Nz<zipfs 'ú'>r>   r?   s    r   Ú__str__zReadZipFS.__str__8   s   € Ø˜$Ÿ*™*˜ RÐ(Ð(r    c                óz   — t        t        |«      «      }| j                  j                  |«      rt	        |«      }|S )z"Convert a path to a zip file name.)r   r   Ú
_directoryÚisdirr   ©r#   Úpaths     r   Ú_path_to_zip_namezReadZipFS._path_to_zip_name;   s0   € ä”x “~Ó&ˆØ�?‰?× Ñ  Ô&Ü˜D“>ˆDØˆr    c                ó:  — | j                   €„t        «       x| _         }| j                  j                  «       D ]V  }|}|j	                  d«      r|j                  |d¬«       Œ*|j                  t        |«      d¬«       |j                  |«       ŒX | j                   S )Nú/T)Úrecreate)r9   r   r8   ÚnamelistÚendswithÚmakedirsr   Úcreate)r#   Ú_fsÚzip_nameÚresource_names       r   rE   zReadZipFS._directoryB   s‹   € à×ÑÐ%Ü'-£xÐ/ˆDÔ Ø ŸI™I×.Ñ.Ó0ò .�Ø (�Ø ×)Ñ)¨#Ô.Ø—L‘L ¸�LÕ>à—L‘L¤¨Ó!7À$�LÔGØ—J‘J˜}Õ-ð.ð ×!Ñ!Ð!r    c                ó¬   •— t         t        | �  «        | j                  j                  «        | j                  �| j                  j                  «        y y r   )r2   r   Úcloser8   r9   )r#   r;   s    €r   rU   zReadZipFS.closeO   sA   ø€ ÜŒi˜Ñ$Ô&Ø�	‰	�‰ÔØ×ÑÐ)Ø×Ñ×$Ñ$Õ&ð *r    c                ór  — |xs d}i }|dk(  r,dddœ|d<   d|v rûdt         j                  i|d<   t        |«      S | j                  j                  |«      }|j                  |j
                  dœ|d<   d|v r | j                  |«      }	 | j                  j                  |«      }d|v ro|j                  t        |j
                  rt         j                  nt         j                  «      t        |j                  Ž j                  «       d	œ|d<   t        |«      S t        |«      S # t        $ r Y t        |«      S w xY w)
Nr"   rK   Ú T)ÚnameÚis_dirÚbasicÚdetailsÚtype)Úsizer\   Úmodified)ÚstatÚS_IFDIRrE   ÚgetinforX   rY   rI   r8   Ú	file_sizeÚintÚS_IFREGr   Ú	date_timeÚ	timestampÚKeyErrorr
   )r#   rH   Ú
namespacesÚraw_infoÚ
basic_inforR   Úzip_infos          r   ra   zReadZipFS.getinfoU   s8  € ØÒ% 2ˆ
Øˆà�3Š;Ø)+°tÑ <ˆH�WÑØ˜JÑ&Ø'-¬t¯|©|Ð&<�˜Ñ#ô* �H‹~Ðð' Ÿ™×0Ñ0°Ó6ˆJØ)3¯©ÀJ×DUÑDUÑ VˆH�WÑà˜JÑ&Ø×1Ñ1°$Ó7�ðØ#Ÿy™y×0Ñ0°Ó:�Hð ! JÑ.à$,×$6Ñ$6Ü$'Ø0:×0AÒ0A¤§¢ÄtÇ|Á|ó%ô )1°(×2DÑ2DÐ(E×(OÑ(OÓ(Qñ/˜ Ñ+ô �H‹~ÐŒt�H‹~Ðøô  ò Øô �H‹~Ððús   ÂD  Ä 	D6Ä5D6c                óX   — | j                  «        | j                  j                  |«      S r   )ÚcheckrE   ÚexistsrG   s     r   rn   zReadZipFS.existss   ó    € Ø�
‰
ŒØ�‰×%Ñ% dÓ+Ð+r    c                óX   — | j                  «        | j                  j                  |«      S r   )rm   rE   rF   rG   s     r   rF   zReadZipFS.isdirw   s    € Ø�
‰
ŒØ�‰×$Ñ$ TÓ*Ð*r    c                óX   — | j                  «        | j                  j                  |«      S r   )rm   rE   ÚisfilerG   s     r   rr   zReadZipFS.isfile{   ro   r    c                óX   — | j                  «        | j                  j                  |«      S r   )rm   rE   ÚlistdirrG   s     r   rt   zReadZipFS.listdir   s    € Ø�
‰
ŒØ�‰×&Ñ& tÓ,Ð,r    c                ó8   — | j                  «        t        |«      ‚r   ©rm   r	   ©r#   rH   rL   s      r   ÚmakedirzReadZipFS.makedirƒ   ó   € Ø�
‰
ŒÜ˜tÓ$Ð$r    c                ó8   — | j                  «        t        |«      ‚r   rv   rw   s      r   rO   zReadZipFS.makedirs‡   ry   r    c                ó8   — | j                  «        t        |«      ‚r   rv   rG   s     r   ÚremovezReadZipFS.remove‹   ry   r    c                ó8   — | j                  «        t        |«      ‚r   rv   rG   s     r   Ú	removedirzReadZipFS.removedir�   ry   r    c                ó8   — | j                  «        t        |«      ‚r   rv   rG   s     r   Ú
removetreezReadZipFS.removetree“   ry   r    c                ó8   — | j                  «        t        |«      ‚r   rv   )r#   ÚsrcÚdstrP   s       r   ÚmovedirzReadZipFS.movedir—   s   € Ø�
‰
ŒÜ˜sÓ#Ð#r    c                óÊ   — | j                  «        | j                  j                  |«      st        |«      ‚| j	                  |«      }| j
                  j                  |«      }|S r   )rm   rE   rr   r   rI   r8   Úread)r#   rH   rR   Ú	zip_bytess       r   Ú	readbyteszReadZipFS.readbytes›   sP   € Ø�
‰
ŒØ�‰×%Ñ% dÔ+Ü" 4Ó(Ð(Ø×)Ñ)¨$Ó/ˆØ—I‘I—N‘N 8Ó,ˆ	ØÐr    c                óÆ  ‡— | j                  «        | j                  j                  |«      rt        |›d�«      ‚‰d   }|dk(  r)| j                  j	                  |«      st        d|›�«      ‚t        ˆfd„dD «       «      rt        |«      ‚| j                  |«      }| j                  j                  ||«      }d‰v r|rt        d«      ‚|S t        j                  |fi |¤ŽS )	Nz is a directoryr   r1   zNo such file or directory: c              3  ó&   •K  — | ]  }|‰v –— Œ
 y ­wr   r"   )Ú.0ÚmÚmodes     €r   ú	<genexpr>z!ReadZipFS.open.<locals>.<genexpr>¬   s   øè ø€ Ò)˜Qˆq�DŒyÑ)ùs   ƒzwax+Úbz*encoding args invalid for binary operation)rm   rE   rF   r   rn   r   Úanyr	   rI   r8   ÚopenÚ
ValueErrorÚioÚTextIOWrapper)r#   rH   r�   ÚkwargsÚzip_moderR   Ústreams     `    r   r‘   zReadZipFS.open£   sÒ   ø€ Ø�
‰
ŒØ�?‰?× Ñ  Ô&Ü $ ¨Ð9Ó:Ð:à˜‘7ˆØ�sŠ? 4§?¡?×#9Ñ#9¸$Ô#?Ü"Ð%@ÀÀÐ#IÓJÐJäÓ) &Ô)Ô)Ü" 4Ó(Ð(à×)Ñ)¨$Ó/ˆØ—‘—‘ ¨(Ó3ˆØ�$‰;ÙÜ Ð!MÓNÐNØˆMä×Ñ Ñ1¨&Ñ1Ð1r    ©r%   ©r   r&   r   r(   ©Úreturnr(   )rH   r(   r›   r(   )r›   r   r   )rH   r(   rh   zCollection[str] | Noner›   r
   )rH   r(   r›   r'   )F)rH   r(   rL   r'   r›   r   )rH   r(   )r‚   r(   rƒ   r(   rP   r'   )rH   r(   r›   Úbytes)Úrb)rH   r(   r�   r(   r›   zIO[Any])r)   r*   r+   r,   r$   r@   rC   rI   ÚpropertyrE   rU   ra   rn   rF   rr   rt   rx   rO   r|   r~   r€   r„   rˆ   r‘   Ú__classcell__©r;   s   @r   r   r   +   sy   ø„ Ùö"ó,ó)óð ò
"ó ð
"ô'ôó<,ó+ó,ó-ô%ô%ó%ó%ó%ô$ó÷2ð 2r    r   c                  ó@   ‡ — e Zd ZdZddˆ fd„Zdd„Zdd„Zˆ fd„Zˆ xZS )	r   zA writable zip file.c                ód   •— t         ‰| �  «        t        j                  |«      | _        || _        y r   )r2   r$   r3   r4   r5   r   r:   s      €r   r$   zWriteZipFS.__init__¼   s$   ø€ Ü‰ÑÔÜ—Y‘Y˜t“_ˆŒ
Ø ˆ�r    c                ó"   — d| j                   ›d�S )NzWriteZipFS(r=   r>   r?   s    r   r@   zWriteZipFS.__repr__Á   s   € Ø˜TŸZ™Z˜N¨!Ð,Ð,r    c                ó"   — d| j                   › d�S )Nz<zipfs-write 'rB   r>   r?   s    r   rC   zWriteZipFS.__str__Ä   s   € Ø §
¡
˜|¨2Ð.Ð.r    c                ó(  •— t         j                  j                  | j                  «      d   }t	        j
                  |d| j                  ¬«       | j                  |dz   k7  r#t	        j                  |dz   | j                  «       t        ‰| �%  «        y )Nr   Úzip)ÚformatÚroot_dirz.zip)
r3   rH   Úsplitextr5   ÚshutilÚmake_archiveÚ	_temp_dirÚmover2   rU   )r#   Ú	base_namer;   s     €r   rU   zWriteZipFS.closeÇ   sg   ø€ Ü—G‘G×$Ñ$ T§Z¡ZÓ0°Ñ3ˆ	Ü×Ñ˜I¨e¸d¿n¹nÕMØ�:‰:˜ VÑ+Ò+Ü�K‰K˜	 FÑ*¨D¯J©JÔ7Ü‰‰�r    r˜   r™   rš   )	r)   r*   r+   r,   r$   r@   rC   rU   rŸ   r    s   @r   r   r   ¹   s   ø„ Ùö!ó
-ó/÷ð r    r   )"Ú
__future__r   r“   r3   rª   r_   r-   r6   r   Ú_baser   Ú_errorsr   r   r	   Ú_infor
   Ú_pathr   r   r   r   Ú_tempfsr   r.   Úcollections.abcr   r   r   Ú_subfsr   r   r   r   r"   r    r   ú<module>r·      sk   ðÝ "ã 	Û 	Û Û Û Û Ý å ß EÑ EÝ ß 7Ó 7Ý à	×ÒÝ*ßåôˆBô ô&K2�ô K2ô\�õ r    