Ë
    ÚÍ:jª  ã                  óÖ   — d dl mZ d dlZd dlmZmZ ddlmZmZ ddl	m
Z
mZmZmZmZmZ ddlmZ ddlmZ ej(                  rd d	lmZmZmZmZmZmZ dd
lmZ ddlmZ  G d„ de«      Zy)é    )ÚannotationsN)ÚABCÚabstractmethodé   )Úcopy_dirÚ	copy_file)ÚDestinationExistsÚDirectoryExpectedÚFileExpectedÚFilesystemClosedÚ	NoSysPathÚResourceNotFound)Údirname©ÚBoundWalker)ÚIOÚAnyÚ
CollectionÚIteratorÚSelfÚType)ÚInfo©ÚSubFSc                  ó�  — e Zd ZU dZdZded<   ed!d"d„«       Zed#d„«       Zed#d„«       Z	ed#d„«       Z
ed$d	„«       Zed%d&d
„«       Zed%d&d„«       Zed'd(d„«       Zed)d„«       Zed)d„«       Zed)d„«       Zed%d*d„«       Zd+d„Zd„ Zd,d„Zd-d„Zd„ Zd„ Zddœd.d„Z	 d'	 	 	 	 	 d/d„Zed0d„«       Zd1d„Zd2d„Zd%d3d„Zd%d4d„Z d%d4d „Z!y)5ÚFSz+Abstract base class for custom filesystems.FÚboolÚ_closedc                 ó   — y ©N© )ÚselfÚpathÚmodeÚkwargss       út/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/fontTools/misc/filesystem/_base.pyÚopenzFS.open   s   € ØFIó    c                 ó   — y r    r!   ©r"   r#   s     r&   Úexistsz	FS.exists!   ó   € Ø),r(   c                 ó   — y r    r!   r*   s     r&   ÚisdirzFS.isdir$   s   € Ø(+r(   c                 ó   — y r    r!   r*   s     r&   Úisfilez	FS.isfile'   r,   r(   c                 ó   — y r    r!   r*   s     r&   Úlistdirz
FS.listdir*   s   € Ø/2r(   c                 ó   — y r    r!   ©r"   r#   Úrecreates      r&   Úmakedirz
FS.makedir-   s   € ØCFr(   c                 ó   — y r    r!   r4   s      r&   ÚmakedirszFS.makedirs0   s   € ØDGr(   Nc                 ó   — y r    r!   ©r"   r#   Ú
namespacess      r&   Úgetinfoz
FS.getinfo3   s   € ØUXr(   c                 ó   — y r    r!   r*   s     r&   Úremovez	FS.remove6   r,   r(   c                 ó   — y r    r!   r*   s     r&   Ú	removedirzFS.removedir9   s   € Ø,/r(   c                 ó   — y r    r!   r*   s     r&   Ú
removetreezFS.removetree<   s   € Ø-0r(   c                 ó   — y r    r!   )r"   ÚsrcÚdstÚcreates       r&   Úmovedirz
FS.movedir?   s   € ØILr(   c                ó    — t        d| ›d�«      ‚)Núthe filesystem z has no system path)r   r*   s     r&   Ú
getsyspathzFS.getsyspathB   s   € Ü˜/¨$¨Ð1DÐEÓFÐFr(   c                ó   — d| _         y )NT©r   ©r"   s    r&   ÚclosezFS.closeE   s	   € Øˆ�r(   c                ó   — | j                   S r    rL   rM   s    r&   ÚisclosedzFS.isclosedH   s   € Ø�|‰|Ðr(   c                ó   — | S r    r!   rM   s    r&   Ú	__enter__zFS.__enter__K   s   € Øˆr(   c                ó$   — | j                  «        y)NF)rN   )r"   Úexc_typeÚexcÚtbs       r&   Ú__exit__zFS.__exit__N   s   € Ø�
‰
ŒØr(   c                ó:   — | j                   rt        d| ›d�«      ‚y )NrI   z
 is closed)r   r   rM   s    r&   ÚcheckzFS.checkR   s"   € Ø�<Š<Ü" _°T°H¸JÐ#GÓHÐHð r(   )Úfactoryc               ó(   — |€ddl m} |} || |«      S )u+   Return a subâ€‘filesystem rooted at `path`.r   r   )Ú_subfsr   )r"   r#   rZ   r   s       r&   Úopendirz
FS.opendirV   s   € àˆ?Ý%àˆGÙ�t˜TÓ"Ð"r(   c                ó@   ‡ ‡‡— ˆˆˆ fd„‰ j                  ‰«      D «       S )Nc              3  óL   •K  — | ]  }‰j                  ‰› d |› �‰«      –— Œ y­w)ú/N)r<   )Ú.0Úpr;   r#   r"   s     €€€r&   ú	<genexpr>zFS.scandir.<locals>.<genexpr>a   s&   øè ø€ ÒT¸A�—‘ ˜v Q q c˜]¨J×7ÑTùs   ƒ!$)r2   r:   s   ```r&   Úscandirz
FS.scandir^   s   ú€ õ UÀÇÁÈdÓASÔTÐTr(   c                ó   — t        | «      S r    r   rM   s    r&   ÚwalkzFS.walkc   s   € ä˜4Ó Ð r(   c                ór   — | j                  |d«      5 }|j                  «       cd d d «       S # 1 sw Y   y xY w)NÚrb)r'   Úread)r"   r#   Úfs      r&   Ú	readbyteszFS.readbytesg   s0   € Ø�Y‰Y�t˜TÓ"ð 	 aØ—6‘6“8÷	÷ 	ò 	ús   “-­6c                ót   — | j                  |d«      5 }|j                  |«       d d d «       y # 1 sw Y   y xY w)NÚwb)r'   Úwrite)r"   r#   Údatarj   s       r&   Ú
writebyteszFS.writebytesk   s2   € Ø�Y‰Y�t˜TÓ"ð 	 aØ�G‰G�DŒM÷	÷ 	ñ 	ús   “.®7c                ó|   — |s| j                  |«      ry| j                  |d«      5  	 d d d «       y# 1 sw Y   yxY w)NFrm   T)r+   r'   )r"   r#   Úwipes      r&   rF   z	FS.createo   s:   € Ù˜Ÿ™ DÔ)ØØ�Y‰Y�t˜TÓ"ñ 	Ø÷	à÷	àús   §2²;c                óF  — | j                  |«      st        |›d�«      ‚| j                  |«      st        d|›d�«      ‚|s | j                  |«      rt	        d|›d�«      ‚| j                  t        |«      «      st        dt        |«      ›d�«      ‚t        | || |«       y )Nú does not existúpath z should be a filezdestination z already existsú should be a directory)	r+   r   r0   r   r	   r.   r   r
   r   )r"   Úsrc_pathÚdst_pathÚ	overwrites       r&   ÚcopyzFS.copyv   s�   € Ø�{‰{˜8Ô$Ü" h \°Ð#AÓBÐBØ—‘˜XÔ&Ü  x lÐ2CÐDÓEÐEÙ˜TŸ[™[¨Ô2Ü# l°8°,¸oÐ$NÓOÐOØ�z‰zœ' (Ó+Ô,Ü# e¬G°HÓ,=Ð+@Ð@VÐ$WÓXÐXÜ�$˜ $¨Õ1r(   c                ó¢   — |s| j                  |«      st        |›d�«      ‚| j                  |«      st        d|›d�«      ‚t	        | || |«       y )Nrt   ru   rv   )r+   r   r.   r
   r   )r"   rw   rx   rF   s       r&   Úcopydirz
FS.copydir�   sQ   € Ù˜dŸk™k¨(Ô3Ü" h \°Ð#AÓBÐBØ�z‰z˜(Ô#Ü# e¨H¨<Ð7MÐ$NÓOÐOÜ��x  xÕ0r(   )rh   )r#   Ústrr$   r}   ÚreturnzIO[Any])r#   r}   r~   r   )r#   r}   r~   z	list[str])F)r#   r}   r5   r   r~   r   r    )r#   r}   r;   úCollection[str] | Noner~   r   )r#   r}   r~   ÚNone)rD   r}   rE   r}   rF   r   r~   r€   )r#   r}   r~   r}   )r~   r   )r~   r   )r#   r}   rZ   zType[SubFS] | Noner~   r   )r#   r}   r;   r   r~   zIterator[Info])r~   r   )r#   r}   r~   Úbytes)r#   r}   ro   r�   )r#   r}   rr   r   )rw   r}   rx   r}   )"Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   r'   r+   r.   r0   r2   r6   r8   r<   r>   r@   rB   rG   rJ   rN   rP   rR   rW   rY   r]   rd   Úpropertyrf   rk   rp   rF   rz   r|   r!   r(   r&   r   r      s7  … Ù5à€GˆTÓàÛIó ØIàÚ,ó Ø,àÚ+ó Ø+àÚ,ó Ø,àÚ2ó Ø2àÛFó ØFàÛGó ØGàÛXó ØXàÚ,ó Ø,àÚ/ó Ø/àÚ0ó Ø0àÛLó ØLóGòóóòòIð CGõ #ð ?CðUØðUØ%;ðUà	óUð
 ò!ó ð!óóôô	2õ1r(   r   ) Ú
__future__r   ÚtypingÚabcr   r   Ú_copyr   r   Ú_errorsr	   r
   r   r   r   r   Ú_pathr   Ú_walkr   ÚTYPE_CHECKINGr   r   r   r   r   r   Ú_infor   r\   r   r   r!   r(   r&   ú<module>r‘      sF   ðÝ "ã ß #ç &÷÷ õ Ý à	×Òß@×@åÝôm1ˆõ m1r(   