L iiddlmZddlZddlZddlZddlZddlZddlmZddl m Z ddl m Z ddl mZmZmZmZmZmZmZddlmZdd lmZej2rdd lmZdd lmZmZdd lmZej@d k(Z!Gdde Z"y)) annotationsN)PathLike)Path)FS) CreateFailedDirectoryExpectedDirectoryNotEmpty FileExpectedIllegalDestination ResourceErrorResourceNotFound)Info)isbase) Collection)IOAny)SubFSWindowsceZdZdZddfd ZddZdddZddZddZddZ ddZ ddd Z ddd Z ddd Z ddd Zd d Zd dZd dZdd!dZd"dZd#dZd#dZxZS)$OSFSz^Filesystem for a directory on the local disk. A thin layer on top of `pathlib.Path`. ct|t|j|_|r|jj ddy|jj std|dy)NTparentsexist_okzunable to create OSFS: z% does not exist or is not a directory)super__init__rresolve_rootmkdiris_dirr)selfrootcreate __class__s e/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/fontTools/misc/filesystem/_osfs.pyrz OSFS.__init__(sk $Z'')  JJ  TD  9::$$&"-dX5Z['cz|j|j|jdz jS)N/)checkrstripr)r"rel_paths r&_absz OSFS._abs3s,  X^^C0099;;r'c ~ |j|j|fi|S#t$rtd|wxYw)NNo such file or directory: )r-openFileNotFoundErrorr)r"pathmodekwargss r&r0z OSFS.open7sL K'499T?''77 7  K"%@#IJ J Ks!$<c@|j|jSN)r-existsr"r2s r&r7z OSFS.exists=yy%%''r'c@|j|jSr6)r-r!r8s r&isdirz OSFS.isdir@r9r'c@|j|jSr6)r-is_filer8s r&isfilez OSFS.isfileCsyy&&((r'cz|j|jDcgc]}|jc}Scc}wr6)r-iterdirname)r"r2ps r&listdirz OSFS.listdirFs+ $ $ 7 7 9:1:::s8ch|j|j|||j|S)Nr)r-r opendir)r"r2rrs r&_mkdirz OSFS._mkdirIs, $gA||D!!r'c*|j|d|S)NFrrFr"r2recreates r&makedirz OSFS.makedirMs{{4{BBr'c*|j|d|S)NTrrHrIs r&makedirsz OSFS.makedirsPs{{4{AAr'c |j|}|jstdt|d|j|j di}|xsd}d|vr||j }|j|j|jt j|jt|dddx}|d<trdnd }|j||<t|S) Nr/basic)rAr!details st_birthtime)accessedmodifiedsizetypecreatedrWmetadata_changed)r-r7rstrrAr!statst_atimest_mtimest_sizeS_IFMTst_modegetattr_WINDOWS_PLATFORMst_ctimer)r"r2 namespacesinfo stat_resultrQ ctime_keys r&getinfoz OSFS.getinfoSsyy{{}"%@T #NO O  ++-   %2  "))+K'00'00#++ K$7$78";E ) Gd9o&7 >BcLtj|j|yr6)shutilrmtreer-r8s r& removetreezOSFS.removetrees diio&r'czt||rtd|d||j|}|jst d|d|j st d|d|j|}|s|jst d|d|jrt d|d|r|jjdd|jr>t|jrtd|d tr|j|j|y) Nz cannot move z to zSource z does not existrrz Destination Trz is not empty)rr r-r7rr!r r=parentr listr@r rarsrename)r"src_dirdst_dirr$src_pathdst_paths r&movedirz OSFS.movedirs" '7 #$|G;d7+%NO O99W% "WWK#GH H"#gg[8N$OP P99W%hoo/"\'O#LM M    #l7+=S$TU U  OO ! !$ ! > ?? H$$&'',wk(OPP" !r'c6t|j|Sr6)rYr-r8s r& getsyspathzOSFS.getsyspaths499T?##r'c`|jjdt|jdS)N())r%__name__rYrr"s r&__repr__z OSFS.__repr__s)..))*!C O+>a@@r'cld|jjjd|jdS)N)r%rlowerrrs r&__str__z OSFS.__str__s/4>>**00232djj\DDr')F)r#zstr | PathLiker$bool)r,rYreturnr)rb)r2rYr3rYrzIO[Any])r2rYrr)r2rYrz list[str])FF)r2rYrrrrrr)r2rYrJrrrr6)r2rYrczCollection[str] | Nonerr)r2rY)rrYrrYr$r)r2rYrrY)rrY)r __module__ __qualname____doc__rr-r0r7r;r>rCrFrKrMrgrprwr{rrrr __classcell__)r%s@r&rr"si <K (();"CB0 L G'"0$AEr'r)# __future__rruplatformryrZtypingosrpathlibr_baser_errorsrr r r r r r_infor_pathr TYPE_CHECKINGcollections.abcrrr_subfsrsystemrarrPr'r&rso"   *$HOO%2BE2BEr'