Ë
    ÚÍ:ji  ã                  ó  — 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mZ d dl	m
Z
 ddlmZ ddlmZmZmZmZmZmZmZ ddlmZ dd	lmZ ej2                  rd d
lmZ d dlmZmZ ddlmZ  ej@                  «       dk(  Z! G d„ de«      Z"y)é    )ÚannotationsN)ÚPathLike)ÚPathé   )ÚFS)ÚCreateFailedÚDirectoryExpectedÚDirectoryNotEmptyÚFileExpectedÚIllegalDestinationÚResourceErrorÚResourceNotFound)ÚInfo)Úisbase)Ú
Collection)ÚIOÚAny)ÚSubFSÚWindowsc                  óº   ‡ — e Zd ZdZddˆ fd„Zd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d„Zddd„Zd d„Zd d„Zd d„Zdd!d„Zd"d„Zd#d„Zd#d„Zˆ xZS )$ÚOSFSz^Filesystem for a directory on the local disk.

    A thin layer on top of `pathlib.Path`.
    c                óð   •— t         ‰| �  «        t        |«      j                  «       | _        |r| j                  j                  dd¬«       y | j                  j                  «       st        d|›d�«      ‚y )NT©ÚparentsÚexist_okzunable to create OSFS: z% does not exist or is not a directory)ÚsuperÚ__init__r   ÚresolveÚ_rootÚmkdirÚis_dirr   )ÚselfÚrootÚcreateÚ	__class__s      €út/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/fontTools/misc/filesystem/_osfs.pyr   zOSFS.__init__(   sk   ø€ Ü‰ÑÔÜ˜$“Z×'Ñ'Ó)ˆŒ
ÙØ�J‰J×Ñ T°DÐÕ9à—:‘:×$Ñ$Ô&Ü"Ø-¨d¨XÐ5ZÐ[óð ð 'ó    c                óz   — | j                  «        | j                  |j                  d«      z  j                  «       S )Nú/)Úcheckr   Ústripr   )r"   Úrel_paths     r&   Ú_absz	OSFS._abs3   s,   € Ø�
‰
ŒØ—
‘
˜XŸ^™^¨CÓ0Ñ0×9Ñ9Ó;Ð;r'   c                ó~   — 	  | j                  |«      j                  |fi |¤ŽS # t        $ r t        d|›�«      ‚w xY w)NúNo such file or directory: )r-   ÚopenÚFileNotFoundErrorr   )r"   ÚpathÚmodeÚkwargss       r&   r0   z	OSFS.open7   sL   € ð	KØ'�4—9‘9˜T“?×'Ñ'¨Ñ7°Ñ7Ð7øÜ ò 	KÜ"Ð%@ÀÀÐ#IÓJÐJð	Kús   ‚!$ ¤<c                ó@   — | j                  |«      j                  «       S ©N)r-   Úexists©r"   r2   s     r&   r7   zOSFS.exists=   ó   € Ø�y‰y˜‹×%Ñ%Ó'Ð'r'   c                ó@   — | j                  |«      j                  «       S r6   )r-   r!   r8   s     r&   Úisdirz
OSFS.isdir@   r9   r'   c                ó@   — | j                  |«      j                  «       S r6   )r-   Úis_filer8   s     r&   ÚisfilezOSFS.isfileC   s   € Ø�y‰y˜‹×&Ñ&Ó(Ð(r'   c                óz   — | j                  |«      j                  «       D �cg c]  }|j                  ‘Œ c}S c c}w r6   )r-   ÚiterdirÚname)r"   r2   Úps      r&   ÚlistdirzOSFS.listdirF   s+   € Ø $§	¡	¨$£× 7Ñ 7Ó 9Ö:˜1�—“Ò:Ð:ùÒ:s   ¢8c                óh   — | j                  |«      j                  ||¬«       | j                  |«      S )Nr   )r-   r    Úopendir)r"   r2   r   r   s       r&   Ú_mkdirzOSFS._mkdirI   s,   € Ø�	‰	�$‹×Ñ g¸ÐÔAØ�|‰|˜DÓ!Ð!r'   c                ó*   — | j                  |d|¬«      S )NFr   ©rF   ©r"   r2   Úrecreates      r&   ÚmakedirzOSFS.makedirM   s   € Ø�{‰{˜4¨¸ˆ{ÓBÐBr'   c                ó*   — | j                  |d|¬«      S )NTr   rH   rI   s      r&   ÚmakedirszOSFS.makedirsP   s   € Ø�{‰{˜4¨¸ˆ{ÓAÐAr'   c           	     óÒ  — | j                  |«      }|j                  «       st        dt        |«      ›�«      ‚d|j                  |j                  «       dœi}|xs d}d|v r||j                  «       }|j                  |j                  |j                  t        j                  |j                  «      t        |dd «      dœx}|d<   t        rdnd	}|j                  ||<   t        |«      S )
Nr/   Úbasic)rA   r!   © ÚdetailsÚst_birthtime)ÚaccessedÚmodifiedÚsizeÚtypeÚcreatedrW   Úmetadata_changed)r-   r7   r   ÚstrrA   r!   ÚstatÚst_atimeÚst_mtimeÚst_sizeÚS_IFMTÚst_modeÚgetattrÚ_WINDOWS_PLATFORMÚst_ctimer   )r"   r2   Ú
namespacesÚinfoÚstat_resultrQ   Ú	ctime_keys          r&   ÚgetinfozOSFS.getinfoS   sÞ   € Ø�y‰y˜‹ˆØ�{‰{Œ}Ü"Ð%@ÄÀTÃÀÐ#NÓOÐOàØŸ	™	ØŸ+™+›-ñð
ˆð  Ò% 2ˆ
Ø˜
Ñ"ØŸ)™)›+ˆKà'×0Ñ0Ø'×0Ñ0Ø#×+Ñ+ÜŸ™ K×$7Ñ$7Ó8Ü" ;°ÀÓEñ)ð ˆG�d˜9‘oõ &7™	Ð<NˆIØ!,×!5Ñ!5ˆG�IÑÜ�D‹zÐr'   c                ó,  — | j                  |«      }	 |j                  «        y # t        $ r t        dt	        |«      ›�«      ‚t
        $ rG}|j                  «       rt        dt	        |«      ›d�«      ‚t        dt	        |«      ›d|› �«      ‚d }~ww xY w)Nr/   úpath z should be a fileúunable to remove ú: )	r-   Úunlinkr1   r   rY   ÚOSErrorr!   r   r   ©r"   r2   Úes      r&   ÚremovezOSFS.removek   s�   € Ø�y‰y˜‹ˆð	LØ�K‰K�MøÜ ò 	PÜ"Ð%@ÄÀTÃÀÐ#NÓOÐOÜò 	LØ�{‰{Œ}Ü" U¬3¨t«9¨-Ð7HÐ#IÓJÐJä#Ð&7¼¸D»	°}ÀBÀqÀcÐ$JÓKÐKûð		Lús   “$ ¤(BÁABÂBc                ó  — 	 | j                  |«      j                  «        y # t        $ r t        d|›d�«      ‚t        $ rA}|j
                  t
        j                  k(  rt        d|›�«      ‚t        d|›d|› �«      ‚d }~ww xY w)Nri   ú should be a directoryzDirectory not empty: rj   rk   )	r-   ÚrmdirÚNotADirectoryErrorr	   rm   ÚerrnoÚ	ENOTEMPTYr
   r   rn   s      r&   Ú	removedirzOSFS.removedirw   sˆ   € ð	GØ�I‰I�d‹O×!Ñ!Õ#øÜ!ò 	LÜ# e¨D¨8Ð3IÐ$JÓKÐKÜò 	GØ�w‰wœ%Ÿ/™/Ò)Ü'Ð*?À¸xÐ(HÓIÐIä#Ð&7¸°x¸rÀ!ÀÐ$EÓFÐFûð		Gús   ‚" ¢ BÁ<A>Á>Bc                óL   — t        j                  | j                  |«      «       y r6   )ÚshutilÚrmtreer-   r8   s     r&   Ú
removetreezOSFS.removetree‚   s   € Ü�‰�d—i‘i “oÕ&r'   c                óz  — t        ||«      rt        d|›d|›�«      ‚| j                  |«      }|j                  «       st	        d|›d�«      ‚|j                  «       st        d|›d�«      ‚| j                  |«      }|s|j                  «       st	        d|›d�«      ‚|j                  «       rt        d|›d�«      ‚|r|j                  j                  dd¬«       |j                  «       r>t        |j                  «       «      rt        d|›d	�«      ‚t        r|j                  «        |j                  |«       y )
Nzcannot move z to zSource z does not existrr   zDestination Tr   z is not empty)r   r   r-   r7   r   r!   r	   r=   Úparentr    Úlistr@   r
   ra   rs   Úrename)r"   Úsrc_dirÚdst_dirr$   Úsrc_pathÚdst_paths         r&   ÚmovedirzOSFS.movedir…   s"  € Ü�'˜7Ô#Ü$ |°G°;¸dÀ7À+Ð%NÓOÐOØ—9‘9˜WÓ%ˆØ�‰Ô Ü" W¨W¨K°Ð#GÓHÐHØ—‘Ô"Ü# g¨g¨[Ð8NÐ$OÓPÐPØ—9‘9˜WÓ%ˆÙ˜hŸo™oÔ/Ü" \°'°¸OÐ#LÓMÐMØ×ÑÔÜ# l°7°+Ð=SÐ$TÓUÐUÙØ�O‰O×!Ñ!¨$¸Ð!Ô>Ø�?‰?ÔÜ�H×$Ñ$Ó&Ô'Ü'¨,°w°kÀÐ(OÓPÐPÝ"ð —‘Ô Ø�‰˜Õ!r'   c                ó6   — t        | j                  |«      «      S r6   )rY   r-   r8   s     r&   Ú
getsyspathzOSFS.getsyspath�   s   € Ü�4—9‘9˜T“?Ó#Ð#r'   c                ó`   — | j                   j                  › dt        | j                  «      ›d�S )Nú(ú))r%   Ú__name__rY   r   ©r"   s    r&   Ú__repr__zOSFS.__repr__    s)   € Ø—.‘.×)Ñ)Ð*¨!¬C°·
±
«OÐ+>¸aÐ@Ð@r'   c                ól   — d| j                   j                  j                  «       › d| j                  › d�S )Nú<z 'z'>)r%   rŠ   Úlowerr   r‹   s    r&   Ú__str__zOSFS.__str__£   s/   € Ø�4—>‘>×*Ñ*×0Ñ0Ó2Ð3°2°d·j±j°\ÀÐDÐDr'   )F)r#   zstr | PathLiker$   Úbool)r,   rY   Úreturnr   )Úrb)r2   rY   r3   rY   r’   zIO[Any])r2   rY   r’   r‘   )r2   rY   r’   z	list[str])FF)r2   rY   r   r‘   r   r‘   r’   r   )r2   rY   rJ   r‘   r’   r   r6   )r2   rY   rc   zCollection[str] | Noner’   r   )r2   rY   )r€   rY   r�   rY   r$   r‘   )r2   rY   r’   rY   )r’   rY   )rŠ   Ú
__module__Ú__qualname__Ú__doc__r   r-   r0   r7   r;   r>   rC   rF   rK   rM   rg   rp   rw   r{   r„   r†   rŒ   r�   Ú__classcell__)r%   s   @r&   r   r   "   si   ø„ ñö
	ó<ôKó(ó(ó)ó;ô"ôCôBôó0
Ló	Gó'ô"ó0$óA÷Er'   r   )#Ú
__future__r   ru   Úplatformry   rZ   ÚtypingÚosr   Úpathlibr   Ú_baser   Ú_errorsr   r	   r
   r   r   r   r   Ú_infor   Ú_pathr   ÚTYPE_CHECKINGÚcollections.abcr   r   r   Ú_subfsr   Úsystemra   r   rP   r'   r&   ú<module>r¥      so   ðÝ "ã Û Û Û Û Ý Ý å ÷÷ ñ õ Ý à	×ÒÝ*ßåð $�H—O‘OÓ%¨Ñ2Ð ôBEˆ2õ BEr'   