
    z%i(                         d dl Z d dlZd dlZd dlZd dlZd dlZd dlZddlmZ dgZ	d Z
d Zej                  Z	 d Z G d d	      Z G d
 deej"                        Z G d de      ZddZ G d d      Zy)    N   )	translatePathc                 D    	 t        j                  t        |       dd       S )Nr   )	itertoolsislice	_ancestry)paths    J/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/zipfile/_path/__init__.py_parentsr      s"     IdOQ55    c              #      K   	 | j                  t        j                        } | rH| t        j                  k7  r4|  t        j                  |       \  } }| r| t        j                  k7  r2y y y y wN)rstrip	posixpathsepsplit)r
   tails     r   r	   r	   "   s[      ;;y}}%D
49==(
__T*
d 49==($($s   A'A.*A.c                 V    	 t        j                  t        |      j                  |       S r   )r   filterfalseset__contains__)minuend
subtrahends     r   _differencer   <   s&       Z!=!=wGGr   c                   0     e Zd Z	  fdZd Z fdZ xZS )InitializedStatec                 @    || _         || _        t        |   |i | y r   )_InitializedState__args_InitializedState__kwargssuper__init__)selfargskwargs	__class__s      r   r"   zInitializedState.__init__I   s#    $)&)r   c                 2    | j                   | j                  fS r   )r   r    r#   s    r   __getstate__zInitializedState.__getstate__N   s    {{DMM))r   c                 .    |\  }}t        |   |i | y r   )r!   r"   )r#   stater$   r%   r&   s       r   __setstate__zInitializedState.__setstate__Q   s    f$)&)r   )__name__
__module____qualname__r"   r)   r,   __classcell__r&   s   @r   r   r   D   s    *
** *r   r   c                   V     e Zd Z	 ed        Z fdZd Zd Z fdZe	d        Z
 xZS )CompleteDirsc                     t         j                  j                  t        t        |             }d |D        }t        t        ||             S )Nc              3   B   K   | ]  }|t         j                  z     y wr   )r   r   ).0ps     r   	<genexpr>z-CompleteDirs._implied_dirs.<locals>.<genexpr>d   s     61y}}$6s   )r   chainfrom_iterablemapr   _deduper   )namesparentsas_dirss      r   _implied_dirszCompleteDirs._implied_dirsa   s9    ////He0DE6g6{7E233r   c                 Z    t         |          }|t        | j                  |            z   S r   )r!   namelistlistr@   )r#   r=   r&   s     r   rB   zCompleteDirs.namelistg   s+     "tD..u5666r   c                 4    t        | j                               S r   )r   rB   r(   s    r   	_name_setzCompleteDirs._name_setk   s    4==?##r   c                 N    	 | j                         }|dz   }||vxr ||v }|r|S |S N/)rE   )r#   namer=   dirname	dir_matchs        r   resolve_dirzCompleteDirs.resolve_dirn   s?    	  *%:'U*:	#w--r   c                     	 	 t         |   |      S # t        $ r= |j                  d      r|| j	                         vr t        j                  |      cY S w xY w)NrH   )filename)r!   getinfoKeyErrorendswithrE   zipfileZipInfo)r#   rI   r&   s     r   rO   zCompleteDirs.getinfox   sW    		27?4(( 	2==%T^^5E)E??D11	2s    AAAc                     	 t        |t              r|S t        |t        j                        s | |      S d|j                  vrt        } | |_        |S Nr)
isinstancer3   rR   ZipFilemoder&   )clssources     r   makezCompleteDirs.make   sP    	 fl+M&'//2v; fkk!Cr   )r-   r.   r/   staticmethodr@   rB   rE   rL   rO   classmethodr\   r0   r1   s   @r   r3   r3   V   sD     4 4
7$.	2  r   r3   c                   *     e Zd Z	  fdZ fdZ xZS )
FastLookupc                     t        j                  t              5  | j                  cd d d        S # 1 sw Y   nxY wt        |          | _        | j                  S r   )
contextlibsuppressAttributeError_FastLookup__namesr!   rB   r#   r&   s    r   rB   zFastLookup.namelist   sF      0 	 <<	  	  	 w')||   1:c                     t        j                  t              5  | j                  cd d d        S # 1 sw Y   nxY wt        |          | _        | j                  S r   )rb   rc   rd   _FastLookup__lookupr!   rE   rf   s    r   rE   zFastLookup._name_set   sF      0 	!==	! 	! 	!)+}}rg   )r-   r.   r/   rB   rE   r0   r1   s   @r   r`   r`      s    
 r   r`   c                 4    t        j                  | d      ||fS )N   )iotext_encoding)encodingr$   r%   s      r   _extract_text_encodingro      s    Ha($66r   c                       e Zd Z	 dZddZd Zd Zd dddZd Ze	d	        Z
e	d
        Ze	d        Ze	d        Ze	d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZeZe	d        Z y)!r   z>{self.__class__.__name__}({self.root.filename!r}, {self.at!r})c                 H    	 t         j                  |      | _        || _        y r   )r`   r\   rootat)r#   rr   rs   s      r   r"   zPath.__init__   s     	 OOD)	r   c                     	 | j                   |j                   urt        S | j                  | j                  f|j                  |j                  fk(  S r   )r&   NotImplementedrr   rs   )r#   others     r   __eq__zPath.__eq__  sD    	 >>0!!		477#

EHH'===r   c                 D    t        | j                  | j                  f      S r   )hashrr   rs   r(   s    r   __hash__zPath.__hash__  s    TYY())r   Npwdc                P   	 | j                         rt        |       |d   }| j                         s|dk(  rt        |       | j                  j                  | j                  ||      }d|v r|s|rt        d      |S t        |i |\  }}}t        j                  ||g|i |S )Nr   rV   r{   bz*encoding args invalid for binary operation)is_dirIsADirectoryErrorexistsFileNotFoundErrorrr   openrs   
ValueErrorro   rl   TextIOWrapper)r#   rY   r|   r$   r%   zip_modestreamrn   s           r   r   z	Path.open  s    	
 ;;=#D))7{{}S#D))s;$;v !MNNM!7!H!H$B4B6BBr   c                 p    t        j                  | j                  xs | j                  j                        S r   )pathlibPurePosixPathrs   rr   rN   r(   s    r   _basez
Path._base,  s&    $$TWW%B		0B0BCCr   c                 6    | j                         j                  S r   )r   rI   r(   s    r   rI   z	Path.name/      zz|   r   c                 6    | j                         j                  S r   )r   suffixr(   s    r   r   zPath.suffix3  s    zz|"""r   c                 6    | j                         j                  S r   )r   suffixesr(   s    r   r   zPath.suffixes7  s    zz|$$$r   c                 6    | j                         j                  S r   )r   stemr(   s    r   r   z	Path.stem;  r   r   c                     t        j                  | j                  j                        j	                  | j
                        S r   )r   r   rr   rN   joinpathrs   r(   s    r   rN   zPath.filename?  s*    ||DII../88AAr   c                     t        |i |\  }}} | j                  d|g|i |5 }|j                         cd d d        S # 1 sw Y   y xY wrU   )ro   r   read)r#   r$   r%   rn   strms        r   	read_textzPath.read_textC  sR    !7!H!H$TYYsH6t6v6 	$99;	 	 	s   AA
c                 p    | j                  d      5 }|j                         cd d d        S # 1 sw Y   y xY w)Nrb)r   r   )r#   r   s     r   
read_byteszPath.read_bytesH  s-    YYt_ 	99;	 	 	s   ,5c                     t        j                  |j                  j                  d            | j                  j                  d      k(  S rG   )r   rJ   rs   r   )r#   r
   s     r   	_is_childzPath._is_childL  s2      !459LLLr   c                 :    | j                  | j                  |      S r   )r&   rr   )r#   rs   s     r   _nextz
Path._nextO  s    ~~dii,,r   c                 V    | j                    xs | j                   j                  d      S rG   )rs   rQ   r(   s    r   r   zPath.is_dirR  s"    77{3dgg..s33r   c                 H    | j                         xr | j                          S r   )r   r   r(   s    r   is_filezPath.is_fileU  s    {{}2T[[]!22r   c                 N    | j                   | j                  j                         v S r   )rs   rr   rE   r(   s    r   r   zPath.existsX  s    ww$))--///r   c                     | j                         st        d      t        | j                  | j                  j                               }t        | j                  |      S )NzCan't listdir a file)r   r   r;   r   rr   rB   filterr   )r#   subss     r   iterdirzPath.iterdir[  sE    {{}3444::tyy1134dnnd++r   c                 ^    t        j                  | j                        j                  |      S r   )r   r   rs   match)r#   path_patterns     r   r   z
Path.matcha  s"    $$TWW-33LAAr   c                      	 y)NF r(   s    r   
is_symlinkzPath.is_symlinkd  s    	 r   c                 &   |st        d|      t        j                  | j                        }t        j                  |t        |      z         j                  }t        | j                  t        || j                  j                                     S )NzUnacceptable pattern: )r   reescapers   compiler   	fullmatchr;   r   r   rr   rB   )r#   patternprefixmatchess       r   globz	Path.globj  sm    5g[ABB477#**Vi&889CC4::vgtyy/A/A/CDEEr   c                 *    | j                  d|       S )Nz**/)r   )r#   r   s     r   rglobz
Path.rglobr  s    yy3wi))r   c                 l    t        j                  t        |       t         |j                  |             S r   )r   relpathstrr   )r#   rv   extras      r   relative_tozPath.relative_tou  s)      TC0F,GHHr   c                 j    t        j                  | j                  j                  | j                        S r   )r   joinrr   rN   rs   r(   s    r   __str__zPath.__str__x  s!    ~~dii00$''::r   c                 :    | j                   j                  |       S )Nr(   )_Path__reprformatr(   s    r   __repr__zPath.__repr__{  s    {{!!t!,,r   c                     t        j                  | j                  g| }| j                  | j                  j                  |            S r   )r   r   rs   r   rr   rL   )r#   rv   nexts      r   r   zPath.joinpath~  s7    ~~dgg..zz$))//566r   c                     | j                   s| j                  j                  S t        j                  | j                   j                  d            }|r|dz  }| j                  |      S rG   )rs   rN   parentr   rJ   r   r   )r#   	parent_ats     r   r   zPath.parent  sR    ww=='''%%dggnnS&9:	Izz)$$r   ) )rV   )!r-   r.   r/   r   r"   rw   rz   r   r   propertyrI   r   r   r   rN   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __truediv__r   r   r   r   r   r      s   KZ NF>*C C(D ! ! # # % % ! ! B B
M-430,BF*I;-7 K% %r   r   )rl   r   rR   r   rb   r   r   r   r   __all__r   r	   dictfromkeysr<   r   r   rX   r3   r`   ro   r   r   r   r   <module>r      s    	      	  (6&+, -- /H* *$>#W__ >B &7
\% \%r   