
    ;ȋh0)                       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j-        e.          Z/dZ0 G d de          Z1 G d d          Z2 G d de'          Z3 G d de)          Z4dS )    )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<   dS )
EntryPointstrnamevaluegroupN)__name__
__module____qualname____annotations__     a/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/pip/_internal/metadata/pkg_resources.pyr!   r!   '   s+         IIIJJJJJJJJr+   r!   c                  J    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
dS )InMemoryMetadatazIMetadataProvider that reads metadata files from a dictionary.

    This also maps metadata decoding exceptions to our internal exception type.
    metadataMapping[str, bytes]
wheel_namer"   returnNonec                "    || _         || _        d S N)	_metadata_wheel_name)selfr/   r1   s      r,   __init__zInMemoryMetadata.__init__3   s    !%r+   r#   boolc                    || j         v S r5   )r6   r8   r#   s     r,   has_metadatazInMemoryMetadata.has_metadata7   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)r6   decodeUnicodeDecodeErrorr   r7   )r8   r#   es      r,   get_metadatazInMemoryMetadata.get_metadata:   sr    	>$'..000! 	 	 	"Ut/?UU1UU$UUU  	s   ! 
AA		AIterable[str]c                P    t          j        |                     |                    S r5   )r	   yield_linesrB   r<   s     r,   get_metadata_linesz#InMemoryMetadata.get_metadata_linesC   s!    ():):4)@)@AAAr+   c                    dS NFr*   r<   s     r,   metadata_isdirzInMemoryMetadata.metadata_isdirF   s    ur+   	list[str]c                    g S r5   r*   r<   s     r,   metadata_listdirz!InMemoryMetadata.metadata_listdirI   s    	r+   script_name	namespacec                    d S r5   r*   )r8   rM   rN   s      r,   
run_scriptzInMemoryMetadata.run_scriptL   s    r+   N)r/   r0   r1   r"   r2   r3   )r#   r"   r2   r:   )r#   r"   r2   r"   )r#   r"   r2   rC   )r#   r"   r2   rJ   )rM   r"   rN   r"   r2   r3   )r&   r'   r(   __doc__r9   r=   rB   rF   rI   rL   rP   r*   r+   r,   r.   r.   -   s         
& & & && & & &   B B B B           r+   r.   c                  X   e Zd Zd2dZed3d            Zed4d            Zed5d            Zed6d            Z	ed7d            Z
ed7d            Zed7d            Zed8d            Zed9d            Zed:d            Zed;d            Zd<d"Zd=d$Zd>d%Zd?d'Zd@d)ZdAdBd.ZdCd0Zd1S )Dr   distpkg_resources.Distributionr2   r3   c                "    || _         d | _        d S r5   )_dist_Distribution__extra_mappingr8   rS   s     r,   r9   zDistribution.__init__Q   s    
 EIr+   Mapping[NormalizedName, str]c                T    | j         d | j        j        D             | _         | j         S )Nc                .    i | ]}t          |          |S r*   )r   ).0extras     r,   
<dictcomp>z/Distribution._extra_mapping.<locals>.<dictcomp>Z   s0     $ $ $49!%((%$ $ $r+   )rW   rV   extrasr8   s    r,   _extra_mappingzDistribution._extra_mappingW   s<    '$ $=AZ=N$ $ $D  ##r+   	directoryr"   r   c                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_namer/   )rstriposseppathsplitr	   PathMetadataendswithr   splitextDistInfoDistribution)	clsrb   dist_dirbase_dirdist_dir_namer/   dist_cls	dist_namerS   s	            r,   from_directoryzDistribution.from_directory`   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bytesfilenamere   c                j    d|i}t          j        |t          ||          |          } | |          S )NMETADATAlocationr/   re   )r	   rn   r.   )ro   rv   rx   re   metadata_dictrS   s         r,   from_metadata_file_contentsz(Distribution.from_metadata_file_contentst   sM     )
 1%mX>>%
 
 

 s4yyr+   wheelr   r#   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   )
startswithrj   r   )r\   ri   info_dirzfs     r,   r^   z+Distribution.from_wheel.<locals>.<dictcomp>   sa     ! ! !(~~~66!JJsA&&r*,DR,N,N! ! !r+   z has an invalid wheel, r{   )
as_zipfiler   namelistzipfile
BadZipFiler   r|   r   r	   rn   r.   )	ro   r   r#   _r}   rA   rS   r   r   s	          @@r,   
from_wheelzDistribution.from_wheel   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
str | Nonec                    | j         j        S r5   )rV   r|   r`   s    r,   r|   zDistribution.location       z""r+   c                t    t          | j                  }|r|}n| j        r| j        }nd S t          |          S r5   )r   raw_namer|   r   )r8   egg_linkr|   s      r,   installed_locationzDistribution.installed_location   sF    .t}== 	HH] 	}HH4h'''r+   c                    | j         j        S r5   )rV   egg_infor`   s    r,   info_locationzDistribution.info_location   r   r+   r:   c                b    	 t          | j        j        j                  S # t          $ r Y dS w xY wrH   )r:   rV   	_providerri   AttributeErrorr`   s    r,   installed_by_distutilsz#Distribution.installed_by_distutils   s?    
	
,1222 	 	 	55	s     
..r   c                4    t          | j        j                  S r5   )r   rV   re   r`   s    r,   canonical_namezDistribution.canonical_name   s     !8999r+   r   c                4    t          | j        j                  S r5   )parse_versionrV   versionr`   s    r,   r   zDistribution.version   s    TZ/000r+   c                    | j         j        S r5   )rV   r   r`   s    r,   raw_versionzDistribution.raw_version   s    z!!r+   ri   r   c                P    | j                             t          |                    S r5   )rV   r=   r"   )r8   ri   s     r,   is_filezDistribution.is_file   s    z&&s4yy111r+   Iterator[str]c              #  J   K   | j                             d          E d {V  d S )Nscripts)rV   rL   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 r5   )r"   rV   r=   FileNotFoundErrorrB   r   )r8   ri   r#   contents       r,   	read_textzDistribution.read_text   sb    4yyz&&t,, 	*#D)))*))$//?#D$///r+   Iterable[BaseEntryPoint]c              #  \  K   | j                                                                         D ]}\  }}|                                D ]c\  }}t          |                              d          \  }}}t          |                                |                                |          V  d~d S )N=)r#   r$   r%   )rV   get_entry_mapitemsr"   	partitionr!   strip)r8   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+   email.message.Messagec                   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.
        rz   zPKG-INFOzNo metadata found in %s )
isinstancerV   r	   rn   r   r   r|   r   reprloggerwarningemailparser
FeedParserfeedclose)r8   metadata_namer/   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*   r_   Collection[str]Iterable[Requirement]c                     |rEt           j                  t          t          t          |                    z  } fd|D             } j                            |          S )Nc                *    g | ]}j         |         S r*   )ra   )r\   r]   r8   s     r,   
<listcomp>z2Distribution.iter_dependencies.<locals>.<listcomp>   s!    NNNUd)%0NNNr+   )setra   mapr   rV   requires)r8   r_   relevant_extrass   `  r,   iter_dependencieszDistribution.iter_dependencies   sm     	O!$"566%v..: : O ONNNoNNNFz""6***r+   Iterable[NormalizedName]c                4    | j                                         S r5   )ra   keysr`   s    r,   iter_provided_extrasz!Distribution.iter_provided_extras   s    "'')))r+   N)rS   rT   r2   r3   )r2   rY   )rb   r"   r2   r   )rv   rw   rx   r"   re   r"   r2   r   )r   r   r#   r"   r2   r   )r2   r   )r2   r:   )r2   r   )r2   r   )r2   r"   )ri   r   r2   r:   )r2   r   )ri   r   r2   r"   )r2   r   )r2   r   )r*   )r_   r   r2   r   )r2   r   )r&   r'   r(   r9   propertyra   classmethodru   r~   r   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r*   r+   r,   r   r   P   s!       I I I I $ $ $ X$    [&    [     [( # # # X# ( ( ( X( # # # X#    X : : : X: 1 1 1 X1 " " " X"2 2 2 2: : : :   V V V V# # # #,+ + + + +* * * * * *r+   r   c                  ^    e Zd ZddZedd            Zedd
            ZddZddZddZ	dS )r   wspkg_resources.WorkingSetr2   r3   c                    || _         d S r5   )_ws)r8   r   s     r,   r9   zEnvironment.__init__   s    r+   r   c                ,     | t           j                  S r5   )r	   working_set)ro   s    r,   defaultzEnvironment.default   s    s=,---r+   pathslist[str] | Nonec                <     | t          j        |                    S r5   )r	   
WorkingSet)ro   r   s     r,   
from_pathszEnvironment.from_paths  s    s=+E22333r+   Iterator[BaseDistribution]c              #  @   K   | j         D ]}t          |          V  d S r5   )r   r   rX   s     r,   _iter_distributionszEnvironment._iter_distributions  s8      H 	% 	%Dt$$$$$$	% 	%r+   r#   r"   BaseDistribution | Nonec                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   )r8   r#   r   rS   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 r5   )r   r   requirer	   DistributionNotFound)r8   r#   rS   s      r,   get_distributionzEnvironment.get_distribution  s{    ((.. 	K	 HT""""1 	 	 	44	((...s   6 A	A	N)r   r   r2   r3   )r2   r   )r   r   r2   r   )r2   r   )r#   r"   r2   r   )
r&   r'   r(   r9   r   r   r   r   r   r   r*   r+   r,   r   r      s            . . . [. 4 4 4 [4% % % %
 
 
 
/ / / / / /r+   r   )5
__future__r   email.messager   email.parserloggingrg   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      ss   " " " " " "          				  C C C C C C C C C C C C      & % % % % % : : : : : : I I I I I I I I 1 1 1 1 1 1 @ @ @ @ @ @ 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g* g* g* g* g*# g* g* g*T0/ 0/ 0/ 0/ 0// 0/ 0/ 0/ 0/ 0/r+   