L iddlmZddlZddlZddlZddlZddlZddlZddlmZddl m Z ddl m Z m Z mZddlmZddlmZmZmZmZdd lmZej0rdd lmZdd lmZmZdd lmZGd de ZGdde Z GddeZ!y)) annotationsN)datetime)FS) FileExpectedResourceNotFoundResourceReadOnly)Info)dirnameforcedirnormpathrelpath)TempFS) Collection)IOAny)SubFScVeZdZdZ d ddZej r d ddZyy)ZipFSzRead and write zip files.c6|r t||St||SN) WriteZipFS ReadZipFS)clsfilewriteencodings f/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/fontTools/misc/filesystem/_zipfs.py__new__z ZipFS.__new__s! dH- -T8, ,cyr)selfrrrs r__init__zZipFS.__init__%s r N)Futf-8)rstr | os.PathLikerboolrstr)__name__ __module__ __qualname____doc__rtyping TYPE_CHECKINGr$r"r rrrs]#LS-$--1-EH-QX ) 26 JM r rceZdZdZddfd ZddZddZddZeddZ fdZ dddZ dd Z dd Z dd Zdd Zddd ZdddZddZddZddZdd dZd!dZd"d#dZxZS)$rzA readable zip file.ct|tj||_||_t j|d|_d|_ y)Nr) superr$osfspath_filerzipfileZipFile_zip _directory_fsr#rr __class__s rr$zReadZipFS.__init__.s> YYt_   OOD#. !r c"d|jdS)Nz ReadZipFS()r5r#s r__repr__zReadZipFS.__repr__5sDJJ>++r c"d|jdS)Nzr>r?s r__str__zReadZipFS.__str__8s$**R((r cztt|}|jj|r t |}|S)z"Convert a path to a zip file name.)rr _directoryisdirr r#paths r_path_to_zip_namezReadZipFS._path_to_zip_name;s0x~& ??  &D>D r c:|jtx|_}|jjD]V}|}|j dr|j |d*|j t |d|j|X|jS)N/T)recreate)r9rr8namelistendswithmakedirsr create)r#_fszip_name resource_names rrEzReadZipFS._directoryBs    %'-x /D  II..0 . (  ))#.LLL>LL!7$LGJJ}-  .!!!r ctt| |jj|j|jjyyr)r2rcloser8r9)r#r;s rrUzReadZipFS.closeOsA i$&     )    $ $ & *r cr|xsd}i}|dk(r,ddd|d<d|vrdtji|d<t|S|jj|}|j|j d|d<d|vr|j |} |jj|}d|vro|jt|j rtjntjt|jjd |d<t|St|S#t$r Yt|SwxYw) Nr"rKT)nameis_dirbasicdetailstype)sizer\modified)statS_IFDIRrEgetinforXrYrIr8 file_sizeintS_IFREGr date_time timestampKeyErrorr )r#rH namespacesraw_info basic_inforRzip_infos rrazReadZipFS.getinfoUs8%2  3;)+t z!ReadZipFS.open..s)QqDy)szwax+bz*encoding args invalid for binary operation)rmrErFrrnranyr rIr8open ValueErrorio TextIOWrapper)r#rHrkwargszip_moderRstreams ` rrzReadZipFS.opens ??  &$9: :7 s?4??#9#9$#?"%@#IJ J )&) )"4( ())$/(3 $; !MNNM1&11r r%rr&rr(returnr()rHr(rr()rrr)rHr(rhzCollection[str] | Nonerr )rHr(rr')F)rHr(rLr'rr)rHr()rr(rr(rPr')rHr(rbytes)rb)rHr(rr(rzIO[Any])r)r*r+r,r$r@rCrIpropertyrErUrarnrFrrrtrxrOr|r~rrrr __classcell__r;s@rrr+sy",) " "' <,+,-%%%%%$22r rc@eZdZdZddfd ZddZddZfdZxZS) rzA writable zip file.cdt|tj||_||_yr)r2r$r3r4r5rr:s rr$zWriteZipFS.__init__s$ YYt_   r c"d|jdS)Nz WriteZipFS(r=r>r?s rr@zWriteZipFS.__repr__sTZZN!,,r c"d|jdS)Nzr?s rrCzWriteZipFS.__str__s |2..r c(tjj|jd}t j |d|j |j|dzk7r#t j|dz|jt|%y)Nrzip)formatroot_dirz.zip) r3rHsplitextr5shutil make_archive _temp_dirmover2rU)r# base_namer;s rrUzWriteZipFS.closesgGG$$TZZ03 IednnM ::V+ + KK F*DJJ 7  r rrr) r)r*r+r,r$r@rCrUrrs@rrrs! -/r r)" __future__rrr3rr_r-r6r_baser_errorsrrr _infor _pathr r r r_tempfsrr.collections.abcrrr_subfsrrrrr"r rrsk" EE77 *B&K2K2\r