£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
B
    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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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-python37-pip-20.2.4-6.el8.x86_64/opt/alt/python37/lib/python3.7/site-packages/pip/_internal/commands/show.pyadd_options!   s    zShowCommand.add_optionsc             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   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dd| dd }x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rv d}nP dr` d}	 fdd|	D }	 fdd|	D } drv d} dr d}
|
|d<  drx, dD ]}| r| |d< P qW t }|| | }xdD ]}||||< qW g }x4| D ](}|dr||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 |  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 | ]}| d d qS ),r   )split)r/   liner   r   r   r1   e   s    c                s   g | ]}t j j|qS r   )ospathjoinr=   )r/   p)distr   r   r1   f   s    c                s   g | ]}t 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|qS r   )rD   rE   rF   egg_info)r/   rG   )rH   r   r   r1   o   s    c                s   g | ]}t 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)zmetadata-versionsummaryz	home-pageauthorzauthor-emaillicensezClassifier: classifiersr   )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keyrR   r   )rH   r3   r   r"   :   sh    







r"   Fc       	   	   C   s  d}xt | 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  |rptd|dd td|dd td x |d g D ]}td!| q.W td" x$|d#g D ]}td!|  qXW |rtd$ x$|d%g D ]}td!|  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: %srO   zHome-page: %sz	home-pagez
Author: %srP   zAuthor-email: %szauthor-emailzLicense: %srQ   zLocation: %sr=   zRequires: %sz, r5   zRequired-by: %sr>   zMetadata-Version: %szmetadata-versionzInstaller: %srN   zClassifiers:rR   z  %szEntry-points:rL   zFiles:r   z!Cannot locate installed-files.txt)	enumerater	   r]   rF   rZ   )	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