
    if3'                        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mZm	Z	m
Z
mZ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 d dlmZmZmZ d dlmZ d d	lmZm Z  d d
l!m"Z"m#Z# ddl$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z* g dZ+ ej,        e-          Z.dZ/ G d de          Z0 G d d          Z1 G d de%          Z2 G d de'          Z3dS )    N)
CollectionIterableIteratorListMapping
NamedTupleOptional)pkg_resources)Requirement)NormalizedNamecanonicalize_name)parse)InvalidWheelNoneMetadataErrorUnsupportedWheel)egg_link_path_from_location)display_pathnormalize_path)parse_wheelread_wheel_metadata_file   )BaseDistributionBaseEntryPointBaseEnvironmentDistributionVersionInfoPathWheel)NAMEDistributionEnvironmentr
   c                   .    e Zd ZU eed<   eed<   eed<   dS )
EntryPointnamevaluegroupN)__name__
__module____qualname__str__annotations__     V/var/www/html/env/lib/python3.11/site-packages/pip/_internal/metadata/pkg_resources.pyr"   r"   "   s+         
IIIJJJJJJJJr,   r"   c                       e Zd ZdZdeeef         deddfdZdedefdZ	dedefd	Z
dedee         fd
ZdedefdZdedee         fdZdededdfdZdS )InMemoryMetadatazIMetadataProvider that reads metadata files from a dictionary.

    This also maps metadata decoding exceptions to our internal exception type.
    metadata
wheel_namereturnNc                 "    || _         || _        d S N)	_metadata_wheel_name)selfr0   r1   s      r-   __init__zInMemoryMetadata.__init__.   s    !%r,   r#   c                     || j         v S r4   )r5   r7   r#   s     r-   has_metadatazInMemoryMetadata.has_metadata2   s    t~%%r,   c           
          	 | j         |                                         S # t          $ r#}t          d| j         d| d| d          d }~ww xY w)NzError decoding metadata for z: z in z file)r5   decodeUnicodeDecodeErrorr   r6   )r7   r#   es      r-   get_metadatazInMemoryMetadata.get_metadata5   sr    	>$'..000! 	 	 	"Ut/?UU1UU$UUU  	s   ! 
AA		Ac                 P    t          j        |                     |                    S r4   )r
   yield_linesr@   r:   s     r-   get_metadata_linesz#InMemoryMetadata.get_metadata_lines>   s!    ():):4)@)@AAAr,   c                     dS NFr+   r:   s     r-   metadata_isdirzInMemoryMetadata.metadata_isdirA   s    ur,   c                     g S r4   r+   r:   s     r-   metadata_listdirz!InMemoryMetadata.metadata_listdirD   s    	r,   script_name	namespacec                     d S r4   r+   )r7   rI   rJ   s      r-   
run_scriptzInMemoryMetadata.run_scriptG   s    r,   )r&   r'   r(   __doc__r   r)   bytesr8   boolr;   r@   r   rC   rF   r   rH   rL   r+   r,   r-   r/   r/   (   s1        
&e!4 &# &$ & & & && & & & & &     Bs Bx} B B B B3 4    S T#Y    c c d      r,   r/   c            	       "   e Zd Zdej        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!j"        j#        fdZ$d de%e         dee&         fdZ'dee         fdZ(dedefdZ)dS )!r   distr2   Nc                     || _         d S r4   )_distr7   rQ   s     r-   r8   zDistribution.__init__L   s    


r,   	directoryc                 0   |                     t          j                  }t          j                            |          \  }}t          j        ||          }|                    d          r2t
          j        }t          j        	                    |          d         }na|                    d          sJ t
          j
        }t          j        	                    |          d                             d          d         } ||||          } | |          S )Nz	.egg-infor   z
.dist-info-)project_namer0   )rstriposseppathsplitr
   PathMetadataendswithr   splitextDistInfoDistribution)	clsrU   dist_dirbase_dirdist_dir_namer0   dist_cls	dist_namerQ   s	            r-   from_directoryzDistribution.from_directoryO   s    ##BF++ #%'--"9"9- -hAA [)) 	I$1H((77:II$$\22222$9H((77:@@EEaHIxy8LLLs4yyr,   metadata_contentsfilenamerX   c                 j    d|i}t          j        |t          ||          |          } | |          S )NMETADATAlocationr0   rX   )r
   ra   r/   )rb   ri   rj   rX   metadata_dictrQ   s         r-   from_metadata_file_contentsz(Distribution.from_metadata_file_contentsc   sM     )
 1%mX>>%
 
 

 s4yyr,   wheelr#   c                    	 |                                 5 t          |          \  }fd                                D             }d d d            n# 1 swxY w Y   nN# t          j        $ r}t          |j        |          |d }~wt          $ r}t          | d|           d }~ww xY wt          j	        |j        t          ||j                  |          } | |          S )Nc                     i | ]E}|                      d           |                    d d          d         t          |          FS )/r   )
startswithr]   r   ).0r\   info_dirzfs     r-   
<dictcomp>z+Distribution.from_wheel.<locals>.<dictcomp>y   sa     ! ! !(~~~66!JJsA&&r*,DR,N,N! ! !r,   z has an invalid wheel, rm   )
as_zipfiler   namelistzipfile
BadZipFiler   rn   r   r
   ra   r/   )	rb   rq   r#   _ro   r?   rQ   rx   ry   s	          @@r-   
from_wheelzDistribution.from_wheelt   sc   	H!!## r)"d33!! ! ! ! ! "! ! !               ! 	< 	< 	<u~t44!; 	H 	H 	H"d#F#F1#F#FGGG	H1^%mU^DD
 
 

 s4yysF   A% 5AA% AA%  A!A% %B04B

B0B++B0c                     | j         j        S r4   )rS   rn   r7   s    r-   rn   zDistribution.location       z""r,   c                 t    t          | j                  }|r|}n| j        r| j        }nd S t          |          S r4   )r   raw_namern   r   )r7   egg_linkrn   s      r-   installed_locationzDistribution.installed_location   sF    .t}== 	HH] 	}HH4h'''r,   c                     | j         j        S r4   )rS   egg_infor   s    r-   info_locationzDistribution.info_location   r   r,   c                 b    	 t          | j        j        j                  S # t          $ r Y dS w xY wrE   )rO   rS   	_providerr\   AttributeErrorr   s    r-   installed_by_distutilsz#Distribution.installed_by_distutils   s?    
	
,1222 	 	 	55	s     
..c                 4    t          | j        j                  S r4   )r   rS   rX   r   s    r-   canonical_namezDistribution.canonical_name   s     !8999r,   c                 4    t          | j        j                  S r4   )parse_versionrS   versionr   s    r-   r   zDistribution.version   s    TZ/000r,   r\   c                 P    | j                             t          |                    S r4   )rS   r;   r)   )r7   r\   s     r-   is_filezDistribution.is_file   s    z&&s4yy111r,   c              #   J   K   | j                             d          E d {V  d S )Nscripts)rS   rH   r   s    r-   iter_distutils_script_namesz(Distribution.iter_distutils_script_names   s4      :..y99999999999r,   c                     t          |          }| j                            |          st          |          | j                            |          }|t          | |          |S r4   )r)   rS   r;   FileNotFoundErrorr@   r   )r7   r\   r#   contents       r-   	read_textzDistribution.read_text   sb    4yyz&&t,, 	*#D)))*))$//?#D$///r,   c              #   \  K   | j                                                                         D ]}\  }}|                                D ]c\  }}t          |                              d          \  }}}t          |                                |                                |          V  d~d S )N=)r#   r$   r%   )rS   get_entry_mapitemsr)   	partitionr"   strip)r7   r%   entriesr#   entry_pointr   r$   s          r-   iter_entry_pointszDistribution.iter_entry_points   s      "j6688>>@@ 	V 	VNE7%,]]__ V V!k!$[!1!1!;!;C!@!@a djjll%++--uUUUUUUUV	V 	Vr,   c                    t          | j        t          j                  rd}nd}	 |                     |          }n]# t
          $ rP | j        rt          | j                  }nt          | j                  }t          
                    d|           d}Y nw xY wt          j                                        }|                    |           |                                S )z
        :raises NoneMetadataError: if the distribution reports `has_metadata()`
            True but `get_metadata()` returns None.
        rl   zPKG-INFOzNo metadata found in %s )
isinstancerS   r
   ra   r   r   rn   r   reprloggerwarningemailparser
FeedParserfeedclose)r7   metadata_namer0   displaying_pathfeed_parsers        r-   _metadata_implzDistribution._metadata_impl   s    
 dj-"DEE 	'&MM&M	~~m44HH  	 	 	} 6".t}"="="&t}"5"5NN4oFFFHHH	 l--//"""  """s   < ABBr+   extrasc                     |r8t          d |D                       }|                    | j        j                  }| j                            |          S )Nc              3   >   K   | ]}t          j        |          V  d S r4   )r
   
safe_extra)rw   r?   s     r-   	<genexpr>z1Distribution.iter_dependencies.<locals>.<genexpr>   s-      KKq}7::KKKKKKr,   )	frozensetintersectionrS   r   requires)r7   r   s     r-   iter_dependencieszDistribution.iter_dependencies   sT     	<KKFKKKKKF(():;;Fz""6***r,   c                     | j         j        S r4   )rS   r   r   s    r-   iter_provided_extrasz!Distribution.iter_provided_extras   s    z  r,   extrac                 B    t          j        |          | j        j        v S r4   )r
   r   rS   r   )r7   r   s     r-   is_extra_providedzDistribution.is_extra_provided   s    '..$*2CCCr,   )r+   )*r&   r'   r(   r
   r   r8   classmethodr)   r   rh   rN   rp   r   r   propertyr	   rn   r   r   rO   r   r   r   r   r   r   r   r   r   r   r   r   r   r   messageMessager   r   r   r   r   r   r+   r,   r-   r   r   K   s       ]7 D     s /?    [&    	
 
   [  u C 4D    [( #(3- # # # X# (HSM ( ( ( X( #x} # # # X#     X : : : : X: 1, 1 1 1 X12H 2 2 2 2 2:Xc] : : : :h 3    V8N#; V V V V# 5 # # # #,+ +
3 ++AV + + + +!hsm ! ! ! !Ds Dt D D D D D Dr,   r   c                       e Zd Zdej        ddfdZedefd            Zede	e
e                  defd            Zdee         fdZd	ede	e         fd
Zd	ede	e         fdZdS )r    wsr2   Nc                     || _         d S r4   )_ws)r7   r   s     r-   r8   zEnvironment.__init__   s    r,   c                 ,     | t           j                  S r4   )r
   working_set)rb   s    r-   defaultzEnvironment.default   s    s=,---r,   pathsc                 <     | t          j        |                    S r4   )r
   
WorkingSet)rb   r   s     r-   
from_pathszEnvironment.from_paths   s    s=+E22333r,   c              #   @   K   | j         D ]}t          |          V  d S r4   )r   r   rT   s     r-   _iter_distributionszEnvironment._iter_distributions   s8      H 	% 	%Dt$$$$$$	% 	%r,   r#   c                 p    t          |          }|                                 D ]}|j        |k    r|c S dS )zFind a distribution matching the ``name`` in the environment.

        This searches from *all* distributions available in the environment, to
        match the behavior of ``pkg_resources.get_distribution()``.
        N)r   iter_all_distributionsr   )r7   r#   r   rQ   s       r-   _search_distributionz Environment._search_distribution   sM     +400//11 	 	D"n44 5tr,   c                     |                      |          }|r|S 	 | j                            |           n# t          j        $ r Y d S w xY w|                      |          S r4   )r   r   requirer
   DistributionNotFound)r7   r#   rQ   s      r-   get_distributionzEnvironment.get_distribution  s{    ((.. 	K	 HT""""1 	 	 	44	((...s   6 A	A	)r&   r'   r(   r
   r   r8   r   r   r   r	   r   r)   r   r   r   r   r   r   r+   r,   r-   r    r       s       =3      . . . . [. 4xS	2 4 4 4 4 [4%X.>%? % % % %
 
:J1K 
 
 
 
/S /X6F-G / / / / / /r,   r    )4email.messager   email.parserloggingrZ   r}   typingr   r   r   r   r   r   r	   pip._vendorr
   "pip._vendor.packaging.requirementsr   pip._vendor.packaging.utilsr   r   pip._vendor.packaging.versionr   r   pip._internal.exceptionsr   r   r   pip._internal.utils.egg_linkr   pip._internal.utils.miscr   r   pip._internal.utils.wheelr   r   baser   r   r   r   r   r   __all__	getLoggerr&   r   r   r"   r/   r   r    r+   r,   r-   <module>r      sS            				  V V V V V V V V V V V V V V V V V V % % % % % % : : : : : : I I I I I I I I @ @ @ @ @ @ V V V V V V V V V V D D D D D D A A A A A A A A K K K K K K K K                2
1
1		8	$	$                      FXD XD XD XD XD# XD XD XDv0/ 0/ 0/ 0/ 0// 0/ 0/ 0/ 0/ 0/r,   