U n a@sddlmZddlZddlZddlmZddlmZddlm Z ddl m Z ddl m Z mZddlmZeeZGd d d e Zd d ZdddZdS))absolute_importN) FeedParser) pkg_resourcescanonicalize_name)Command)ERRORSUCCESS) write_outputcs0eZdZdZdZdZfddZddZZS) ShowCommandzx Show information about one or more installed packages. The output is in RFC-compliant mail header format. z$ %prog [options] ...Tcs>tt|j|||jjddddddd|jd|jdS) Nz-fz--filesfiles store_trueFz7Show the full list of installed files for each package.)destactiondefaulthelpr)superr __init__cmd_opts add_optionparserinsert_option_group)selfargskw __class__\C:\Users\vtejo\AppData\Local\Temp\pip-unpacked-wheel-6mt8ur68\pip\_internal\commands\show.pyrszShowCommand.__init__cCs8|stdtS|}t|}t||j|jds4tStS)Nz.ERROR: Please provide a package name or names.) list_filesverbose)loggerwarningrsearch_packages_info print_resultsr r r )roptionsrqueryresultsrrrrun*s zShowCommand.run) __name__ __module__ __qualname____doc__usageignore_require_venvrr( __classcell__rrrrr s  r c#sTitjD]}|t|j<q dd|D}tfddt||D}|r^tdd|dd}fdd|DD]ԉjj j d d D|jd }d }d }t tj rd rd }d d|D} fdd| D} fdd| D}drnd}nPdrXd} fdd| D} fdd| D}drnd}drd} | |d<drƈdD]"} | r| |d<qƐqt} | || } dD]}| |||<qg}|D](} | dr|| tdd q||d<|rHt||d<|Vqxd 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. cSsg|] }t|qSrr).0namerrr Bsz(search_packages_info..csg|]\}}|kr|qSrr)r0r1pkg installedrrr2DszPackage(s) not found: %s, cst|fddtjDS)Ncs(g|] }dd|Dkr|jqS)cSsg|]}t|jqSr)rr1)r0requiredrrrr2NszSsearch_packages_info..get_requiring_packages...)requires project_namer0r3canonical_namerrr2KszHsearch_packages_info..get_requiring_packages..)rr working_set) package_namerr;rget_requiring_packagesIs z4search_packages_info..get_requiring_packagescsg|]}|kr|qSrrr:r4rrr2RscSsg|] }|jqSr)r9)r0deprrrr2Ws)r1versionlocationr8 required_byNRECORDcSsg|]}|ddqS),r)split)r0lrrrr2`scsg|]}tjj|qSr)ospathjoinrBr0pdistrrr2ascsg|]}tj|jqSrrHrIrelpathrBrKrMrrr2bsMETADATAzinstalled-files.txtcsg|]}tjj|qSr)rHrIrJegg_inforKrMrrr2jscsg|]}tj|jqSrrOrKrMrrr2kszPKG-INFOzentry_points.txt entry_points INSTALLER installer)metadata-versionsummary home-pageauthor author-emaillicensez Classifier: classifiersr )rr=rr9sortedzipr!r"rJrArBr8 isinstanceDistInfoDistribution has_metadataget_metadata_lines get_metadatastriprfeedcloseget splitlines startswithappendlen)r&rLZ query_namesmissingr?package file_listmetadatalinespathsrSline feed_parser pkg_info_dictkeyr\r)rNr5rr#7sl                    r#Fc Csd}t|D]\}}d}|dkr*tdtd|ddtd|d dtd |d dtd |d dtd|ddtd|ddtd|ddtd|ddtdd|dgtdd|dg|rdtd|ddtd|ddtd|d gD]}td!|q(td"|d#gD]}td!|qN|r td$|d%gD]}td!|q|d%|kr td&q |S)'zC Print the information from installed distributions found. FTrz---zName: %sr1z Version: %srAz Summary: %srWz Home-page: %srXz Author: %srYzAuthor-email: %srZz License: %sr[z Location: %srBz Requires: %sr6r8zRequired-by: %srCzMetadata-Version: %srVz Installer: %srUz Classifiers:r\z %sz Entry-points:rSzFiles:r z!Cannot locate installed-files.txt) enumerater rgrJrd) distributionsrr Zresults_printedirN classifierentryrrrrrr$sB  r$)FF) __future__rloggingrH email.parserr pip._vendorrpip._vendor.packaging.utilsrpip._internal.cli.base_commandrpip._internal.cli.status_codesrr pip._internal.utils.miscr getLoggerr)r!r r#r$rrrrs       #X