U ʗRe@sddlZddlmZddlmZmZmZmZmZm Z ddl m Z ddl m Z ddlmZmZddlmZmZddlmZeeZGd d d e ZGd d d eZeeeeddfd ddZeeeeedddZdS)N)Values) GeneratorIterableIteratorList NamedTupleOptionalcanonicalize_name)Command)ERRORSUCCESS)BaseDistributionget_default_environment) write_outputc@s<eZdZdZdZdZddddZeee e dd d Z dS) ShowCommandzx Show information about one or more installed packages. The output is in RFC-compliant mail header format. z$ %prog [options] ...TN)returncCs,|jjddddddd|jd|jdS) Nz-fz--filesfiles store_trueFz7Show the full list of installed files for each package.)destactiondefaulthelpr)cmd_opts add_optionparserinsert_option_group)selfr/builddir/build/BUILDROOT/alt-python38-pip-22.2.1-2.el8.x86_64/opt/alt/python38/lib/python3.8/site-packages/pip/_internal/commands/show.py add_optionss zShowCommand.add_options)optionsargsrcCs8|stdtS|}t|}t||j|jds4tStS)Nz.ERROR: Please provide a package name or names.) list_filesverbose)loggerwarningr search_packages_info print_resultsrr$r )rr!r"queryresultsrrrrun&s zShowCommand.run) __name__ __module__ __qualname____doc__usageignore_require_venvr rrstrintr+rrrrrs  rc@seZdZUeed<eed<eed<eeed<eeed<eed<eed<eeed<eed <eed <eeed <eed <eed <eed<eeed<eeeed<dS) _PackageInfonameversionlocationrequires required_by installermetadata_version classifierssummaryhomepage project_urlsauthor author_emaillicense entry_pointsrN)r,r-r.r2__annotations__rrrrrrr44s      r4)r)rc#st}dd|Ddd|D}tfddt||D}|rXtdd|ttt dfd d }|D]0}z |}Wnt k rYqtYnXtd d | Dt j d }t||t j d }z| d} | jdd} Wntk rg} YnX|} | dkrd} nt| } |j} t|jt |j|jpBd|||j|jpTd| dg| dd| dd| dg| dd| dd| dd| | dVqtdS)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. cSsi|] }|j|qSr)canonical_name.0distrrr Psz(search_packages_info..cSsg|] }t|qSrr )rGr5rrr Qsz(search_packages_info..csg|]\}}|kr|qSrr)rGr5pkg installedrrrJSszPackage(s) not found: %s, ) current_distrcsfddDS)Nc3s4|],}jdd|Dkr|jdp*dVqdS)cSsh|]}t|jqSr)r r5)rGdrrr ]szRsearch_packages_info.._get_requiring_packages...NameUNKNOWNN)rEiter_dependenciesmetadatarFrOrr Ys zHsearch_packages_info.._get_requiring_packages..)valuesrVrLrVr_get_requiring_packagesXs z5search_packages_info.._get_requiring_packagescss|] }|jVqdS)N)r5)rGreqrrrrWfsz'search_packages_info..)keyzentry_points.txtF)keependsN ClassifierSummaryz Home-pagez Project-URLAuthorz Author-emailLicense)r5r6r7r8r9r:r;r<r=r>r?r@rArBrCr)riter_all_distributionssortedzipr%r&joinrrr2KeyErrorrTlower read_text splitlinesFileNotFoundErroriter_declared_entriesrUr4raw_namer6r7r:r;get_allget)r)envZ query_namesmissingrYZ query_namerHr8r9Zentry_points_textrCZ files_iterrrUrrLrr'GsX               r') distributionsr#r$rc Cspd}t|D]\\}}d}|dkr*tdtd|jtd|jtd|jtd|jtd |jtd |jtd |jtd |j td d |j tdd |j |r,td|j td|jtd|jD]}td|qtd|jD]}td|qtd|jD]}td|q|r td|jdkrNtdq |jD]} td| qTq |S)zC Print the information from installed distributions found. FTrz---zName: %sz Version: %sz Summary: %sz Home-page: %sz Author: %szAuthor-email: %sz License: %sz Location: %sz Requires: %srNzRequired-by: %szMetadata-Version: %sz Installer: %sz Classifiers:z %sz Entry-points:z Project-URLs:zFiles:Nz+Cannot locate RECORD or installed-files.txt) enumeraterr5r6r=r>r@rArBr7rer8r9r;r:r<rCstripr?r) rqr#r$Zresults_printedirH classifierentry project_urllinerrrr(sD                 r()loggingoptparsertypingrrrrrrpip._vendor.packaging.utilsr pip._internal.cli.base_commandr pip._internal.cli.status_codesr r pip._internal.metadatarrpip._internal.utils.miscr getLoggerr,r%rr4r2r'boolr(rrrrs       %E