
    eg3'                     j   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jX                  e-      Z.dZ/ G d de      Z0 G d d      Z1 G d de%      Z2 G d de'      Z3y)    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<   y)
EntryPointnamevaluegroupN)__name__
__module____qualname__str__annotations__     /var/www/html/FastMealFinder_FlaskServer-InitialRelease/venv/lib/python3.12/site-packages/pip/_internal/metadata/pkg_resources.pyr"   r"   "   s    
IJJr,   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y)InMemoryMetadatazIMetadataProvider that reads metadata files from a dictionary.

    This also maps metadata decoding exceptions to our internal exception type.
    metadata
wheel_namereturnNc                      || _         || _        y 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                   |   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   s[    	>>$'..00! 	".t/?/?.@1#T$uU 	s    	AAAc                 J    t        j                  | j                  |            S r4   )r
   yield_linesr@   r:   s     r-   get_metadata_linesz#InMemoryMetadata.get_metadata_lines>   s    (():):4)@AAr,   c                      yNFr+   r:   s     r-   metadata_isdirzInMemoryMetadata.metadata_isdirA   s    r,   c                     g S r4   r+   r:   s     r-   metadata_listdirz!InMemoryMetadata.metadata_listdirD   s    	r,   script_name	namespacec                      y 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/   (   s    
&e!4 &# &$ && & &  Bs Bx} 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!jD                  jF                  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)y) r   distr2   Nc                     || _         y r4   )_distr7   rQ   s     r-   r8   zDistribution.__init__L   s	    
r,   	directoryc                    |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_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    ##BFF+ #%''--"9- --hA [)$11H((7:I$$\222$99H((7:@@EaHIy8L4yr,   metadata_contentsfilenamerX   c                 ^    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   s?     )
 11%mX>%

 4yr,   wheelr#   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, rm   )
as_zipfiler   namelist
startswithr]   r   zipfile
BadZipFiler   rn   r   r
   ra   r/   )
rb   rq   r#   zfinfo_dir_r\   ro   r?   rQ   s
             r-   
from_wheelzDistribution.from_wheelt   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 r4   )rS   rn   r7   s    r-   rn   zDistribution.location       zz"""r,   c                     t        | j                        }|r|}t        |      S | j                  r| j                  }t        |      S y r4   )r   raw_namern   r   )r7   egg_linkrn   s      r-   installed_locationzDistribution.installed_location   sI    .t}}=H
 h''	 ]]}}H h'' r,   c                 .    | j                   j                  S r4   )rS   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rE   )rO   rS   	_providerr\   AttributeErrorr   s    r-   installed_by_distutilsz#Distribution.installed_by_distutils   s4    
	

,,1122 		s   (+ 	77c                 @    t        | j                  j                        S r4   )r   rS   rX   r   s    r-   canonical_namezDistribution.canonical_name   s     !8!899r,   c                 @    t        | j                  j                        S r4   )parse_versionrS   versionr   s    r-   r   zDistribution.version   s    TZZ//00r,   r\   c                 J    | j                   j                  t        |            S r4   )rS   r;   r)   )r7   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)rS   rH   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 r4   )r)   rS   r;   FileNotFoundErrorr@   r   )r7   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%   )rS   get_entry_mapitemsr)   	partitionr"   strip)r7   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.
        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    
 djj-"D"DE&M&M	~~m4H ll--/"  "" ! 	}}".t}}"="&t}}"5NN4oFH	s   A; ;ACCextrasc                     |r7t        d |D              }|j                  | j                  j                        }| j                  j	                  |      S )Nc              3   F   K   | ]  }t        j                  |        y wr4   )r
   
safe_extra).0r?   s     r-   	<genexpr>z1Distribution.iter_dependencies.<locals>.<genexpr>   s     Kq}77:Ks   !)	frozensetintersectionrS   r   requires)r7   r   s     r-   iter_dependencieszDistribution.iter_dependencies   sD    KFKKF(():):;Fzz""6**r,   c                 .    | j                   j                  S r4   )rS   r   r   s    r-   iter_provided_extrasz!Distribution.iter_provided_extras   s    zz   r,   extrac                 X    t        j                  |      | j                  j                  v S r4   )r
   r   rS   r   )r7   r   s     r-   is_extra_providedzDistribution.is_extra_provided   s"    ''.$**2C2C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7 D  s /?  &    	
 
   u C 4D  ( #(3- # # (HSM ( ( #x} # #    : : : 1, 1 12H 2 2:Xc] :h 3 V8N#; V# 5 5 #,+
3 ++AV +!hsm !Ds Dt 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y)r    wsr2   Nc                     || _         y 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    =,,--r,   pathsc                 8     | t        j                  |            S r4   )r
   
WorkingSet)rb   r   s     r-   
from_pathszEnvironment.from_paths   s    =++E233r,   c              #   H   K   | j                   D ]  }t        |        y wr4   )r   r   rT   s     r-   _iter_distributionszEnvironment._iter_distributions   s$     HH 	%Dt$$	%s    "r#   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   )r7   r#   r   rQ   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r4   )r   r   requirer
   DistributionNotFound)r7   r#   rQ   s      r-   get_distributionzEnvironment.get_distribution  s`    ((.K	 HHT" ((.. 11 		s   A 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3   . . . 4xS	2 4 4 4%X.>%? %
 
:J1K 
/S /X6F-G /r,   r    )4email.messager   email.parserloggingrZ   rx   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      s       	  V V V % : I @ V V D A K  2			8	$    FXD# XDv0// 0/r,   