+
    f7i  c                  s    ^ RI Ht ^ RIt^ RIHtHt ^RIHtHt ^RI	H
t
HtHtHtHtHt ^RIHt ^RIHt ]P(                  '       d   ^ RIHtHtHtHtHtHt ^R	IHt ^R
IHt  ! R R]4      tR# )i    )annotationsN)ABCabstractmethod)copy_dir	copy_file)DestinationExistsDirectoryExpectedFileExpectedFilesystemClosed	NoSysPathResourceNotFound)dirnameBoundWalker)IOAny
CollectionIteratorSelfType)InfoSubFSc                  s   ] tR t^t$ RtRtR]R&   ]R9R R ll4       t]R R l4       t	]R	 R
 l4       t
]R R l4       t]R R l4       t]R:R R ll4       t]R:R R ll4       t]R;R R ll4       t]R R l4       t]R R l4       t]R R l4       t]R:R R ll4       tR R ltR  tR! R" ltR# R$ ltR% tR& tR'R/R( R) lltR;R* R+ llt]R, R- l4       tR. R/ ltR0 R1 ltR:R2 R3 llt R:R4 R5 llt!R:R6 R7 llt"R8t#R# )<FSz+Abstract base class for custom filesystems.Fbool_closedc               s$    V ^8  d   QhRRRRRR/# )   pathstrmodereturnzIO[Any] Zformat   "F/usr/lib64/python3.14/site-packages/fontTools/misc/filesystem/_base.py__annotate__FS.__annotate__   s    IIICIWI    c                	    R # Nr   )selfr   r   Zkwargss   &&&,r"   openZFS.open   s    FIr%   c                    V ^8  d   QhRRRR/# r   r   r   r   r   r   r    r!   r"   r#   r$   "       ,,3,4,r%   c                	r&   r'   r   r(   r      &&r"   existsZ	FS.exists!       ),r%   c               r*   r+   r   r    r!   r"   r#   r$   %   s    ++#+$+r%   c                	r&   r'   r   r-   r.   r"   isdirZFS.isdir$   s    (+r%   c               r*   r+   r   r    r!   r"   r#   r$   (   r,   r%   c                	r&   r'   r   r-   r.   r"   isfileZ	FS.isfile'   r0   r%   c               r*   )r   r   r   r   z	list[str]r   r    r!   r"   r#   r$   +   s    22C2I2r%   c                	r&   r'   r   r-   r.   r"   listdirZ
FS.listdir*   s    /2r%   c               $    V ^8  d   QhRRRRRR/# r   r   r   recreater   r   r   r   r    r!   r"   r#   r$   .   s    FFCF4FEFr%   c                	r&   r'   r   r(   r   r6      &&&r"   makedirZ
FS.makedir-   s    CFr%   c               r4   r5   r   r    r!   r"   r#   r$   1   s    GGSGDGUGr%   c                	r&   r'   r   r7   r8   r"   makedirsZFS.makedirs0   s    DGr%   Nc               r4   )r   r   r   
namespacesCollection[str] | Noner   r   r   r    r!   r"   r#   r$   4   s    XXCX-CXtXr%   c                	r&   r'   r   r(   r   r;   r8   r"   getinfoZ
FS.getinfo3   s    UXr%   c               r*   r   r   r   r   Noner   r    r!   r"   r#   r$   7   r,   r%   c                	r&   r'   r   r-   r.   r"   removeZ	FS.remove6   r0   r%   c               r*   r?   r   r    r!   r"   r#   r$   :   s    //c/d/r%   c                	r&   r'   r   r-   r.   r"   	removedirZFS.removedir9   s    ,/r%   c               r*   r?   r   r    r!   r"   r#   r$   =   s    00s0t0r%   c                	r&   r'   r   r-   r.   r"   
removetreeZFS.removetree<   s    -0r%   c               s(    V ^8  d   QhRRRRRRRR/# )r   srcr   dstcreater   r   r@   r   r    r!   r"   r#   r$   @   s    LL3LSL$L4Lr%   c                	r&   r'   r   )r(   rD   rE   rF      &&&&r"   movedirZ
FS.movedir?   s    ILr%   c                    V ^8  d   QhRRRR/# )r   r   r   r   r   r    r!   r"   r#   r$   B   s     G Gs Gs Gr%   c                	s"    \        R V : R24      h)the filesystem z has no system path)r	   r-   r.   r"   
getsyspathZFS.getsyspathB   s    /$1DEFFr%   c                	s    R V n         R# )TNr   r(      &r"   closeZFS.closeE   s	    r%   c                   V ^8  d   QhRR/# )r   r   r   r   r    r!   r"   r#   r$   H   s      $ r%   c                	s    V P                   # r'   rL   rM   rN   r"   isclosedZFS.isclosedH   s    ||r%   c               rP   )r   r   r   r   r    r!   r"   r#   r$   K   s      4 r%   c                	s    V # r'   r   rM   rN   r"   	__enter__ZFS.__enter__K   s    r%   c                	s&    V P                  4        R # F)rO   )r(   Zexc_typeZexcZtbrG   r"   __exit__ZFS.__exit__N   s    

r%   c                	sJ    V P                   '       d   \        R V : R24      hR# )rJ   z
 is closedN)r   r   rM   rN   r"   checkZFS.checkR   s$    <<<"_THJ#GHH r%   factoryc               r4   )r   r   r   rV   zType[SubFS] | Noner   r   r   r    r!   r"   r#   r$   V   s"     # #C #-? #5 #r%   c               s*    Vf	   ^RI Hp TpV! W4      # )u+   Return a sub‑filesystem rooted at `path`.r   )_subfsr   )r(   r   rV   r   s   &&$ r"   opendirZ
FS.opendirV   s    ?%Gt""r%   c               r4   )r   r   r   r;   r<   r   zIterator[Info]r   r    r!   r"   r#   r$   ^   s)     U UU%;U	Ur%   c                	sB   a aa VVV 3R  lS P                  S4       4       # )c              3  sR   <"   T F  pSP                  S R V 2S4      x  K  	  R# 5i)Z/N)r>   )Z.0Zpr;   r   r(   s   & r"   Z	<genexpr>ZFS.scandir.<locals>.<genexpr>a   s+     TASAvQqc]J77ASs   $')r3   r=   s   fffr"   scandirZ
FS.scandir^   s     UdASTTr%   c               rP   )r   r   r   r   r    r!   r"   r#   r$   d   s     ! !k !r%   c                	s    \        V 4      # r'   r   rM   rN   r"   walkZFS.walkc   s    4  r%   c               r*   )r   r   r   r   bytesr   r    r!   r"   r#   r$   g   s      c e r%   c                	s    V P                  VR 4      ;_uu_ 4       pVP                  4       uuRRR4       #   + '       g   i     R# ; i)rbN)r)   Zread)r(   r   fs   && r"   	readbytesZFS.readbytesg   s-    YYtT""a668 #"""s	   6A	c               r*   )r   r   r   datar[   r   r    r!   r"   r#   r$   k   s      s % r%   c                	s    V P                  VR 4      ;_uu_ 4       pVP                  V4       RRR4       R#   + '       g   i     R# ; i)wbN)r)   Zwrite)r(   r   r_   r]   s   &&& r"   
writebytesZFS.writebytesk   s/    YYtT""aGGDM #"""s	   7A	c               r*   )r   r   r   wiper   r   r    r!   r"   r#   r$   o   s      3 d r%   c                	s    V'       g   V P                  V4      '       d   R # V P                  VR4      ;_uu_ 4         RRR4       R#   + '       g   i     R# ; i)Fr`   NT)r/   r)   )r(   r   rb   r8   r"   rF   Z	FS.createo   s>    D))YYtT"" # #"s   AA	c               rI   r   src_pathr   dst_pathr   r    r!   r"   r#   r$   v   s     	2 	2S 	2C 	2r%   c                	s   V P                  V4      '       g   \        V: R 24      hV P                  V4      '       g   \        RV: R24      hV'       g(   V P                  V4      '       d   \	        RV: R24      hV P                  \        V4      4      '       g   \        R\        V4      : R24      h\        WW4       R# ) does not existpath z should be a filezdestination z already exists should be a directoryN)	r/   r
   r2   r   r   r1   r   r   r   )r(   rd   re   Z	overwriterG   r"   copyZFS.copyv   s    {{8$$"h\#ABBX&&xl2CDEET[[22#l8,o$NOOzz'(+,,#eGH,=+@@V$WXX$$1r%   c               rI   rc   r   r    r!   r"   r#   r$      s     1 1 1s 1r%   c                	s    V'       g'   V P                  V4      '       g   \        V: R 24      hV P                  V4      '       g   \        RV: R24      h\	        WW4       R# )rf   rg   rh   N)r/   r
   r1   r   r   )r(   rd   re   rF   rG   r"   copydirZ
FS.copydir   sS    dkk(33"h\#ABBzz(###eH<7M$NOO0r%   rL   )r\   rS   r'   )$Z__name__Z
__module__Z__qualname__Z__firstlineno__Z__doc__r   Z__annotations__r   r)   r/   r1   r2   r3   r9   r:   r>   rA   rB   rC   rH   rK   rO   rQ   rR   rT   rU   rX   rY   ZpropertyrZ   r^   ra   rF   ri   rj   Z__static_attributes__r   r%   r"   r   r      s   5GTI I, ,+ +, ,2 2F FG GX X, ,/ /0 0L LGI#$ #U
 ! !	21 1r%   r   ) Z
__future__r    ZtypingZabcr   r   Z_copyr   r   Z_errorsr   r   r   r   r	   r
   Z_pathr   Z_walkr   ZTYPE_CHECKINGr   r   r   r   r   r   Z_infor   rW   r   r   r   r%   r"   <module>rk      sI    "  # &   	@@m1 m1r%   