
    dh0)                    ~   d dl m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	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 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+ g dZ, ejZ                  e.      Z/dZ0 G d de      Z1 G d d      Z2 G d de'      Z3 G d de)      Z4y)    )annotationsN)
CollectionIterableIteratorMapping)
NamedTuple)pkg_resources)Requirement)NormalizedNamecanonicalize_name)Version)parse)InvalidWheelNoneMetadataErrorUnsupportedWheel)egg_link_path_from_location)display_pathnormalize_path)parse_wheelread_wheel_metadata_file   )BaseDistributionBaseEntryPointBaseEnvironmentInfoPathWheel)NAMEDistributionEnvironmentr	   c                  ,    e Zd ZU ded<   ded<   ded<   y)
EntryPointstrnamevaluegroupN)__name__
__module____qualname____annotations__     f/var/www/html/vivango/api/ia/venv/lib/python3.12/site-packages/pip/_internal/metadata/pkg_resources.pyr!   r!   '   s    
IJJr+   r!   c                  H    e Zd ZdZd
dZddZddZddZddZddZ	ddZ
y	)InMemoryMetadatazIMetadataProvider that reads metadata files from a dictionary.

    This also maps metadata decoding exceptions to our internal exception type.
    c                     || _         || _        y N)	_metadata_wheel_name)selfmetadata
wheel_names      r,   __init__zInMemoryMetadata.__init__3   s    !%r+   c                    || j                   v S r0   )r1   r3   r#   s     r,   has_metadatazInMemoryMetadata.has_metadata7   s    t~~%%r+   c           
         	 | j                   |   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)r1   decodeUnicodeDecodeErrorr   r2   )r3   r#   es      r,   get_metadatazInMemoryMetadata.get_metadata:   s[    	>>$'..00! 	".t/?/?.@1#T$uU 	s    	AAAc                J    t        j                  | j                  |            S r0   )r	   yield_linesr>   r8   s     r,   get_metadata_linesz#InMemoryMetadata.get_metadata_linesC   s    (():):4)@AAr+   c                     yNFr*   r8   s     r,   metadata_isdirzInMemoryMetadata.metadata_isdirF   s    r+   c                    g S r0   r*   r8   s     r,   metadata_listdirz!InMemoryMetadata.metadata_listdirI   s    	r+   c                     y r0   r*   )r3   script_name	namespaces      r,   
run_scriptzInMemoryMetadata.run_scriptL   s    r+   N)r4   zMapping[str, bytes]r5   r"   returnNone)r#   r"   rK   bool)r#   r"   rK   r"   )r#   r"   rK   zIterable[str])r#   r"   rK   z	list[str])rH   r"   rI   r"   rK   rL   )r&   r'   r(   __doc__r6   r9   r>   rA   rD   rF   rJ   r*   r+   r,   r.   r.   -   s+    
&&Br+   r.   c                  $   e Zd ZddZedd       Zedd       Ze	 	 	 	 	 	 	 	 dd       Zedd       Z	edd       Z
edd       Zedd       Zedd	       Zedd
       Zedd       Zedd       ZddZd dZd!dZd"dZd#dZd$d%dZd&dZy)'r   c                     || _         d | _        y r0   )_dist_Distribution__extra_mappingr3   dists     r,   r6   zDistribution.__init__Q   s    
 EIr+   c                    | j                   3| j                  j                  D ci c]  }t        |      | c}| _         | j                   S c c}w r0   )rR   rQ   extrasr   )r3   extras     r,   _extra_mappingzDistribution._extra_mappingW   sN    '=AZZ=N=N$49!%(%/$D  ###	$s   Ac                   |j                  t        j                        }t        j                  j	                  |      \  }}t        j                  ||      }|j                  d      r3t
        j                  }t        j                  j                  |      d   }nW|j                  d      sJ t
        j                  }t        j                  j                  |      d   j	                  d      d   } ||||      } | |      S )Nz	.egg-infor   z
.dist-info-)project_namer4   )rstriposseppathsplitr	   PathMetadataendswithr   splitextDistInfoDistribution)	cls	directorydist_dirbase_dirdist_dir_namer4   dist_cls	dist_namerT   s	            r,   from_directoryzDistribution.from_directory`   s    ##BFF+ #%''--"9- --hA [)$11H((7:I$$\222$99H((7:@@EaHIy8L4yr+   c                ^    d|i}t        j                  |t        ||      |      } | |      S )NMETADATAlocationr4   r[   )r	   rd   r.   )re   metadata_contentsfilenamer[   metadata_dictrT   s         r,   from_metadata_file_contentsz(Distribution.from_metadata_file_contentst   s?     )
 11%mX>%

 4yr+   c           	     ,   	 |j                         5 }t        ||      \  }}|j                         D ci c]6  }|j                  | d      r |j	                  dd      d   t        ||      8 }}d d d        t        j                  |j                  t        |j                        |      }	 | |	      S c c}w # 1 sw Y   LxY w# t        j                  $ r}t        |j                  |      |d }~wt        $ r}t        | d|       d }~ww xY w)N/r   z has an invalid wheel, ro   )
as_zipfiler   namelist
startswithr`   r   zipfile
BadZipFiler   rp   r   r	   rd   r.   )
re   wheelr#   zfinfo_dir_r_   rs   r=   rT   s
             r,   
from_wheelzDistribution.from_wheel   s   	H!!# r)"d3! !#!(1~6 JJsA&r*,DR,NN! ! 11^^%mU^^D

 4y!  !! 	<u~~t4!; 	H"dV+B1##FGG	HsK   C "B<;B7/B<1C 7B<<CC DC22D>DDc                .    | j                   j                  S r0   )rQ   rp   r3   s    r,   rp   zDistribution.location       zz"""r+   c                    t        | j                        }|r|}t        |      S | j                  r| j                  }t        |      S y r0   )r   raw_namerp   r   )r3   egg_linkrp   s      r,   installed_locationzDistribution.installed_location   sI    .t}}=H
 h''	 ]]}}H h'' r+   c                .    | j                   j                  S r0   )rQ   egg_infor   s    r,   info_locationzDistribution.info_location   r   r+   c                t    	 t        | j                  j                  j                        S # t        $ r Y yw xY wrC   )rM   rQ   	_providerr_   AttributeErrorr   s    r,   installed_by_distutilsz#Distribution.installed_by_distutils   s4    
	

,,1122 		s   (+ 	77c                @    t        | j                  j                        S r0   )r   rQ   r[   r   s    r,   canonical_namezDistribution.canonical_name   s     !8!899r+   c                @    t        | j                  j                        S r0   )parse_versionrQ   versionr   s    r,   r   zDistribution.version   s    TZZ//00r+   c                .    | j                   j                  S r0   )rQ   r   r   s    r,   raw_versionzDistribution.raw_version   s    zz!!!r+   c                J    | j                   j                  t        |            S r0   )rQ   r9   r"   )r3   r_   s     r,   is_filezDistribution.is_file   s    zz&&s4y11r+   c              #  V   K   | j                   j                  d      E d {    y 7 w)Nscripts)rQ   rF   r   s    r,   iter_distutils_script_namesz(Distribution.iter_distutils_script_names   s     ::..y999s   )')c                    t        |      }| j                  j                  |      st        |      | j                  j	                  |      }|t        | |      |S r0   )r"   rQ   r9   FileNotFoundErrorr>   r   )r3   r_   r#   contents       r,   	read_textzDistribution.read_text   sS    4yzz&&t,#D))**))$/?#D$//r+   c              #  0  K   | j                   j                         j                         D ]g  \  }}|j                         D ]O  \  }}t        |      j	                  d      \  }}}t        |j                         |j                         |       Q i y w)N=)r#   r$   r%   )rQ   get_entry_mapitemsr"   	partitionr!   strip)r3   r%   entriesr#   entry_pointr   r$   s          r,   iter_entry_pointszDistribution.iter_entry_points   s     "jj668>>@ 	VNE7%,]]_ V!k!$[!1!;!;C!@a djjl%++-uUUV	Vs   BBc                   t        | j                  t        j                        rd}nd}	 | j	                  |      }t        j                  j                         }|j                  |       |j                         S # t
        $ rR | j                  rt        | j                        }nt        | j                        }t        j                  d|       d}Y w xY w)z
        :raises NoneMetadataError: if the distribution reports `has_metadata()`
            True but `get_metadata()` returns None.
        rn   zPKG-INFOzNo metadata found in %s )
isinstancerQ   r	   rd   r   r   rp   r   reprloggerwarningemailparser
FeedParserfeedclose)r3   metadata_namer4   displaying_pathfeed_parsers        r,   _metadata_implzDistribution._metadata_impl   s    
 djj-"D"DE&M&M	~~m4H ll--/"  "" ! 	}}".t}}"="&t}}"5NN4oFH	s   A; ;ACCc                    |rKt        | j                        t        t        t        |            z  }|D cg c]  }| j                  |    }}| j                  j                  |      S c c}w r0   )setrX   mapr   rQ   requires)r3   rV   relevant_extrasrW   s       r,   iter_dependencieszDistribution.iter_dependencies   sh    !$"5"56%v.: O ?NNUd))%0NFNzz""6** Os   A)c                6    | j                   j                         S r0   )rX   keysr   s    r,   iter_provided_extrasz!Distribution.iter_provided_extras   s    ""''))r+   N)rT   zpkg_resources.DistributionrK   rL   )rK   zMapping[NormalizedName, str])rf   r"   rK   r   )rq   bytesrr   r"   r[   r"   rK   r   )r}   r   r#   r"   rK   r   )rK   z
str | None)rK   rM   )rK   r   )rK   r   )rK   r"   )r_   r   rK   rM   )rK   zIterator[str])r_   r   rK   r"   )rK   zIterable[BaseEntryPoint])rK   zemail.message.Message)r*   )rV   zCollection[str]rK   zIterable[Requirement])rK   zIterable[NormalizedName])r&   r'   r(   r6   propertyrX   classmethodrl   rt   r   rp   r   r   r   r   r   r   r   r   r   r   r   r   r   r*   r+   r,   r   r   P   s.   I $ $  &    	
 
    ( # # ( ( # #   : : 1 1 " "2:V#,+*r+   r   c                  P    e Zd ZddZed	d       Zed
d       ZddZddZddZ	y)r   c                    || _         y r0   )_ws)r3   wss     r,   r6   zEnvironment.__init__   s	    r+   c                .     | t         j                        S r0   )r	   working_set)re   s    r,   defaultzEnvironment.default   s    =,,--r+   c                8     | t        j                  |            S r0   )r	   
WorkingSet)re   pathss     r,   
from_pathszEnvironment.from_paths  s    =++E233r+   c              #  H   K   | j                   D ]  }t        |        y wr0   )r   r   rS   s     r,   _iter_distributionszEnvironment._iter_distributions  s$     HH 	%Dt$$	%s    "c                j    t        |      }| j                         D ]  }|j                  |k(  s|c S  y)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   )r3   r#   r   rT   s       r,   _search_distributionz Environment._search_distribution
  s>     +40//1 	D""n4	 r+   c                    | j                  |      }|r|S 	 | j                  j                  |       | j                  |      S # t        j                  $ r Y y w xY wr0   )r   r   requirer	   DistributionNotFound)r3   r#   rT   s      r,   get_distributionzEnvironment.get_distribution  s`    ((.K	 HHT" ((.. 11 		s   A AAN)r   zpkg_resources.WorkingSetrK   rL   )rK   r   )r   zlist[str] | NonerK   r   )rK   zIterator[BaseDistribution])r#   r"   rK   zBaseDistribution | None)
r&   r'   r(   r6   r   r   r   r   r   r   r*   r+   r,   r   r      s>     . . 4 4%
/r+   r   )5
__future__r   email.messager   email.parserloggingr]   r{   collections.abcr   r   r   r   typingr   pip._vendorr	   "pip._vendor.packaging.requirementsr
   pip._vendor.packaging.utilsr   r   pip._vendor.packaging.versionr   r   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   __all__	getLoggerr&   r   r   r!   r.   r   r   r*   r+   r,   <module>r      s    "    	  C C & : I 1 @ V V D A K  2			8	$    Fg*# g*T0// 0/r+   