
    $ȂiQ                     D   S SK rS SKrS SKrS SKrS SK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\RZ                  R\                  5      r/ " S S\5      r.g)    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            	           \ 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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      XD:\sksbv-state-backend\venv\Lib\site-packages\pip/_internal/metadata/importlib/_dists.py__init__WheelDistribution.__init__3   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).0r/   info_dirs     r*   	<genexpr>1WheelDistribution.from_zipfile.<locals>.<genexpr>C   sM      
%(1~. BT7((C);B)?@A%s
   A2A)r   namelistr   r6   r7   )clsr.   r/   r0   _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&   )r6   r7   strr(   iterFileNotFoundErrorr)   rE   s     r*   iterdirWheelDistribution.iterdirO   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(   r6   r7   KeyErrordecodeUnicodeDecodeErrorr#   parentr   )r)   rM   datatextewheelerrors          r*   	read_textWheelDistribution.read_textU   s    	;;w44X>?D	*;;w'D
   		 " 	*&&--E25'A3d8*ERE"5))	*s&   #9 A	 
AA	
B-B  Br'   )__name__
__module____qualname____firstlineno____doc__r   r6   r7   bytesr+   classmethodzipfileZipFilerG   rC   r   r   rK   r   rX   __static_attributes__ r-   r*   r    r    (   s    +w,,e34+ ,,+ 
	+ )OO) ) 	)
 
) )&&H &'2G2G)H &# (3- 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)"Distributionc   distr#   installed_locationr$   Nc                 (    Xl         X l        X0l        g r&   _dist_info_location_installed_location)r)   rh   r#   ri   s       r*   r+   Distribution.__init__d   s     
+#5 r-   	directoryc                     [         R                  " U5      n[        R                  R                  R                  U5      nU " X2UR                  5      $ r&   )r6   Path	importlibmetadatarf   atrR   )r>   rp   r#   rh   s       r*   from_directoryDistribution.from_directoryn   s?    Y/!!..11-@4(<(<==r-   metadata_contentsrM   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      $ )Nrt   T)kindglobally_managedMETADATA)
r6   rr   r   rE   write_bytesrs   rt   rf   ru   rR   )r>   rx   rM   ry   temp_dirmetadata_pathrh   s          r*   from_metadata_file_contents(Distribution.from_metadata_file_contentst   sr     <<zDAFF
 !:-!!"34!!..11-2F2FG4--t44r-   rV   r/   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    rC   r0   ra   
BadZipFiler   r#   r6   r7   )r>   rV   r/   r.   rh   rU   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&   )rm   rG   rR   r)   s    r*   r0   Distribution.location   s(    &4&&--..r-   c                 H    U R                   c  g [        U R                   5      $ r&   )rm   rG   r   s    r*   r#   Distribution.info_location   s"    &4&&''r-   c                 Z    U R                   c  g [        [        U R                   5      5      $ r&   )rn   r   rG   r   s    r*   ri   Distribution.installed_location   s'    ##+c$":":;<<r-   c                 ,    [        U R                  5      $ r&   )r   rl   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   rl   parse_versionversion)r)   r   s     r*   r   Distribution.version   s;    @LQOO7O ))TZZ//00r-   c                 .    U R                   R                  $ r&   )rl   r   r   s    r*   raw_versionDistribution.raw_version   s    zz!!!r-   rE   c                 N    U R                   R                  [        U5      5      S L$ r&   )rl   rX   rG   rJ   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)
isinstancerm   r6   rr   joinpathrK   r/   )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&   )rl   rX   rG   rI   )r)   rE   contents      r*   rX   Distribution.read_text   s/    **&&s4y1?#D))r-   c                 .    U R                   R                  $ r&   )rl   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Messagerl   rt   r   s    r*   _metadata_implDistribution._metadata_impl   s%     EMM))4::+>+>??r-   c                 v    U R                   R                  S/ 5       Vs/ sH  n[        U5      PM     sn$ s  snf )NzProvides-Extra)rt   get_allr   )r)   extras     r*   iter_provided_extras!Distribution.iter_provided_extras   s@     ../?D
D e$D
 	
 
s   6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   X   >#    U H   nTR                   R                  U5      v   M"     g 7fr&   )markerevaluate)r9   contextreqs     r*   r;   1Distribution.iter_dependencies.<locals>.<genexpr>   s#     JgSZZ((11s   '*)rt   r   r   stripr   r   any)r)   r   rU   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   B?B:BB?1B?rk   )rd   )-rZ   r[   r\   r]   rs   rt   rf   r   r   r+   r`   rG   r   rv   r_   r   r   r   propertyr0   r#   ri   r   r   r   r   r   r   boolr   r   r   rX   r   r   r   r   r   r   r   r   r   r   r   rc   rd   r-   r*   rf   rf   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-   rf   )0email.messager   importlib.metadatars   r6   ra   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   rt   rf   r    rd   r-   r*   <module>r      s{       	 	 	 ; I 1 @ C  4 9 6 K 8	**77 8vz# zr-   