
    жvg.)                        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 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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)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 eed<   eed<   eed<   dS )
EntryPointnamevaluegroupN)__name__
__module____qualname__str__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                       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__6   s    !%r,   r#   c                     || j         v S r4   )r5   r7   r#   s     r-   has_metadatazInMemoryMetadata.has_metadata:   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_metadata=   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_linesF   s!    ():):4)@)@AAAr,   c                     dS NFr+   r:   s     r-   metadata_isdirzInMemoryMetadata.metadata_isdirI   s    ur,   c                     g S r4   r+   r:   s     r-   metadata_listdirz!InMemoryMetadata.metadata_listdirL   s    	r,   script_name	namespacec                     d S r4   r+   )r7   rI   rJ   s      r-   
run_scriptzInMemoryMetadata.run_scriptO   s    r,   )r&   r'   r(   __doc__r   r)   bytesr8   boolr;   r@   r   rC   rF   r   rH   rL   r+   r,   r-   r/   r/   0   s1        
&e!4 &# &$ & & & && & & & & &     Bs Bx} B B B B3 4    S T#Y    c c d      r,   r/   c            	       Z   e Zd Zdej        ddfdZedeee	f         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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S )!r   distr2   Nc                 "    || _         d | _        d S r4   )_dist_Distribution__extra_mappingr7   rQ   s     r-   r8   zDistribution.__init__T   s    
 HLr,   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>]   s0     $ $ $49!%((%$ $ $r,   )rT   rS   extrasr7   s    r-   _extra_mappingzDistribution._extra_mappingZ   s<    '$ $=AZ=N$ $ $D  ##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)	clsr^   dist_dirbase_dirdist_dir_namer0   dist_cls	dist_namerQ   s	            r-   from_directoryzDistribution.from_directoryc   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filenamera   c                 j    d|i}t          j        |t          ||          |          } | |          S )NMETADATAlocationr0   ra   )r
   rj   r/   )rk   rr   rs   ra   metadata_dictrQ   s         r-   from_metadata_file_contentsz(Distribution.from_metadata_file_contentsw   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   )
startswithrf   r   )rX   re   info_dirzfs     r-   rZ   z+Distribution.from_wheel.<locals>.<dictcomp>   sa     ! ! !(~~~66!JJsA&&r*,DR,N,N! ! !r,   z has an invalid wheel, rv   )
as_zipfiler   namelistzipfile
BadZipFiler   rw   r   r
   rj   r/   )	rk   rz   r#   _rx   r?   rQ   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c                     | j         j        S r4   )rS   rw   r\   s    r-   rw   zDistribution.location       z""r,   c                 t    t          | j                  }|r|}n| j        r| j        }nd S t          |          S r4   )r   raw_namerw   r   )r7   egg_linkrw   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   	_providerre   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   ra   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,   c                     | j         j        S r4   )rS   r   r\   s    r-   raw_versionzDistribution.raw_version   s    z!!r,   re   c                 P    | j                             t          |                    S r4   )rS   r;   r)   )r7   re   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   re   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.
        ru   zPKG-INFOzNo metadata found in %s )
isinstancerS   r
   rj   r   r   rw   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+   r[   c                      |rEt           j                  t          t          t          |                    z  } fd|D             } j                            |          S )Nc                 *    g | ]}j         |         S r+   )r]   )rX   rY   r7   s     r-   
<listcomp>z2Distribution.iter_dependencies.<locals>.<listcomp>   s!    NNNUd)%0NNNr,   )setr]   mapr   rS   requires)r7   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,   c                 4    | j                                         S r4   )r]   keysr\   s    r-   iter_provided_extrasz!Distribution.iter_provided_extras   s    "'')))r,   )r+   ),r&   r'   r(   r
   r   r8   propertyr   r   r)   r]   classmethodr   rq   rN   ry   r   r   r	   rw   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   S   s0       L]7 LD L L L L $(; < $ $ $ X$ s /?    [&    	
 
   [  u C 4D    [( #(3- # # # X# (HSM ( ( ( X( #x} # # # X#     X : : : : X: 1 1 1 1 X1 "S " " " X"2H 2 2 2 2 2:Xc] : : : :h 3    V8N#; V V V V# 5 # # # #,+ +
3 ++AV + + + +*h~&> * * * * * *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)rk   s    r-   defaultzEnvironment.default  s    s=,---r,   pathsc                 <     | t          j        |                    S r4   )r
   
WorkingSet)rk   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   rU   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loggingrc   r   typingr   r   r   r   r   r   r	   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      sy            				                   & % % % % % : : : : : : 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,   