<!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>
3
ReT                 @   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 d d	lmZ erd d
lmZ d dlmZmZmZ ej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_output)MYPY_CHECK_RUNNING)Values)ListDictIteratorc               @   s(   e Zd ZdZdZdZdd Zd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> ...Tc             C   s,   | j jddddddd | j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)self r   /builddir/build/BUILDROOT/alt-python36-pip-20.2.4-5.el8.x86_64/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/commands/show.pyadd_options!   s    zShowCommand.add_optionsc             C   s8   |st j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   optionsargsqueryresultsr   r   r   run,   s    
zShowCommand.runN)__name__
__module____qualname____doc__usageignore_require_venvr   r(   r   r   r   r   r      s
   r   c             #   sf  i xt jD ]}|t|j< qW dd | D }tfddt| |D }|rbtjddj| dd }xfdd|D D ]܉  j j	 j
d	d  j D | jd
}d}d}t t jr& jdr jd}dd |D }	 fdd|	D }	 fdd|	D } jdrv jd}nP jdr` jd}	 fdd|	D }	 fdd|	D } jdrv jd} jdr jd}
|
|d<  jdrx, jdD ]}|j r|j |d< P qW t }|j| |j }xd#D ]}|j|||< qW g }x4|j D ](}|jd r|j|td d  qW ||d!< |rXt||d"< |V  qW 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             S   s   g | ]}t |qS r   )r   ).0namer   r   r   
<listcomp>F   s    z(search_packages_info.<locals>.<listcomp>c                s   g | ]\}}| kr|qS r   r   )r/   r0   pkg)	installedr   r   r1   H   s    zPackage(s) not found: %sz, c                s   t |   fddtjD S )Nc                s(   g | ] } d d |j  D kr|jqS )c             S   s   g | ]}t |jqS r   )r   r0   )r/   requiredr   r   r   r1   S   s    zSsearch_packages_info.<locals>.get_requiring_packages.<locals>.<listcomp>.<listcomp>)requiresproject_name)r/   r2   )canonical_namer   r   r1   Q   s    zHsearch_packages_info.<locals>.get_requiring_packages.<locals>.<listcomp>)r   r   working_set)package_namer   )r7   r   get_requiring_packagesM   s    z4search_packages_info.<locals>.get_requiring_packagesc                s   g | ]}| kr | qS r   r   )r/   r2   )r3   r   r   r1   W   s    c             S   s   g | ]
}|j qS r   )r6   )r/   depr   r   r   r1   \   s    )r0   versionlocationr5   required_byN RECORDc             S   s   g | ]}|j d d qS ),r   )split)r/   liner   r   r   r1   e   s    c                s   g | ]}t jj j|qS r   )ospathjoinr=   )r/   p)distr   r   r1   f   s    c                s   g | ]}t jj| jqS r   )rD   rE   relpathr=   )r/   rG   )rH   r   r   r1   g   s    METADATAzinstalled-files.txtc                s   g | ]}t jj j|qS r   )rD   rE   rF   egg_info)r/   rG   )rH   r   r   r1   o   s    c                s   g | ]}t jj| jqS r   )rD   rE   rI   r=   )r/   rG   )rH   r   r   r1   p   s    zPKG-INFOzentry_points.txtentry_points	INSTALLER	installermetadata-versionsummary	home-pageauthorauthor-emaillicensezClassifier: classifiersr   )rO   rP   rQ   rR   rS   rT   )r   r8   r   r6   sortedzipr    r!   rF   r<   r=   r5   
isinstanceDistInfoDistributionhas_metadataget_metadata_linesget_metadatastripr   feedcloseget
splitlines
startswithappendlen)r&   rG   Zquery_namesmissingr:   package	file_listmetadatalinespathsrL   rC   feed_parserpkg_info_dictkeyrU   r   )rH   r3   r   r"   :   sj    






r"   Fc       	      C   s  d}xt | D ]\}}d}|dkr.td td|jdd td|jd	d td
|jdd td|jdd td|jdd td|jdd td|jdd td|jdd tddj|jdg  tddj|jdg  |rptd|jdd td|jdd td x |jd g D ]}td!| q.W td" x$|jd#g D ]}td!|j  qXW |rtd$ x$|jd%g D ]}td!|j  qW d%|krtd& qW |S )'zC
    Print the information from installed distributions found.
    FTr   z---zName: %sr0   r?   zVersion: %sr<   zSummary: %srP   zHome-page: %sz	home-pagez
Author: %srR   zAuthor-email: %szauthor-emailzLicense: %srT   zLocation: %sr=   zRequires: %sz, r5   zRequired-by: %sr>   zMetadata-Version: %szmetadata-versionzInstaller: %srN   zClassifiers:rU   z  %szEntry-points:rL   zFiles:r   z!Cannot locate installed-files.txt)	enumerater	   r`   rF   r]   )	distributionsr   r   Zresults_printedirH   
classifierentryrC   r   r   r   r#      s@    r#   )FF)
__future__r   loggingrD   email.parserr   pip._vendorr   Zpip._vendor.packaging.utilsr   pip._internal.cli.base_commandr   pip._internal.cli.status_codesr   r   pip._internal.utils.miscr	   pip._internal.utils.typingr
   optparser   typingr   r   r   	getLoggerr)   r    r   r"   r#   r   r   r   r   <module>   s    
$Z