+
    K<i                    ,   ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^RI	H
t
 ^RIHtHtHt ^RIHt ^RIHtHtHtHt ^RIHt ]P0                  '       d   ^ R	IHt ^ R
IHtHt ^RIHt  ! R R]
4      t ! R R]
4      t  ! R R]4      t!R# )    )annotationsN)datetime)FS)FileExpectedResourceNotFoundResourceReadOnly)Info)dirnameforcedirnormpathrelpath)TempFS)
Collection)IOAny)SubFSc                  f    ] tR t^tRtRR R llt]P                  '       d   RR R lltRt	R# Rt	R# )	ZipFSzRead and write zip files.c               $    V ^8  d   QhRRRRRR/#    filestr | os.PathLikewriteboolencodingstr )formats   "B/usr/lib/python3/dist-packages/fontTools/misc/filesystem/_zipfs.py__annotate__ZipFS.__annotate__   s$     - -$--1-EH-    c                	>    V'       d   \        W4      # \        W4      # N)
WriteZipFS	ReadZipFS)clsr   r   r   s   &&&&r    __new__ZipFS.__new__   s     d--T,,r#   c               $    V ^8  d   QhRRRRRR/# r   r   )r   s   "r    r!   r"   %   s$     	 	)	26	JM	r#   c                	    R # r%   r   )selfr   r   r   s   &&&&r    __init__ZipFS.__init__%   s     r#   r   N)Futf-8)
__name__
__module____qualname____firstlineno____doc__r)   typingTYPE_CHECKINGr.   __static_attributes__r   r#   r    r   r      s'    #- 	 	 r#   r   c                  ,  a  ] tR t^+tRtR(R V 3R llltR R ltR R ltR R	 lt]	R
 R l4       t
V 3R ltR)R R lltR R ltR R ltR R ltR R ltR*R R lltR*R R lltR R ltR R ltR R  ltR*R! R" lltR# R$ ltR+R% R& lltR'tV ;t# ),r'   zA readable zip file.c                    V ^8  d   QhRRRR/# r   r   r   r   r   r   )r   s   "r    r!   ReadZipFS.__annotate__.   s     " ". "# "r#   c                	   < \         SV `  4        \        P                  ! V4      V n        W n        \        P                  ! VR 4      V n        RV n	        R# )rN)
superr.   osfspath_filer   zipfileZipFile_zip_directory_fsr-   r   r   	__class__s   &&&r    r.   ReadZipFS.__init__.   s<    YYt_
 OOD#.	!r#   c                   V ^8  d   QhRR/# r   returnr   r   )r   s   "r    r!   r<   5   s     , ,# ,r#   c                	$    R V P                   : R2# )z
ReadZipFS()rB   r-   s   &r    __repr__ReadZipFS.__repr__5   s    DJJ>++r#   c                   V ^8  d   QhRR/# rK   r   )r   s   "r    r!   r<   8   s     ) ) )r#   c                	"    R V P                    R2# )z<zipfs ''>rO   rP   s   &r    __str__ReadZipFS.__str__8   s    $**R((r#   c                    V ^8  d   QhRRRR/# r   pathr   rL   r   )r   s   "r    r!   r<   ;   s      c c r#   c                    \        \        V4      4      pV P                  P                  V4      '       d   \	        V4      pV# )z"Convert a path to a zip file name.)r   r   
_directoryisdirr   r-   rZ   s   &&r    _path_to_zip_nameReadZipFS._path_to_zip_name;   s3    x~&??  &&D>Dr#   c                   V ^8  d   QhRR/# )r   rL   r   r   )r   s   "r    r!   r<   C   s     
" 
"F 
"r#   c                	P   V P                   f   \        4       ;V n         pV P                  P                  4        F^  pTpVP	                  R4      '       d   VP                  VRR7       K1  VP                  \        V4      RR7       VP                  V4       K`  	  V P                   # )N/T)recreate)rF   r   rE   namelistendswithmakedirsr
   create)r-   _fszip_nameresource_names   &   r    r\   ReadZipFS._directoryB   s    %'-x/D II..0 ( ))#..LLL>LL!7$LGJJ}- 1 !!!r#   c                	   < \         \        V `  4        V P                  P                  4        V P                  e   V P                  P                  4        R # R # r%   )r?   r'   closerE   rF   )r-   rH   s   &r    rn   ReadZipFS.closeO   sA    i$&		)$$& *r#   c               $    V ^8  d   QhRRRRRR/# )r   rZ   r   
namespaceszCollection[str] | NonerL   r	   r   )r   s   "r    r!   r<   U   s"      C -C t r#   c           	     	p   T;'       g    R
p/ pVR 8X  d'   RRRR/VR&   RV9   d   R\         P                  /VR&   MV P                  P                  V4      pRVP                  RVP
                  /VR&   RV9   d   V P                  V4      p V P                  P                  V4      pRV9   dn   RVP                  R\        VP
                  '       d   \         P                  M\         P                  4      R	\        VP                  !  P                  4       /VR&   \        V4      #   \         d     Li ; i)rc   name is_dirTbasicdetailstypesizemodifiedr   )statS_IFDIRr\   getinfors   ru   r_   rE   	file_sizeintS_IFREGr   	date_time	timestampKeyErrorr	   )r-   rZ   rq   raw_info
basic_inforj   zip_infos   &&&    r    r}   ReadZipFS.getinfoU   s*   %%2
3;!'Xt <HWJ&'-t||&<#006J!'(JDUDU VHWJ&11$7#yy00:H !J."H$6$6"C0:0A0A0At||% '(2D2D(E(O(O(Q/+ H~   s   D' 'D54D5c                    V ^8  d   QhRRRR/# r   rZ   r   rL   r   r   )r   s   "r    r!   r<   s        , ,3 ,4 ,r#   c                	X    V P                  4        V P                  P                  V4      # r%   )checkr\   existsr^   s   &&r    r   ReadZipFS.existss        

%%d++r#   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r    r!   r<   w   s     + +# +$ +r#   c                	X    V P                  4        V P                  P                  V4      # r%   )r   r\   r]   r^   s   &&r    r]   ReadZipFS.isdirw   s     

$$T**r#   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r    r!   r<   {   r   r#   c                	X    V P                  4        V P                  P                  V4      # r%   )r   r\   isfiler^   s   &&r    r   ReadZipFS.isfile{   r   r#   c                    V ^8  d   QhRRRR/# rY   r   )r   s   "r    r!   r<      s     - -C -C -r#   c                	X    V P                  4        V P                  P                  V4      # r%   )r   r\   listdirr^   s   &&r    r   ReadZipFS.listdir   s     

&&t,,r#   c               $    V ^8  d   QhRRRRRR/# r   rZ   r   rd   r   rL   r   r   )r   s   "r    r!   r<      s!     % %C %4 %E %r#   c                	8    V P                  4        \        V4      hr%   r   r   r-   rZ   rd   s   &&&r    makedirReadZipFS.makedir       

t$$r#   c               $    V ^8  d   QhRRRRRR/# r   r   )r   s   "r    r!   r<      s!     % %S %D %U %r#   c                	8    V P                  4        \        V4      hr%   r   r   s   &&&r    rg   ReadZipFS.makedirs   r   r#   c                   V ^8  d   QhRR/# r   rZ   r   r   )r   s   "r    r!   r<      s     % %3 %r#   c                	8    V P                  4        \        V4      hr%   r   r^   s   &&r    removeReadZipFS.remove   r   r#   c                   V ^8  d   QhRR/# r   r   )r   s   "r    r!   r<      s     % %c %r#   c                	8    V P                  4        \        V4      hr%   r   r^   s   &&r    	removedirReadZipFS.removedir   r   r#   c                   V ^8  d   QhRR/# r   r   )r   s   "r    r!   r<      s     % %s %r#   c                	8    V P                  4        \        V4      hr%   r   r^   s   &&r    
removetreeReadZipFS.removetree   r   r#   c               $    V ^8  d   QhRRRRRR/# )r   srcr   dstrh   r   r   )r   s   "r    r!   r<      s!     $ $3 $S $$ $r#   c                	8    V P                  4        \        V4      hr%   r   )r-   r   r   rh   s   &&&&r    movedirReadZipFS.movedir   s    

s##r#   c                    V ^8  d   QhRRRR/# )r   rZ   r   rL   bytesr   )r   s   "r    r!   r<      s      c e r#   c                	    V P                  4        V P                  P                  V4      '       g   \        V4      hV P	                  V4      pV P
                  P                  V4      pV# r%   )r   r\   r   r   r_   rE   read)r-   rZ   rj   	zip_bytess   &&  r    	readbytesReadZipFS.readbytes   sS    

%%d++"4(())$/IINN8,	r#   c               $    V ^8  d   QhRRRRRR/# )r   rZ   r   moderL   zIO[Any]r   )r   s   "r    r!   r<      s!     2 2 2C 2W 2r#   c                	X  a V P                  4        V P                  P                  V4      '       d   \        V: R 24      hS^ ,          pVR8X  d1   V P                  P	                  V4      '       g   \        RV: 24      h\        ;QJ d    V3R lR 4       F  '       g   K   RM	  RM! V3R lR 4       4      '       d   \        V4      hV P                  V4      pV P                  P                  WT4      pRS9   d   V'       d   \        R4      hV# \        P                  ! V3/ VB # )	z is a directoryr>   zNo such file or directory: c              3  ,   <"   T F	  qS9   x  K  	  R # 5ir%   r   ).0mr   s   & r    	<genexpr>!ReadZipFS.open.<locals>.<genexpr>   s     )&QDy&s   zwax+TFbz*encoding args invalid for binary operation)r   r\   r]   r   r   r   anyr   r_   rE   open
ValueErrorioTextIOWrapper)r-   rZ   r   kwargszip_moderj   streams   &&f,   r    r   ReadZipFS.open   s    

??  &&$9::7s?4??#9#9$#?#?"%@#IJJ3)&)333)&)))"4(())$/3$; !MNNM1&11r#   )rF   rB   rE   r   r0   r%   )F)rb)r1   r2   r3   r4   r5   r.   rQ   rV   r_   propertyr\   rn   r}   r   r]   r   r   r   rg   r   r   r   r   r   r   r8   __classcell__rH   s   @r    r'   r'   +   s~    " ",) 
" 
"'<,+,-%%%%%$2 2r#   r'   c                  Z   a  ] tR t^tRtR
R V 3R llltR R ltR R ltV 3R ltR	t	V ;t
# )r&   zA writable zip file.c                    V ^8  d   QhRRRR/# r;   r   )r   s   "r    r!   WriteZipFS.__annotate__   s     ! !. !# !r#   c                	f   < \         SV `  4        \        P                  ! V4      V n        W n        R # r%   )r?   r.   r@   rA   rB   r   rG   s   &&&r    r.   WriteZipFS.__init__   s"    YYt_
 r#   c                   V ^8  d   QhRR/# rK   r   )r   s   "r    r!   r      s     - -# -r#   c                	$    R V P                   : R2# )zWriteZipFS(rN   rO   rP   s   &r    rQ   WriteZipFS.__repr__   s    TZZN!,,r#   c                   V ^8  d   QhRR/# rK   r   )r   s   "r    r!   r      s     / / /r#   c                	"    R V P                    R2# )z<zipfs-write 'rU   rO   rP   s   &r    rV   WriteZipFS.__str__   s    

|2..r#   c                	J  < \         P                  P                  V P                  4      ^ ,          p\        P
                  ! VRV P                  R7       V P                  VR,           8w  d)   \        P                  ! VR,           V P                  4       \        SV `%  4        R# )r   zip)r   root_dirz.zipN)
r@   rZ   splitextrB   shutilmake_archive	_temp_dirmover?   rn   )r-   	base_namerH   s   & r    rn   WriteZipFS.close   sg    GG$$TZZ03	IednnM::V++KK	F*DJJ7r#   )rB   r   r   )r1   r2   r3   r4   r5   r.   rQ   rV   rn   r8   r   r   s   @r    r&   r&      s$    ! !
-/ r#   r&   )"
__future__r   r   r@   r   r{   r6   rC   r   _baser   _errorsr   r   r   _infor	   _pathr
   r   r   r   _tempfsr   r7   collections.abcr   r   r   _subfsr   r   r'   r&   r   r#   r    <module>r      sn    " 	 	       E E  7 7 	*B &K2 K2\ r#   