§
    {Ø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j        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#dS )é    )Ú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/d0d„Zd1d„Zd1d„Zd1d„Z	d2d„Z
d3d4d„Zd,d5d„Zd,d5d„Zd6d7d"„Zd8d#„Zd8d$„Zd8d%„Zd,d9d(„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`.
    FÚrootústr | PathLikeÚcreateÚboolc                ó,  •— t          ¦   «                              ¦   «          t          |¦  «                             ¦   «         | _        |r| j                             dd¬¦  «         d S | j                             ¦   «         st          d|›d�¦  «        ‚d S )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   )Úselfr   r   Ú	__class__s      €ú”/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/fontTools/misc/filesystem/_osfs.pyr"   zOSFS.__init__)   s›   ø€ Ý‰Œ×ÒÑÔÐÝ˜$‘Z”Z×'Ò'Ñ)Ô)ˆŒ
Øð 	ØŒJ×Ò T°DÐÑ9Ô9Ð9Ð9Ð9à”:×$Ò$Ñ&Ô&ð Ý"Ø[¨dÐ[Ð[Ð[ñô ð ðð ó    Úrel_pathÚstrÚreturnr   c                óÞ   — |                       ¦   «          | j        |                     d¦  «        z                       ¦   «         }|                     | j        ¦  «        st          |¦  «        ‚|S )Nú/)Úcheckr$   Ústripr#   Úis_relative_tor   )r'   r+   Úabs_paths      r)   Ú_absz	OSFS._abs4   s`   € Ø�
Š
‰ŒˆØ”J §¢°Ñ!4Ô!4Ñ4×=Ò=Ñ?Ô?ˆð ×&Ò& t¤zÑ2Ô2ð 	1Ý& xÑ0Ô0Ð0Øˆr*   ÚrbÚpathÚmodeúIO[Any]c                ó†   — 	  |                       |¦  «        j        |fi |¤ŽS # t          $ r t          d|›�¦  «        ‚w xY w)NúNo such file or directory: )r4   ÚopenÚFileNotFoundErrorr   )r'   r6   r7   Úkwargss       r)   r;   z	OSFS.openA   sc   € ð	KØ'�4—9’9˜T‘?”?Ô'¨Ð7Ð7°Ð7Ð7Ð7øÝ ð 	Kð 	Kð 	KÝ"Ð#IÀÐ#IÐ#IÑJÔJÐJð	Køøøs	   ‚ # £A c                óP   — |                       |¦  «                             ¦   «         S ©N)r4   Úexists©r'   r6   s     r)   r@   zOSFS.existsG   ó   € Ø�yŠy˜‰Œ×%Ò%Ñ'Ô'Ð'r*   c                óP   — |                       |¦  «                             ¦   «         S r?   )r4   r&   rA   s     r)   Úisdirz
OSFS.isdirJ   rB   r*   c                óP   — |                       |¦  «                             ¦   «         S r?   )r4   Úis_filerA   s     r)   ÚisfilezOSFS.isfileM   s   € Ø�yŠy˜‰Œ×&Ò&Ñ(Ô(Ð(r*   ú	list[str]c                ód   — d„ |                       |¦  «                             ¦   «         D ¦   «         S )Nc                ó   — g | ]	}|j         ‘Œ
S © )Úname)Ú.0Úps     r)   ú
<listcomp>z OSFS.listdir.<locals>.<listcomp>Q   s   € Ð:Ð:Ð:˜1�”Ð:Ð:Ð:r*   )r4   ÚiterdirrA   s     r)   ÚlistdirzOSFS.listdirP   s,   € Ø:Ð: §	¢	¨$¡¤× 7Ò 7Ñ 9Ô 9Ð:Ñ:Ô:Ð:r*   r   r    r   c                ó€   — |                       |¦  «                             ||¬¦  «         |                      |¦  «        S )Nr   )r4   r%   Úopendir)r'   r6   r   r    s       r)   Ú_mkdirzOSFS._mkdirS   s7   € Ø�	Š	�$‰Œ×Ò g¸ÐÑAÔAÐAØ�|Š|˜DÑ!Ô!Ð!r*   Úrecreatec                ó2   — |                       |d|¬¦  «        S )NFr   ©rT   ©r'   r6   rU   s      r)   ÚmakedirzOSFS.makedirW   s   € Ø�{Š{˜4¨¸ˆ{ÑBÔBÐBr*   c                ó2   — |                       |d|¬¦  «        S )NTr   rW   rX   s      r)   ÚmakedirszOSFS.makedirsZ   s   € Ø�{Š{˜4¨¸ˆ{ÑAÔAÐAr*   NÚ
namespacesúCollection[str] | Noner   c           	     óÒ  — |                       |¦  «        }|                     ¦   «         st          dt          |¦  «        ›�¦  «        ‚d|j        |                     ¦   «         dœi}|pd}d|v rk|                     ¦   «         }|j        |j        |j	        t          j
        |j        ¦  «        t          |dd ¦  «        dœx}|d<   t          rdnd	}|j        ||<   t          |¦  «        S )
Nr:   Úbasic)rL   r&   rK   ÚdetailsÚst_birthtime)ÚaccessedÚmodifiedÚsizeÚtypeÚcreatedrf   Úmetadata_changed)r4   r@   r   r,   rL   r&   ÚstatÚst_atimeÚst_mtimeÚst_sizeÚS_IFMTÚst_modeÚgetattrÚ_WINDOWS_PLATFORMÚst_ctimer   )r'   r6   r\   ÚinfoÚstat_resultr`   Ú	ctime_keys          r)   ÚgetinfozOSFS.getinfo]   sù   € Ø�yŠy˜‰ŒˆØ�{Š{‰}Œ}ð 	PÝ"Ð#NÅÀTÁÄÐ#NÐ#NÑOÔOÐOàØœ	ØŸ+š+™-œ-ðð ð
ˆð  Ð% 2ˆ
Ø˜
Ð"Ð"ØŸ)š)™+œ+ˆKà'Ô0Ø'Ô0Ø#Ô+Ýœ KÔ$7Ñ8Ô8Ý" ;°ÀÑEÔEð)ð )ð ˆG�d˜9‘oõ &7ÐN˜	˜	Ð<NˆIØ!,Ô!5ˆG�IÑÝ�D‰zŒzÐr*   c                óz  — |                       |¦  «        }	 |                     ¦   «          d S # t          $ r  t          dt	          |¦  «        ›�¦  «        ‚t
          $ r[}|                     ¦   «         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 ú: )	r4   Úunlinkr<   r   r,   ÚOSErrorr&   r   r   ©r'   r6   Úes      r)   ÚremovezOSFS.removeu   sÓ   € Ø�yŠy˜‰Œˆð	LØ�KŠK‰MŒMˆMˆMˆMøÝ ð 	Pð 	Pð 	PÝ"Ð#NÅÀTÁÄÐ#NÐ#NÑOÔOÐOÝð 	Lð 	Lð 	LØ�{Š{‰}Œ}ð LÝ"Ð#I­3¨t©9¬9Ð#IÐ#IÐ#IÑJÔJÐJå#Ð$J½¸D¹	¼	Ð$JÐ$JÀqÐ$JÐ$JÑKÔKÐKøøøøð		Løøøs   —- ­2B:ÁAB5Â5B:c                ó*  — 	 |                       |¦  «                             ¦   «          d S # t          $ r t          d|›d�¦  «        ‚t          $ rA}|j        t
          j        k    rt          d|›�¦  «        ‚t          d|›d|› �¦  «        ‚d }~ww xY w)Nrv   ú should be a directoryzDirectory not empty: rw   rx   )	r4   ÚrmdirÚNotADirectoryErrorr	   rz   ÚerrnoÚ	ENOTEMPTYr
   r   r{   s      r)   Ú	removedirzOSFS.removedir�   sÁ   € ð	GØ�IŠI�d‰OŒO×!Ò!Ñ#Ô#Ð#Ð#Ð#øÝ!ð 	Lð 	Lð 	LÝ#Ð$J¨DÐ$JÐ$JÐ$JÑKÔKÐKÝð 	Gð 	Gð 	GØŒw�%œ/Ò)Ð)Ý'Ð(HÀÐ(HÐ(HÑIÔIÐIå#Ð$E¸Ð$EÐ$EÀ!Ð$EÐ$EÑFÔFÐFøøøøð		Gøøøs   ‚'+ «&BÁ<BÂBc                óT   — t          j        |                      |¦  «        ¦  «         d S r?   )ÚshutilÚrmtreer4   rA   s     r)   Ú
removetreezOSFS.removetreeŒ   s"   € ÝŒ�d—i’i ‘o”oÑ&Ô&Ð&Ð&Ð&r*   Úsrc_dirÚdst_dirc                ó  — t          ||¦  «        rt          d|›d|›�¦  «        ‚|                      |¦  «        }|                     ¦   «         st	          d|›d�¦  «        ‚|                     ¦   «         st          d|›d�¦  «        ‚|                      |¦  «        }|s'|                     ¦   «         st	          d|›d�¦  «        ‚|                     ¦   «         rt          d|›d�¦  «        ‚|r|j         	                    dd¬¦  «         |                     ¦   «         rOt          |                     ¦   «         ¦  «        rt          d|›d	�¦  «        ‚t          r|                     ¦   «          |                     |¦  «         d S )
Nzcannot move z to zSource z does not existr   zDestination Tr   z is not empty)r   r   r4   r@   r   r&   r	   rF   Úparentr%   ÚlistrP   r
   ro   r€   Úrename)r'   r‰   rŠ   r   Úsrc_pathÚdst_paths         r)   ÚmovedirzOSFS.movedir�   s±  € Ý�'˜7Ñ#Ô#ð 	PÝ$Ð%N°GÐ%NÐ%NÀ7Ð%NÐ%NÑOÔOÐOØ—9’9˜WÑ%Ô%ˆØ�ŠÑ Ô ð 	QÝ"Ð#G¨WÐ#GÐ#GÐ#GÑHÔHÐHØ—’Ñ"Ô"ð 	QÝ#Ð$O¨gÐ$OÐ$OÐ$OÑPÔPÐPØ—9’9˜WÑ%Ô%ˆØð 	N˜hŸošoÑ/Ô/ð 	NÝ"Ð#L°'Ð#LÐ#LÐ#LÑMÔMÐMØ×ÒÑÔð 	VÝ#Ð$T°7Ð$TÐ$TÐ$TÑUÔUÐUØð 	?ØŒO×!Ò!¨$¸Ð!Ñ>Ô>Ð>Ø�?Š?ÑÔð 	!Ý�H×$Ò$Ñ&Ô&Ñ'Ô'ð !Ý'Ð(O°wÐ(OÐ(OÐ(OÑPÔPÐPÝ"ð !ð —’Ñ Ô Ð Ø�Š˜Ñ!Ô!Ð!Ð!Ð!r*   c                óF   — t          |                      |¦  «        ¦  «        S r?   )r,   r4   rA   s     r)   Ú
getsyspathzOSFS.getsyspath§   s   € Ý�4—9’9˜T‘?”?Ñ#Ô#Ð#r*   c                óJ   — | j         j        › dt          | j        ¦  «        ›d�S )Nú(ú))r(   Ú__name__r,   r$   ©r'   s    r)   Ú__repr__zOSFS.__repr__ª   s&   € Ø”.Ô)Ð@Ð@­C°´
©O¬OÐ@Ð@Ð@Ð@r*   c                óV   — d| j         j                             ¦   «         › d| j        › d�S )Nú<z 'z'>)r(   r—   Úlowerr$   r˜   s    r)   Ú__str__zOSFS.__str__­   s.   € ØD�4”>Ô*×0Ò0Ñ2Ô2ÐDÐD°d´jÐDÐDÐDÐDr*   )F)r   r   r   r   )r+   r,   r-   r   )r5   )r6   r,   r7   r,   r-   r8   )r6   r,   r-   r   )r6   r,   r-   rH   )FF)r6   r,   r   r   r    r   r-   r   )r6   r,   rU   r   r-   r   r?   )r6   r,   r\   r]   r-   r   )r6   r,   )r‰   r,   rŠ   r,   r   r   )r6   r,   r-   r,   )r-   r,   )r—   Ú
__module__Ú__qualname__Ú__doc__r"   r4   r;   r@   rD   rG   rQ   rT   rY   r[   rt   r}   r„   rˆ   r‘   r“   r™   r�   Ú__classcell__)r(   s   @r)   r   r   #   sá  ø€ € € € € ðð ð
	ð 	ð 	ð 	ð 	ð 	ð 	ðð ð ð ðKð Kð Kð Kð Kð(ð (ð (ð (ð(ð (ð (ð (ð)ð )ð )ð )ð;ð ;ð ;ð ;ð"ð "ð "ð "ð "ðCð Cð Cð Cð CðBð Bð Bð Bð Bðð ð ð ð ð0
Lð 
Lð 
Lð 
Lð	Gð 	Gð 	Gð 	Gð'ð 'ð 'ð 'ð"ð "ð "ð "ð "ð0$ð $ð $ð $ðAð Að Að AðEð Eð Eð Eð Eð Eð Eð Er*   r   )$Ú
__future__r   r‚   Úplatformr†   rh   ÚtypingÚosr   Úpathlibr   Ú_baser   Ú_errorsr   r	   r
   r   r   r   r   r   Ú_infor   Ú_pathr   ÚTYPE_CHECKINGÚcollections.abcr   r   r   Ú_subfsr   Úsystemro   r   rK   r*   r)   ú<module>r¯      sª  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø €€€Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à	Ôð Ø*Ð*Ð*Ð*Ð*Ð*ØÐÐÐÐÐÐÐàÐÐÐÐÐð $�H”OÑ%Ô%¨Ò2Ð ðKEð KEð KEð KEð KEˆ2ñ KEô KEð KEð KEð KEr*   