
    e                     (   d dl Z d dlmZ d dl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mZ d dlmZ  e j        e          Z G d	 d
e          Z G d de          Zdee         deeddf         fdZdee         dededefdZdS )    N)Values)	GeneratorIterableIteratorList
NamedTupleOptionalcanonicalize_name)Command)ERRORSUCCESS)BaseDistributionget_default_environment)write_outputc                   B    e Zd ZdZdZdZd
dZdedee	         de
fd	ZdS )ShowCommandzx
    Show information about one or more installed packages.

    The output is in RFC-compliant mail header format.
    z$
      %prog [options] <package> ...TreturnNc                     | j                             dddddd           | j                            d| j                    d S )	Nz-fz--filesfiles
store_trueFz7Show the full list of installed files for each package.)destactiondefaulthelpr   )cmd_opts
add_optionparserinsert_option_group)selfs    R/var/www/html/api/venv/lib/python3.11/site-packages/pip/_internal/commands/show.pyadd_optionszShowCommand.add_options   sU      J 	! 	
 	
 	
 	''4=99999    optionsargsc                     |s!t                               d           t          S |}t          |          }t	          ||j        |j                  st          S t          S )Nz.ERROR: Please provide a package name or names.)
list_filesverbose)loggerwarningr   search_packages_infoprint_resultsr   r(   r   )r    r$   r%   queryresultss        r!   runzShowCommand.run&   sb     	NNKLLLL&u--w
 
 
 	 Lr#   )r   N)__name__
__module____qualname____doc__usageignore_require_venvr"   r   r   strintr/    r#   r!   r   r      sl         'E
: 
: 
: 
:6 c s      r#   r   c                      e Zd ZU eed<   eed<   eed<   ee         ed<   ee         ed<   ee         ed<   eed<   eed<   ee         ed	<   eed
<   eed<   ee         ed<   eed<   eed<   eed<   ee         ed<   eee                  ed<   dS )_PackageInfonameversionlocationeditable_project_locationrequiresrequired_by	installermetadata_versionclassifierssummaryhomepageproject_urlsauthorauthor_emaillicenseentry_pointsr   N)r0   r1   r2   r6   __annotations__r	   r   r8   r#   r!   r:   r:   4   s         
IIILLLMMM'},,,3icNNNcLLLMMMs)KKKLLLs)DIr#   r:   r-   r   c           
   #   4  K   t                      }d |                                D             d | D             }t          fdt          | |          D                       }|r.t                              dd                    |                     dt          dt          t                   ffd}|D ]}	 |         }n# t          $ r Y w xY wt          d	 |                                D             t          j        
          }t           ||          t          j        
          }	 |                    d          }	|	                    d          }
n# t          $ r g }
Y nw xY w|                                }|d}nt          |          }|j        }t%          d(i d|j        dt          |j                  d|j        pdd|j        d|d|d|j        d|j        pdd|                    dg           d|                    dd          d|                    dd          d|                    dg           d |                    d!d          d"|                    d#d          d$|                    d%d          d&|
d'|V  dS ))z
    Gather details from installed distributions. Print distribution name,
    version, location, and installed files. Installed files requires a
    pip generated 'installed-files.txt' in the distributions '.egg-info'
    directory.
    c                     i | ]
}|j         |S r8   )canonical_name).0dists     r!   
<dictcomp>z(search_packages_info.<locals>.<dictcomp>Q   s    TTTt$dTTTr#   c                 ,    g | ]}t          |          S r8   r
   )rO   r;   s     r!   
<listcomp>z(search_packages_info.<locals>.<listcomp>R   s!    ===t$T**===r#   c                 "    g | ]\  }}|v	|S r8   r8   )rO   r;   pkg	installeds      r!   rS   z(search_packages_info.<locals>.<listcomp>T   s'    OOO)$#Y:N:N:N:N:Nr#   zPackage(s) not found: %s, current_distr   c                 F      fd                                 D             S )Nc              3      K   | ]8}j         d  |                                D             v '|j        d         pdV  9dS )c                 6    h | ]}t          |j                  S r8   )r   r;   )rO   ds     r!   	<setcomp>zRsearch_packages_info.<locals>._get_requiring_packages.<locals>.<genexpr>.<setcomp>^   s#    LLLa!!&))LLLr#   NameUNKNOWNN)rN   iter_dependenciesmetadata)rO   rP   rX   s     r!   	<genexpr>zHsearch_packages_info.<locals>._get_requiring_packages.<locals>.<genexpr>Z   sv       
 
*LL43I3I3K3KLLLM M M&!.YM M M M
 
r#   )values)rX   rV   s   `r!   _get_requiring_packagesz5search_packages_info.<locals>._get_requiring_packagesY   s;    
 
 
 
!((**
 
 
 	
r#   c              3   $   K   | ]}|j         V  d S )N)r;   )rO   reqs     r!   rb   z'search_packages_info.<locals>.<genexpr>g   s$      HH38HHHHHHr#   )keyzentry_points.txtF)keependsNr;   r<   r=    r>   r?   r@   rA   rB   rC   
ClassifierrD   SummaryrE   z	Home-pagerF   zProject-URLrG   AuthorrH   zAuthor-emailrI   LicenserJ   r   r8   )r   iter_all_distributionssortedzipr)   r*   joinr   r   r6   KeyErrorr`   lower	read_text
splitlinesFileNotFoundErroriter_declared_entriesra   r:   raw_namer<   r=   r>   rA   rB   get_allget)r-   envquery_namesmissingrd   
query_namerP   r?   r@   entry_points_textrJ   
files_iterr   ra   rV   s                 @r!   r+   r+   H   ss      "
#
#CTTs7Q7Q7S7STTTI==u===KOOOOs5+66OOO G  G1499W3E3EFFF
.> 
8C= 
 
 
 
 
 
 " )
 )

	Z(DD 	 	 	H	 HHt/E/E/G/GHHHciXXX44T::	JJJ	 $/A B B,777GGLL  	 	 	LLL	 //11
)-EE:&&E= 
 
 

%%%
 ](b
 '+&D&D	

 X
 $
 nn
 "28b
 !((r:::
 LLB///
 \\+r222
 "))-<<<
 <<"---
 "nb999
 LLB///
  &!
" %#
 	
 	
 	
 	
/)
 )
s$   :C
CC/+EE*)E*distributionsr'   r(   c                    d}t          |           D ]?\  }}d}|dk    rt          d           t          d|j                   t          d|j                   t          d|j                   t          d|j                   t          d	|j                   t          d
|j                   t          d|j                   t          d|j	                   |j
        t          d|j
                   t          dd                    |j                             t          dd                    |j                             |rt          d|j                   t          d|j                   t          d           |j        D ]}t          d|           t          d           |j        D ]$}t          d|                                           %t          d           |j        D ]}t          d|           |rSt          d           |j        t          d           |j        D ]$}	t          d|	                                           %A|S )zC
    Print the information from installed distributions found.
    FTr   z---zName: %szVersion: %szSummary: %szHome-page: %sz
Author: %szAuthor-email: %szLicense: %szLocation: %sNzEditable project location: %szRequires: %srW   zRequired-by: %szMetadata-Version: %szInstaller: %szClassifiers:z  %szEntry-points:zProject-URLs:zFiles:z+Cannot locate RECORD or installed-files.txt)	enumerater   r;   r<   rD   rE   rG   rH   rI   r=   r>   rq   r?   r@   rB   rA   rC   rJ   striprF   r   )
r   r'   r(   results_printedirP   
classifierentryproject_urllines
             r!   r,   r,      sg    O]++ &7 &74q55Z+++]DL111]DL111_dm444\4;///'):;;;]DL111^T]333)5/1O   	^TYYt}%=%=>>>&		$2B(C(CDDD 	2/1FGGG$.999(((". 1 1
VZ0000)))* 4 4VU[[]]3333)))#0 2 2V[1111 	7"""z!JKKKK J 7 7D 6666r#   )loggingoptparser   typingr   r   r   r   r   r	   pip._vendor.packaging.utilsr   pip._internal.cli.base_commandr   pip._internal.cli.status_codesr   r   pip._internal.metadatar   r   pip._internal.utils.miscr   	getLoggerr0   r)   r   r:   r6   r+   boolr,   r8   r#   r!   <module>r      s          L L L L L L L L L L L L L L L L 9 9 9 9 9 9 2 2 2 2 2 2 9 9 9 9 9 9 9 9 L L L L L L L L 1 1 1 1 1 1		8	$	$" " " " "' " " "J    :   (B
S	 B
idD8P.Q B
 B
 B
 B
J0L)00 0 
	0 0 0 0 0 0r#   