+
    K<i                        ^ 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# )    )annotationsN)ABCabstractmethod)copy_dir	copy_file)DestinationExistsDirectoryExpectedFileExpectedFilesystemClosed	NoSysPathResourceNotFound)dirnameBoundWalker)IOAny
CollectionIteratorSelfType)InfoSubFSc                     ] 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               $    V ^8  d   QhRRRRRR/# )   pathstrmodereturnzIO[Any] )formats   "A/usr/lib/python3/dist-packages/fontTools/misc/filesystem/_base.py__annotate__FS.__annotate__   s    IIICIWI    c                	    R # Nr$   )selfr    r"   kwargss   &&&,r&   openFS.open   s    FIr)   c                    V ^8  d   QhRRRR/# r   r    r!   r#   r   r$   )r%   s   "r&   r'   r(   "       ,,3,4,r)   c                	    R # r+   r$   r,   r    s   &&r&   exists	FS.exists!       ),r)   c                    V ^8  d   QhRRRR/# r1   r$   )r%   s   "r&   r'   r(   %   s    ++#+$+r)   c                	    R # r+   r$   r4   s   &&r&   isdirFS.isdir$   s    (+r)   c                    V ^8  d   QhRRRR/# r1   r$   )r%   s   "r&   r'   r(   (   r2   r)   c                	    R # r+   r$   r4   s   &&r&   isfile	FS.isfile'   r7   r)   c                    V ^8  d   QhRRRR/# )r   r    r!   r#   z	list[str]r$   )r%   s   "r&   r'   r(   +   s    22C2I2r)   c                	    R # r+   r$   r4   s   &&r&   listdir
FS.listdir*   s    /2r)   c               $    V ^8  d   QhRRRRRR/# r   r    r!   recreater   r#   r   r$   )r%   s   "r&   r'   r(   .   s    FFCF4FEFr)   c                	    R # r+   r$   r,   r    rF   s   &&&r&   makedir
FS.makedir-   s    CFr)   c               $    V ^8  d   QhRRRRRR/# rE   r$   )r%   s   "r&   r'   r(   1   s    GGSGDGUGr)   c                	    R # r+   r$   rH   s   &&&r&   makedirsFS.makedirs0   s    DGr)   Nc               $    V ^8  d   QhRRRRRR/# )r   r    r!   
namespacesCollection[str] | Noner#   r   r$   )r%   s   "r&   r'   r(   4   s    XXCX-CXtXr)   c                	    R # r+   r$   r,   r    rP   s   &&&r&   getinfo
FS.getinfo3   s    UXr)   c                    V ^8  d   QhRRRR/# r   r    r!   r#   Noner$   )r%   s   "r&   r'   r(   7   r2   r)   c                	    R # r+   r$   r4   s   &&r&   remove	FS.remove6   r7   r)   c                    V ^8  d   QhRRRR/# rW   r$   )r%   s   "r&   r'   r(   :   s    //c/d/r)   c                	    R # r+   r$   r4   s   &&r&   	removedirFS.removedir9   s    ,/r)   c                    V ^8  d   QhRRRR/# rW   r$   )r%   s   "r&   r'   r(   =   s    00s0t0r)   c                	    R # r+   r$   r4   s   &&r&   
removetreeFS.removetree<   s    -0r)   c               (    V ^8  d   QhRRRRRRRR/# )r   srcr!   dstcreater   r#   rX   r$   )r%   s   "r&   r'   r(   @   s    LL3LSL$L4Lr)   c                	    R # r+   r$   )r,   re   rf   rg   s   &&&&r&   movedir
FS.movedir?   s    ILr)   c                    V ^8  d   QhRRRR/# )r   r    r!   r#   r$   )r%   s   "r&   r'   r(   B   s     G Gs Gs Gr)   c                	"    \        R V : R24      h)the filesystem z has no system path)r   r4   s   &&r&   
getsyspathFS.getsyspathB   s    /$1DEFFr)   c                	    R V n         R# )TNr   r,   s   &r&   closeFS.closeE   s	    r)   c                   V ^8  d   QhRR/# )r   r#   r   r$   )r%   s   "r&   r'   r(   H   s      $ r)   c                	    V P                   # r+   rq   rr   s   &r&   isclosedFS.isclosedH   s    ||r)   c                   V ^8  d   QhRR/# )r   r#   r   r$   )r%   s   "r&   r'   r(   K   s      4 r)   c                	    V # r+   r$   rr   s   &r&   	__enter__FS.__enter__K   s    r)   c                	&    V P                  4        R # F)rs   )r,   exc_typeexctbs   &&&&r&   __exit__FS.__exit__N   s    

r)   c                	J    V P                   '       d   \        R V : R24      hR# )rm   z
 is closedN)r   r   rr   s   &r&   checkFS.checkR   s$    <<<"_THJ#GHH r)   factoryc               $    V ^8  d   QhRRRRRR/# )r   r    r!   r   zType[SubFS] | Noner#   r   r$   )r%   s   "r&   r'   r(   V   s"     # #C #-? #5 #r)   c               *    Vf	   ^RI Hp TpV! W4      # )u+   Return a sub‑filesystem rooted at `path`.r   )_subfsr   )r,   r    r   r   s   &&$ r&   opendir
FS.opendirV   s    ?%Gt""r)   c               $    V ^8  d   QhRRRRRR/# )r   r    r!   rP   rQ   r#   zIterator[Info]r$   )r%   s   "r&   r'   r(   ^   s)     U UU%;U	Ur)   c                	B   a aa VVV 3R  lS P                  S4       4       # )c              3  R   <"   T F  pSP                  S R V 2S4      x  K  	  R# 5i)/N)rT   ).0prP   r    r,   s   & r&   	<genexpr>FS.scandir.<locals>.<genexpr>a   s+     TASAvQqc]J77ASs   $')rB   rS   s   fffr&   scandir
FS.scandir^   s     UdASTTr)   c                   V ^8  d   QhRR/# )r   r#   r   r$   )r%   s   "r&   r'   r(   d   s     ! !k !r)   c                	    \        V 4      # r+   r   rr   s   &r&   walkFS.walkc   s    4  r)   c                    V ^8  d   QhRRRR/# )r   r    r!   r#   bytesr$   )r%   s   "r&   r'   r(   g   s      c e r)   c                	    V P                  VR 4      ;_uu_ 4       pVP                  4       uuRRR4       #   + '       g   i     R# ; i)rbN)r.   read)r,   r    fs   && r&   	readbytesFS.readbytesg   s-    YYtT""a668 #"""s	   6A	c                    V ^8  d   QhRRRR/# )r   r    r!   datar   r$   )r%   s   "r&   r'   r(   k   s      s % r)   c                	    V P                  VR 4      ;_uu_ 4       pVP                  V4       RRR4       R#   + '       g   i     R# ; i)wbN)r.   write)r,   r    r   r   s   &&& r&   
writebytesFS.writebytesk   s/    YYtT""aGGDM #"""s	   7A	c                    V ^8  d   QhRRRR/# )r   r    r!   wiper   r$   )r%   s   "r&   r'   r(   o   s      3 d r)   c                	    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)r5   r.   )r,   r    r   s   &&&r&   rg   	FS.createo   s>    D))YYtT"" # #"s   AA	c                    V ^8  d   QhRRRR/# r   src_pathr!   dst_pathr$   )r%   s   "r&   r'   r(   v   s     	2 	2S 	2C 	2r)   c                	   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)	r5   r   r>   r
   r   r:   r   r	   r   )r,   r   r   	overwrites   &&&&r&   copy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                    V ^8  d   QhRRRR/# r   r$   )r%   s   "r&   r'   r(      s     1 1 1s 1r)   c                	    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# )r   r   r   N)r5   r   r:   r	   r   )r,   r   r   rg   s   &&&&r&   copydir
FS.copydir   sS    dkk(33"h\#ABBzz(###eH<7M$NOO0r)   rq   )r   r~   r+   )$__name__
__module____qualname____firstlineno____doc__r   __annotations__r   r.   r5   r:   r>   rB   rI   rM   rT   rZ   r^   rb   ri   rn   rs   rw   r{   r   r   r   r   propertyr   r   r   rg   r   r   __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   ) 
__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      sI    "  # &   	@@m1 m1r)   