Ë
    ^ã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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mZ ddlmZ dd	lmZ ej4                  rd d
lmZ d dlmZmZ ddlm Z   ejB                  «       dk(  Z" G d„ de«      Z#y)é    )ÚannotationsN)ÚPathLike)ÚPathé   )ÚFS)ÚCreateFailedÚDirectoryExpectedÚDirectoryNotEmptyÚFileExpectedÚIllegalBackReferenceÚ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      €úa/var/www/html/metafoliadorv2/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                óÊ   — | j                  «        | j                  |j                  d«      z  j                  «       }|j	                  | j                  «      st        |«      ‚|S )Nú/)Úcheckr    Ústripr   Úis_relative_tor   )r#   Úrel_pathÚabs_paths      r'   Ú_absz	OSFS._abs4   sO   € Ø�
‰
ŒØ—J‘J §¡°Ó!4Ñ4×=Ñ=Ó?ˆð ×&Ñ& t§z¡zÔ2Ü& xÓ0Ð0Øˆr(   c                ó~   — 	  | j                  |«      j                  |fi |¤ŽS # t        $ r t        d|›�«      ‚w xY w)NúNo such file or directory: )r0   ÚopenÚFileNotFoundErrorr   )r#   ÚpathÚmodeÚkwargss       r'   r3   z	OSFS.openA   sL   € ð	KØ'�4—9‘9˜T“?×'Ñ'¨Ñ7°Ñ7Ð7øÜ ò 	KÜ"Ð%@ÀÀÐ#IÓJÐJð	Kús   ‚!$ ¤<c                ó@   — | j                  |«      j                  «       S ©N)r0   Úexists©r#   r5   s     r'   r:   zOSFS.existsG   ó   € Ø�y‰y˜‹×%Ñ%Ó'Ð'r(   c                ó@   — | j                  |«      j                  «       S r9   )r0   r"   r;   s     r'   Úisdirz
OSFS.isdirJ   r<   r(   c                ó@   — | j                  |«      j                  «       S r9   )r0   Úis_filer;   s     r'   ÚisfilezOSFS.isfileM   s   € Ø�y‰y˜‹×&Ñ&Ó(Ð(r(   c                óz   — | j                  |«      j                  «       D �cg c]  }|j                  ‘Œ c}S c c}w r9   )r0   ÚiterdirÚname)r#   r5   Úps      r'   ÚlistdirzOSFS.listdirP   s+   € Ø $§	¡	¨$£× 7Ñ 7Ó 9Ö:˜1�—“Ò:Ð:ùÒ:s   ¢8c                óh   — | j                  |«      j                  ||¬«       | j                  |«      S )Nr   )r0   r!   Úopendir)r#   r5   r   r   s       r'   Ú_mkdirzOSFS._mkdirS   s,   € Ø�	‰	�$‹×Ñ g¸ÐÔAØ�|‰|˜DÓ!Ð!r(   c                ó*   — | j                  |d|¬«      S )NFr   ©rI   ©r#   r5   Úrecreates      r'   ÚmakedirzOSFS.makedirW   s   € Ø�{‰{˜4¨¸ˆ{ÓBÐBr(   c                ó*   — | j                  |d|¬«      S )NTr   rK   rL   s      r'   ÚmakedirszOSFS.makedirsZ   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 )
Nr2   Úbasic)rD   r"   © ÚdetailsÚst_birthtime)ÚaccessedÚmodifiedÚsizeÚtypeÚcreatedrZ   Úmetadata_changed)r0   r:   r   ÚstrrD   r"   ÚstatÚst_atimeÚst_mtimeÚst_sizeÚS_IFMTÚst_modeÚgetattrÚ_WINDOWS_PLATFORMÚst_ctimer   )r#   r5   Ú
namespacesÚinfoÚstat_resultrT   Ú	ctime_keys          r'   ÚgetinfozOSFS.getinfo]   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)Nr2   úpath z should be a fileúunable to remove ú: )	r0   Úunlinkr4   r   r\   ÚOSErrorr"   r   r   ©r#   r5   Úes      r'   ÚremovezOSFS.removeu   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)Nrl   ú should be a directoryzDirectory not empty: rm   rn   )	r0   ÚrmdirÚNotADirectoryErrorr	   rp   ÚerrnoÚ	ENOTEMPTYr
   r   rq   s      r'   Ú	removedirzOSFS.removedir�   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 r9   )ÚshutilÚrmtreer0   r;   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 existru   zDestination Tr   z is not empty)r   r   r0   r:   r   r"   r	   r@   Úparentr!   ÚlistrC   r
   rd   rv   Ú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 r9   )r\   r0   r;   s     r'   Ú
getsyspathzOSFS.getsyspath§   s   € Ü�4—9‘9˜T“?Ó#Ð#r(   c                ó`   — | j                   j                  › dt        | j                  «      ›d�S )Nú(ú))r&   Ú__name__r\   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.   r\   Úreturnr   )Úrb)r5   r\   r6   r\   r•   zIO[Any])r5   r\   r•   r”   )r5   r\   r•   z	list[str])FF)r5   r\   r   r”   r   r”   r•   r   )r5   r\   rM   r”   r•   r   r9   )r5   r\   rf   zCollection[str] | Noner•   r   )r5   r\   )rƒ   r\   r„   r\   r%   r”   )r5   r\   r•   r\   )r•   r\   )r�   Ú
__module__Ú__qualname__Ú__doc__r   r0   r3   r:   r>   rA   rF   rI   rN   rP   rj   rs   rz   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   rx   Úplatformr|   r]   ÚtypingÚosr   Úpathlibr   Ú_baser   Ú_errorsr   r	   r
   r   r   r   r   r   Ú_infor   Ú_pathr   ÚTYPE_CHECKINGÚcollections.abcr   r   r   Ú_subfsr   Úsystemrd   r   rS   r(   r'   ú<module>r¨      so   ðÝ "ã Û Û Û Û Ý Ý å ÷	÷ 	ó 	õ Ý à	×ÒÝ*ßåð $�H—O‘OÓ%¨Ñ2Ð ôKEˆ2õ KEr(   