
    hQ                     D   d dl Zd dlZd dlZd dlZd dlmZmZm	Z	m
Z
mZmZmZmZ d dlmZ d dlmZmZ d dlmZ d dlmZ d dlmZmZ d dlmZmZmZmZ d d	l m!Z! d d
l"m#Z# d dl$m%Z% d dl&m'Z'm(Z( ddl)m*Z*m+Z+m,Z,  G d dejZ                  j\                        Z/ G d de      Z.y)    N)
CollectionDictIterableIteratorMappingOptionalSequencecast)Requirement)NormalizedNamecanonicalize_name)Version)parse)InvalidWheelUnsupportedWheel)BaseDistributionBaseEntryPointInfoPathWheel)normalize_path)get_requirement)TempDirectory)parse_wheelread_wheel_metadata_file   )BasePathget_dist_canonical_name*parse_name_and_version_from_info_directoryc            	           e Zd ZdZdeej                  ef   dej                  ddfdZe	de
j                  ded	edd fd
       Zdedeej                     fdZdedee   fdZy)WheelDistributiona  An ``importlib.metadata.Distribution`` read from a wheel.

    Although ``importlib.metadata.PathDistribution`` accepts ``zipfile.Path``,
    its implementation is too "lazy" for pip's needs (we can't keep the ZipFile
    handle open for the entire lifetime of the distribution object).

    This implementation eagerly reads the entire metadata directory into the
    memory instead, and operates from that.
    filesinfo_locationreturnNc                      || _         || _        y N)_filesr"   )selfr!   r"   s      PD:\EasyAligner\venv\Lib\site-packages\pip/_internal/metadata/importlib/_dists.py__init__zWheelDistribution.__init__3   s    
 *    zfnamelocationc           	         
 t        ||      \  
}
fd|j                         D        }|D ci c]  \  }}|t        ||       }}}t        j                  |
      }	 | ||	      S c c}}w )Nc              3      K   | ]B  }|j                   d       r,|t        j                  |j                  d d      d         f D yw)/r   N)
startswithpathlibPurePosixPathsplit).0r,   info_dirs     r(   	<genexpr>z1WheelDistribution.from_zipfile.<locals>.<genexpr>C   sK      
%(1~. 7((C);B)?@A%s   AA)r   namelistr   r3   r4   )clsr+   r,   r-   _pathsfullpathrelpathr!   r"   r7   s             @r(   from_zipfilezWheelDistribution.from_zipfile;   s     ""d+!

 &+
%*!' -b(;;%* 	 
  --hA5-((
s   A(pathc                     t        j                  t        |            | j                  v rt	        | j                        S t        |      r%   )r3   r4   strr&   iterFileNotFoundErrorr'   r@   s     r(   iterdirzWheelDistribution.iterdirO   s7      T+t{{:$$%%r*   filenamec                 
   	 | j                   t        j                  |         }	 |j	                  d      }|S # t        $ r Y y w xY w# t
        $ r2}| j                  j                  }d| d| d| d}t        |      d }~ww xY w)Nzutf-8zError decoding metadata for z: z in z file)	r&   r3   r4   KeyErrordecodeUnicodeDecodeErrorr"   parentr   )r'   rG   datatextewheelerrors          r(   	read_textzWheelDistribution.read_textU   s    	;;w44X>?D	*;;w'D
   		 " 	*&&--E25'A3d8*ERE"5))	*s&   "8 A 	AA	B-A==B)__name__
__module____qualname____doc__r   r3   r4   bytesr)   classmethodzipfileZipFilerB   r?   r   r   rF   r   rR    r*   r(   r    r    (   s    +w,,e34+ ,,+ 
	+ )OO) ) 	)
 
) )&&H &'2G2G)H &# (3- r*   r    c            	          e Zd Zdej                  j
                  dee   dee   ddfdZe	de
defd       Ze	d	ed
e
de
defd       Ze	dede
defd       Zedee
   fd       Zedee
   fd       Zedee
   fd       Zedefd       Zedefd       Zede
fd       ZdedefdZdee
   fdZdede
fdZde e!   fdZ"de#jH                  jJ                  fdZ&de e   fdZ'dde(e
   de e)   fdZ*y) Distributiondistr"   installed_locationr#   Nc                 .    || _         || _        || _        y r%   )_dist_info_location_installed_location)r'   r^   r"   r_   s       r(   r)   zDistribution.__init__d   s     
+#5 r*   	directoryc                     t        j                  |      }t        j                  j                  j                  |      } | |||j                        S r%   )r3   Path	importlibmetadatar]   atrL   )r:   rd   r"   r^   s       r(   from_directoryzDistribution.from_directoryn   sA    Y/!!..11-@4(<(<==r*   metadata_contentsrG   project_namec                    t        j                  t        dd      j                        }|dz  }|j	                  |       t
        j                  j                  j                  |j                        } | ||j                  d       S )Nrh   T)kindglobally_managedMETADATA)
r3   rf   r   r@   write_bytesrg   rh   r]   ri   rL   )r:   rk   rG   rl   temp_dirmetadata_pathr^   s          r(   from_metadata_file_contentsz(Distribution.from_metadata_file_contentst   st     <<zDAFF
 !:-!!"34!!..11-2F2FG4--t44r*   rP   r,   c                 V   	 |j                         5 }t        j                  |||j                        }d d d         | |j                  t        j                  |j                              S # 1 sw Y   :xY w# t        j
                  $ r}t        |j                  |      |d }~ww xY wr%   )

as_zipfiler    r?   r-   rY   
BadZipFiler   r"   r3   r4   )r:   rP   r,   r+   r^   rO   s         r(   
from_wheelzDistribution.from_wheel   s    	<!!#r(55b$O $ 4++W-B-B5>>-RSS	 $#!! 	<u~~t4!;	<s-   A9 "A-A9 -A62A9 9B(B##B(c                 Z    | j                   y t        | j                   j                        S r%   )rb   rB   rL   r'   s    r(   r-   zDistribution.location   s(    &4&&--..r*   c                 F    | j                   y t        | j                         S r%   )rb   rB   rz   s    r(   r"   zDistribution.info_location   s"    &4&&''r*   c                 X    | j                   y t        t        | j                               S r%   )rc   r   rB   rz   s    r(   r_   zDistribution.installed_location   s'    ##+c$":":;<<r*   c                 ,    t        | j                        S r%   )r   ra   rz   s    r(   canonical_namezDistribution.canonical_name   s    &tzz22r*   c                     t        | j                        d   x}rt        |      S t        | j                  j                        S )Nr   )r   ra   parse_versionversion)r'   r   s     r(   r   zDistribution.version   s;    @LQOO7O ))TZZ//00r*   c                 .    | j                   j                  S r%   )ra   r   rz   s    r(   raw_versionzDistribution.raw_version   s    zz!!!r*   r@   c                 N    | j                   j                  t        |            d uS r%   )ra   rR   rB   rE   s     r(   is_filezDistribution.is_file   s     zz##CI.d::r*   c              #      K   t        | j                  t        j                        sy | j                  j	                  d      j                         D ]  }|j                    y w)Nscripts)
isinstancerb   r3   rf   joinpathrF   r,   )r'   childs     r(   iter_distutils_script_namesz(Distribution.iter_distutils_script_names   sN      $--w||<((11)<DDFE** Gs   A#A%c                 h    | j                   j                  t        |            }|t        |      |S r%   )ra   rR   rB   rD   )r'   r@   contents      r(   rR   zDistribution.read_text   s/    **&&s4y1?#D))r*   c                 .    | j                   j                  S r%   )ra   entry_pointsrz   s    r(   iter_entry_pointszDistribution.iter_entry_points   s    zz&&&r*   c                 r    t        t        j                  j                  | j                  j
                        S r%   )r
   emailmessageMessagera   rh   rz   s    r(   _metadata_implzDistribution._metadata_impl   s%     EMM))4::+>+>??r*   c                 r    | j                   j                  dg       D cg c]  }t        |       c}S c c}w )NzProvides-Extra)rh   get_allr   )r'   extras     r(   iter_provided_extrasz!Distribution.iter_provided_extras   s@     ../?D
D e$D
 	
 
s   4extrasc              #   J  K   |D cg c]  }d|i }}| j                   j                  dg       D ]i  }t        |j                               j                  s -|s"j                  j                  ddi      r Qt        fd|D              sf k y c c}w w)Nr   zRequires-Dist c              3   T   K   | ]  }j                   j                  |       ! y wr%   )markerevaluate)r6   contextreqs     r(   r8   z1Distribution.iter_dependencies.<locals>.<genexpr>   s!     JgSZZ((1s   %()rh   r   r   stripr   r   any)r'   r   rO   contexts
req_stringr   s        @r(   iter_dependencieszDistribution.iter_dependencies   s     DJ-KFqwlF-K--//DJ "*"2"2"45C::	

 3 3WbM B	JJJ	 E .Ls   B#BBB#B#)r[   )+rS   rT   rU   rg   rh   r]   r   r   r)   rX   rB   r   rj   rW   rt   r   rx   propertyr-   r"   r_   r   r~   r   r   r   r   boolr   r   r   rR   r   r   r   r   r   r   r   r   r   r   r   r[   r*   r(   r]   r]   c   s	   6  --6  )6 %X.	6
 
6 >s >/? > >
 5 5 5 	5
 
5 5  Tu TC T4D T T /(3- / /
 (x} ( (
 =HSM = =
 3 3 3 1 1 1
 "S " ";H ; ;Xc] h 3 '8N#; '@ 5 5 @
h~&> 

3 +AV r*   r]   )0email.messager   importlib.metadatarg   r3   rY   typingr   r   r   r   r   r   r	   r
   "pip._vendor.packaging.requirementsr   pip._vendor.packaging.utilsr   r   pip._vendor.packaging.versionr   r   r   pip._internal.exceptionsr   r   pip._internal.metadata.baser   r   r   r   pip._internal.utils.miscr   pip._internal.utils.packagingr   pip._internal.utils.temp_dirr   pip._internal.utils.wheelr   r   _compatr   r   r   rh   r]   r    r[   r*   r(   <module>r      s{       	 	 	 ; I 1 @ C  4 9 6 K 8	**77 8vz# zr*   