
    hW                      T   S SK rS SKrS SKrS SKrS SKJr  S SKJ	r	J
r
JrJrJrJrJrJrJr  S SKJr  S SKJrJr  S SKJr  S SKJr  S SKJrJr  S S	KJrJ r J!r!J"r"  S S
K#J$r$  S SK%J&r&  S SK'J(r(  S SK)J*r*J+r+  SSK,J-r-J.r.J/r/   " S S\R`                  Rb                  5      r2 " S S\5      r1g)    N)PathLike)	
CollectionDictIterableIteratorMappingOptionalSequenceUnion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            	          \ rS rSrSrS\\R                  \4   S\R                  SS4S jr	\
S\R                  S	\S
\SS 4S j5       rS\S\\R                     4S jrS\S\\   4S jrS\\S4   S\R*                  4S jrSrg)WheelDistribution*   a  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                     Xl         X l        g N_filesr%   )selfr$   r%   s      |C:\Users\ROHAN GUPTA\OneDrive\Desktop\mathbuddy-assessment\venv\Lib\site-packages\pip/_internal/metadata/importlib/_dists.py__init__WheelDistribution.__init__5   s    
 *    zfnamelocationc           	         ^
 [        X5      u  m
nU
4S jUR                  5        5       nU VVs0 s H  u  pgU[        X5      _M     nnn[        R                  " UT
5      n	U " X5      $ s  snnf )Nc              3      >#    U  HK  nUR                  T S 35      (       d  M  U[        R                  " UR                  S S5      S   5      4v   MM     g7f)/r   N)
startswithpathlibPurePosixPathsplit).0r1   info_dirs     r,   	<genexpr>1WheelDistribution.from_zipfile.<locals>.<genexpr>E   sM      
%(1~. BT7((C);B)?@A%s
   A2A)r   namelistr   r8   r9   )clsr0   r1   r2   _pathsfullpathrelpathr$   r%   r<   s             @r,   from_zipfileWheelDistribution.from_zipfile=   s|     ""+!

 &+
%*! -b;;%* 	 
  --hA5((
s   A)pathc                     [         R                  " [        U5      5      U R                  ;   a  [	        U R                  5      $ [        U5      er(   )r8   r9   strr*   iterFileNotFoundErrorr+   rG   s     r,   iterdirWheelDistribution.iterdirQ   s7      T+t{{:$$%%r/   filenamec                     U R                   [        R                  " U5         n UR	                  S5      nU$ ! [         a     g f = f! [
         a2  nU R                  R                  nSU SU SU S3n[        U5      eS nAff = f)Nzutf-8zError decoding metadata for z: z in z file)	r*   r8   r9   KeyErrordecodeUnicodeDecodeErrorr%   parentr   )r+   rO   datatextewheelerrors          r,   	read_textWheelDistribution.read_textW   s    	;;w44X>?D	*;;w'D
   		 " 	*&&--E25'A3d8*ERE"5))	*s&   #9 A	 
AA	
B-B  BzPathLike[str]c                     [         er(   )NotImplementedErrorrL   s     r,   locate_fileWheelDistribution.locate_filed   s
     "!r/   r)   )__name__
__module____qualname____firstlineno____doc__r   r8   r9   bytesr-   classmethodzipfileZipFilerI   rE   r   r   rM   r	   rZ   r   Pathr^   __static_attributes__ r/   r,   r"   r"   *   s    +w,,e34+ ,,+ 
	+ )OO) ) 	)
 
) )&&H &'2G2G)H &# (3- "c?&: ; " "r/   r"   c            	          \ rS rSrS\R
                  R                  S\\   S\\   SS4S jr	\
S\S\4S	 j5       r\
S
\S\S\S\4S j5       r\
S\S\S\4S j5       r\S\\   4S j5       r\S\\   4S j5       r\S\\   4S j5       r\S\4S j5       r\S\4S j5       r\S\4S j5       rS\S\4S jrS\\   4S jrS\S\4S jr S\!\"   4S jr#S\$RJ                  RL                  4S jr'S\!\   4S jr(S!S\)\   S\!\*   4S jjr+S r,g)"Distributionj   distr%   installed_locationr&   Nc                 (    Xl         X l        X0l        g r(   _dist_info_location_installed_location)r+   ro   r%   rp   s       r,   r-   Distribution.__init__k   s     
+#5 r/   	directoryc                     [         R                  " U5      n[        R                  R                  R                  U5      nU " X2UR                  5      $ r(   )r8   ri   	importlibmetadatarm   atrT   )r@   rw   r%   ro   s       r,   from_directoryDistribution.from_directoryu   s?    Y/!!..11-@4(<(<==r/   metadata_contentsrO   project_namec                 
   [         R                  " [        SSS9R                  5      nUS-  nUR	                  U5        [
        R                  R                  R                  UR                  5      nU " XeR                  S 5      $ )Nrz   T)kindglobally_managedMETADATA)
r8   ri   r   rG   write_bytesry   rz   rm   r{   rT   )r@   r~   rO   r   temp_dirmetadata_pathro   s          r,   from_metadata_file_contents(Distribution.from_metadata_file_contents{   sr     <<zDAFF
 !:-!!"34!!..11-2F2FG4--t44r/   rX   r1   c                 b    UR                  5        n[        R                  X2UR                  5      nS S S 5        U " WUR                  [        R                  " UR                  5      5      $ ! , (       d  f       N@= f! [        R
                   a  n[        UR                  U5      UeS nAff = fr(   )

as_zipfiler"   rE   r2   rg   
BadZipFiler   r%   r8   r9   )r@   rX   r1   r0   ro   rW   s         r,   
from_wheelDistribution.from_wheel   s    	<!!#r(55bO $ 4++W-B-B5>>-RSS	 $#!! 	<u~~t4!;	<s3   A> !A-A> -
A;7A> ;A> >B.B))B.c                 \    U R                   c  g [        U R                   R                  5      $ r(   )rt   rI   rT   r+   s    r,   r2   Distribution.location   s(    &4&&--..r/   c                 H    U R                   c  g [        U R                   5      $ r(   )rt   rI   r   s    r,   r%   Distribution.info_location   s"    &4&&''r/   c                 Z    U R                   c  g [        [        U R                   5      5      $ r(   )ru   r   rI   r   s    r,   rp   Distribution.installed_location   s'    ##+c$":":;<<r/   c                 ,    [        U R                  5      $ r(   )r   rs   r   s    r,   canonical_nameDistribution.canonical_name   s    &tzz22r/   c                     [        U R                  5      S   =n(       a  [        U5      $ [        U R                  R                  5      $ )Nr   )r    rs   parse_versionversion)r+   r   s     r,   r   Distribution.version   s;    @LQOO7O ))TZZ//00r/   c                 .    U R                   R                  $ r(   )rs   r   r   s    r,   raw_versionDistribution.raw_version   s    zz!!!r/   rG   c                 N    U R                   R                  [        U5      5      S L$ r(   )rs   rZ   rI   rL   s     r,   is_fileDistribution.is_file   s     zz##CI.d::r/   c              #      #    [        U R                  [        R                  5      (       d  g U R                  R	                  S5      R                  5        H  nUR                  v   M     g 7f)Nscripts)
isinstancert   r8   ri   joinpathrM   r1   )r+   childs     r,   iter_distutils_script_names(Distribution.iter_distutils_script_names   sP      $--w||<<((11)<DDFE** Gs   A*A,c                 j    U R                   R                  [        U5      5      nUc  [        U5      eU$ r(   )rs   rZ   rI   rK   )r+   rG   contents      r,   rZ   Distribution.read_text   s/    **&&s4y1?#D))r/   c                 .    U R                   R                  $ r(   )rs   entry_pointsr   s    r,   iter_entry_pointsDistribution.iter_entry_points   s    zz&&&r/   c                 r    [        [        R                  R                  U R                  R
                  5      $ r(   )r   emailmessageMessagers   rz   r   s    r,   _metadata_implDistribution._metadata_impl   s%     EMM))4::+>+>??r/   c                 x    U R                   R                  S/ 5       Vs/ s H  n[        U5      PM     sn$ s  snf )NzProvides-Extra)rz   get_allr   )r+   extras     r,   iter_provided_extras!Distribution.iter_provided_extras   s@     ../?D
D e$D
 	
 
s   7extrasc              #     ^#    U Vs/ s H  nSU0PM	     nnU R                   R                  S/ 5       H  n[        UR                  5       5      mTR                  (       d  Tv   M3  U(       d(  TR                  R                  SS05      (       a  Tv   Mb  [        U4S jU 5       5      (       d  M~  Tv   M     g s  snf 7f)Nr   zRequires-Dist c              3   Z   >#    U  H   nTR                   R                  U5      v   M"     g 7fr(   )markerevaluate)r;   contextreqs     r,   r=   1Distribution.iter_dependencies.<locals>.<genexpr>   s#     JgSZZ((11s   (+)rz   r   r   stripr   r   any)r+   r   rW   contexts
req_stringr   s        @r,   iter_dependenciesDistribution.iter_dependencies   s     DJ-KFqwlF-K--//DJ "*"2"2"45C::	

 3 3WbM B B	JJJJ	 E .Ls   C B;BC 2C rr   )rk   )-r`   ra   rb   rc   ry   rz   rm   r	   r   r-   rf   rI   r   r|   re   r   r   r   propertyr2   r%   rp   r   r   r   r   r   r   boolr   r   r   rZ   r   r   r   r   r   r   r   r   r   r   r   rj   rk   r/   r,   rm   rm   j   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/   rm   )3email.messager   importlib.metadatary   r8   rg   osr   typingr   r   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    rz   rm   r"   rk   r/   r,   <module>r      s~        
 
 
 ; I 1 @ C  4 9 6 K ="	**77 ="@z# zr/   