ReT@sddlmZddlZddlZddlmZddlmZddlm Z ddl m Z ddl m Z mZddlmZdd lmZerdd lmZdd lmZmZmZejeZGd d d e ZddZddddZdS))absolute_importN) FeedParser) pkg_resources)canonicalize_name)Command)ERRORSUCCESS) write_output)MYPY_CHECK_RUNNING)Values)ListDictIteratorc@s:eZdZdZdZdZddZddZdS) ShowCommandzx Show information about one or more installed packages. The output is in RFC-compliant mail header format. z$ %prog [options] ...Tc CsE|jjddddddddd d |jjd |jdS) Nz-fz--filesdestfilesaction store_truedefaultFhelpz7Show the full list of installed files for each package.r)cmd_opts add_optionparserinsert_option_group)selfr/builddir/build/BUILDROOT/alt-python35-pip-20.2.4-5.el8.x86_64/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/commands/show.py add_options!s  zShowCommand.add_optionscCsO|stjdtS|}t|}t|d|jd|jsKtStS)Nz.ERROR: Please provide a package name or names. list_filesverbose)loggerwarningrsearch_packages_info print_resultsrrr)roptionsargsqueryresultsrrrrun,s  zShowCommand.runN)__name__ __module__ __qualname____doc__usageignore_require_venvrr(rrrrrs  rc #s6ix$tjD]}|t|jFs z(search_packages_info..cs(g|]\}}|kr|qSrr)r/r0pkg) installedrrr1Hs zPackage(s) not found: %sz, cs&t|fddtjDS)Ncs8g|].}dd|jDkr|jqS)cSsg|]}t|jqSr)rr0)r/requiredrrrr1Ss zSsearch_packages_info..get_requiring_packages...)requires project_name)r/r2)canonical_namerrr1Qs  zHsearch_packages_info..get_requiring_packages..)rr working_set) package_namer)r7rget_requiring_packagesMs z4search_packages_info..get_requiring_packagescs&g|]}|kr|qSrr)r/r2)r3rrr1Ws r0versionlocationr5cSsg|]}|jqSr)r6)r/deprrrr1\s required_byNRECORDcSs#g|]}|jddqS),r)split)r/linerrrr1es cs(g|]}tjjj|qSr)ospathjoinr<)r/p)distrrr1fs cs(g|]}tjj|jqSr)rDrErelpathr<)r/rG)rHrrr1gs METADATAzinstalled-files.txtcs(g|]}tjjj|qSr)rDrErFegg_info)r/rG)rHrrr1os cs(g|]}tjj|jqSr)rDrErIr<)r/rG)rHrrr1ps zPKG-INFOzentry_points.txt entry_points INSTALLER installermetadata-versionsummary home-pageauthor author-emaillicensez Classifier: classifiersr)rOrPrQrRrSrT)rr8rr6sortedzipr r!rFr;r<r5 isinstanceDistInfoDistribution has_metadataget_metadata_lines get_metadatastriprfeedcloseget splitlines startswithappendlen)r&rGZ query_namesmissingr:package file_listmetadatalinespathsrLrC feed_parser pkg_info_dictkeyrUr)rHr3rr":sj%          ! r"Fc CsKd}x>t|D]0\}}d}|dkr;tdtd|jddtd|jd dtd |jd dtd |jd dtd|jddtd|jddtd|jddtd|jddtddj|jdgtddj|jdg|rtd|jddtd|jddtdx'|jd gD]}td!|qWtd"x-|jd#gD]}td!|jqW|rtd$x-|jd%gD]}td!|jqWd%|krtd&qW|S)'zC Print the information from installed distributions found. FTrz---zName: %sr0r?z Version: %sr;z Summary: %srPz Home-page: %sz home-pagez Author: %srRzAuthor-email: %sz author-emailz License: %srTz Location: %sr<z Requires: %sz, r5zRequired-by: %sr>zMetadata-Version: %szmetadata-versionz Installer: %srNz Classifiers:rUz %sz Entry-points:rLzFiles:rz!Cannot locate installed-files.txt) enumerater r`rFr]) distributionsrrZresults_printedirH classifierentryrCrrrr#s@  ""    r#) __future__rloggingrD email.parserr pip._vendorrZpip._vendor.packaging.utilsrpip._internal.cli.base_commandrpip._internal.cli.status_codesrrpip._internal.utils.miscr pip._internal.utils.typingr optparser typingr r r getLoggerr)r rr"r#rrrrs   $ Z