L i ddlmZddlZddlmZddlmZddlmZm Z ejrddl m Z ddlm Z mZdd lmZGd d eZGd d eZy)) annotationsN) PurePosixPath)FS)DirectoryExpectedResourceNotFound) Collection)IOAny)InfoceZdZdZdfd ZdZddZdddZddZddZ ddZ dd Z ddd Z ddd Z ddd Zd d Zd dZd dZdd!dZd"dZd#dZd$dZd%dZd%dZxZS)&SubFSz+Maps a sub-directory of another filesystem.c.t|||_t|j j d|_|j|j std||j|j st|dy)N/zNo such file or directory: z is not a directory) super__init___parentras_posixrstrip_prefixexistsrisdirr)selfparentsub_path __class__s f/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/fontTools/misc/filesystem/_subfs.pyrzSubFS.__init__s  $X.779@@E }}T\\*"%@ #MN Ndll+#xl2E$FG G,c|jSN)rrs r delegate_fszSubFS.delegate_fss ||rc|j|jdt|jj dSNr)checkrrrlstrip)rrels r_fullz SubFS._fulls: ,,qs!3! ?@GGLLrc \|jj|j||fi|Sr )ropenr()rpathmodekwargss rr*z SubFS.open#s) t||  D!14B6BBrcV|jj|j|Sr )rrr(rr+s rrz SubFS.exists& ||""4::d#344rcV|jj|j|Sr )rrr(r/s rrz SubFS.isdir)s ||!!$**T"233rcV|jj|j|Sr )risfiler(r/s rr3z SubFS.isfile,r0rcV|jj|j|Sr )rlistdirr(r/s rr5z SubFS.listdir/s ||##DJJt$455rcZ|jj|j||SN)recreate)rmakedirr(rr+r8s rr9z SubFS.makedir2s%||##DJJt$4x#HHrcZ|jj|j||Sr7)rmakedirsr(r:s rr<zSubFS.makedirs5s%||$$TZZ%5$IIrcZ|jj|j||S)N) namespaces)rgetinfor()rr+r>s rr?z SubFS.getinfo8s%||##DJJt$4#LLrcV|jj|j|Sr )rremover(r/s rrAz SubFS.remove;r0rcV|jj|j|Sr )r removedirr(r/s rrCzSubFS.removedir> ||%%djj&677rcV|jj|j|Sr )r removetreer(r/s rrFzSubFS.removetreeA ||&&tzz$'788rc||jj|j||j||y)N)create)rmovedirr()rsrcdstrIs rrJz SubFS.movedirDs+ TZZ_djjofMrcV|jj|j|Sr )r getsyspathr(r/s rrNzSubFS.getsyspathGrGrcV|jj|j|Sr )r readbytesr(r/s rrPzSubFS.readbytesJrDrcZ|jj|j||yr )r writebytesr()rr+datas rrRzSubFS.writebytesMs  4 0$7rch|jjd|jd|jdS)N(z, ))r__name__rrr!s r__repr__zSubFS.__repr__Ps0..))*!DLL+;2dll=MQOOrc8|jd|jSr$)rrr!s r__str__z SubFS.__str__Ss,,q//r)rrrstr)r'r[returnr[)rb)r+r[r,r[r\zIO[Any])r+r[r\bool)r+r[r\z list[str])F)r+r[r8r^r )r+r[r>zCollection[str] | Noner\r )r+r[)rKr[rLr[rIr^)r+r[r\r[)r+r[r\bytes)r+r[rSr_)r\r[)rW __module__ __qualname____doc__rr"r(r*rrr3r5r9r<r?rArCrFrJrNrPrRrXrZ __classcell__rs@rrrsr5HMC5456IJM589N988P0rrc"eZdZdZfdZxZS) ClosingSubFSz>Like SubFS, but auto-closes the parent filesystem when closed.cVt||jjyr )rcloser)rrs rrhzClosingSubFS.closeZs   r)rWr`rarbrhrcrds@rrfrfWsHrrf) __future__rtypingpathlibr_baser_errorsrr TYPE_CHECKINGcollections.abcr r r _infor rrfrrrrsA" !8 *D0BD0N5r