<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
U
    .e                     @   s   d dl mZ d dlZd dlZd dl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 eeZG d	d
 d
eZdd ZdddZdS )    )absolute_importN)
FeedParser)pkg_resourcescanonicalize_name)Command)ERRORSUCCESS)write_outputc                       s0   e Zd ZdZdZdZ fddZdd Z  ZS )ShowCommandzx
    Show information about one or more installed packages.

    The output is in RFC-compliant mail header format.
    z$
      %prog [options] <package> ...Tc                    s>   t t| j|| | jjd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   )superr   __init__Zcmd_optsZ
add_optionparserZinsert_option_group)selfargskw	__class__ ?/usr/lib/python3.8/site-packages/pip/_internal/commands/show.pyr      s     zShowCommand.__init__c                 C   s8   |st d tS |}t|}t||j|jds4t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   Zoptionsr   queryresultsr   r   r   run*   s    
  zShowCommand.run)	__name__
__module____qualname____doc__ZusageZignore_require_venvr   r$   __classcell__r   r   r   r   r      s
   r   c                 #   sT  i t jD ]}|t|j< q
dd | D }tfddt| |D }|r^tdd| dd }fdd|D D ]ԉ  j j	 j
d	d   D | jd
}d}d}t t jr dr d}dd |D }	 fdd|	D }	 fdd|	D } drn d}nP drX d}	 fdd|	D }	 fdd|	D } drn d} dr d}
|
|d<  drƈ dD ]"}| r| |d<  qƐqt }|| | }dD ]}||||< qg }| D ](}|dr||tdd  q||d< |rHt||d< |V  qxd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                 S   s   g | ]}t |qS r   r   ).0namer   r   r   
<listcomp>B   s     z(search_packages_info.<locals>.<listcomp>c                    s   g | ]\}}| kr|qS r   r   )r*   r+   pkg	installedr   r   r,   D   s      zPackage(s) not found: %s, c                    s   t |   fddtjD S )Nc                    s(   g | ] } d d |  D kr|jqS )c                 S   s   g | ]}t |jqS r   )r   r+   )r*   Zrequiredr   r   r   r,   N   s     zSsearch_packages_info.<locals>.get_requiring_packages.<locals>.<listcomp>.<listcomp>)requiresproject_namer*   r-   Zcanonical_namer   r   r,   K   s   zHsearch_packages_info.<locals>.get_requiring_packages.<locals>.<listcomp>)r   r   working_set)Zpackage_namer   r4   r   get_requiring_packagesI   s    
z4search_packages_info.<locals>.get_requiring_packagesc                    s   g | ]}| kr | qS r   r   r3   r.   r   r   r,   R   s      c                 S   s   g | ]
}|j qS r   )r2   )r*   Zdepr   r   r   r,   W   s     )r+   versionlocationr1   required_byNZRECORDc                 S   s   g | ]}| d d qS ),r   )split)r*   lr   r   r   r,   `   s     c                    s   g | ]}t j j|qS r   )ospathjoinr8   r*   pdistr   r   r,   a   s     c                    s   g | ]}t j| jqS r   r=   r>   relpathr8   r@   rB   r   r   r,   b   s     ZMETADATAzinstalled-files.txtc                    s   g | ]}t j j|qS r   )r=   r>   r?   Zegg_infor@   rB   r   r   r,   j   s     c                    s   g | ]}t j| jqS r   rD   r@   rB   r   r   r,   k   s     zPKG-INFOzentry_points.txtentry_pointsZ	INSTALLER	installer)metadata-versionsummary	home-pageauthorauthor-emaillicensezClassifier: classifiersr   )r   r5   r   r2   sortedzipr   r   r?   r7   r8   r1   
isinstanceZDistInfoDistributionZhas_metadataZget_metadata_linesZget_metadatastripr   Zfeedcloseget
splitlines
startswithappendlen)r"   rA   Zquery_namesZmissingr6   packageZ	file_listZmetadatalinespathsrF   lineZfeed_parserZpkg_info_dictkeyrN   r   )rC   r/   r   r    7   sl    
	






r    Fc           	   	   C   s  d}t | D ]\}}d}|dkr*td td|dd td|d	d td
|dd td|dd td|dd td|dd td|dd td|dd tdd|dg  tdd|dg  |rdtd|dd td|dd td |d g D ]}td!| q(td" |d#g D ]}td!|  qN|rtd$ |d%g D ]}td!|  q|d%|krtd& q|S )'zD
    Print the informations from installed distributions found.
    FTr   z---zName: %sr+    zVersion: %sr7   zSummary: %srI   zHome-page: %srJ   z
Author: %srK   zAuthor-email: %srL   zLicense: %srM   zLocation: %sr8   zRequires: %sr0   r1   zRequired-by: %sr9   zMetadata-Version: %srH   zInstaller: %srG   zClassifiers:rN   z  %szEntry-points:rF   zFiles:r   z!Cannot locate installed-files.txt)	enumerater
   rT   r?   rR   )	Zdistributionsr   r   Zresults_printedirC   Z
classifierentryr\   r   r   r   r!      sB    

r!   )FF)Z
__future__r   Zloggingr=   Zemail.parserr   Zpip._vendorr   Zpip._vendor.packaging.utilsr   Zpip._internal.cli.base_commandr   Zpip._internal.cli.status_codesr   r	   Zpip._internal.utils.miscr
   Z	getLoggerr%   r   r   r    r!   r   r   r   r   <module>   s   
#X