X7ROOT File Manager
Current Path:
/lib/python2.7/site-packages/pip/commands
lib
/
python2.7
/
site-packages
/
pip
/
commands
/
??
..
??
__init__.py
(2.19 KB)
??
__init__.pyc
(2.57 KB)
??
__init__.pyo
(2.57 KB)
??
check.py
(1.35 KB)
??
check.pyc
(1.56 KB)
??
check.pyo
(1.56 KB)
??
completion.py
(2.4 KB)
??
completion.pyc
(2.83 KB)
??
completion.pyo
(2.83 KB)
??
download.py
(7.63 KB)
??
download.pyc
(6.03 KB)
??
download.pyo
(6.03 KB)
??
freeze.py
(2.77 KB)
??
freeze.pyc
(3.12 KB)
??
freeze.pyo
(3.12 KB)
??
hash.py
(1.56 KB)
??
hash.pyc
(2.35 KB)
??
hash.pyo
(2.35 KB)
??
help.py
(982 B)
??
help.pyc
(1.32 KB)
??
help.pyo
(1.32 KB)
??
install.py
(17.86 KB)
??
install.pyc
(11.81 KB)
??
install.pyo
(11.81 KB)
??
list.py
(11.1 KB)
??
list.pyc
(10.88 KB)
??
list.pyo
(10.83 KB)
??
search.py
(4.4 KB)
??
search.pyc
(4.84 KB)
??
search.pyo
(4.84 KB)
??
show.py
(5.75 KB)
??
show.pyc
(5.61 KB)
??
show.pyo
(5.61 KB)
??
uninstall.py
(2.82 KB)
??
uninstall.pyc
(2.97 KB)
??
uninstall.pyo
(2.97 KB)
??
wheel.py
(7.55 KB)
??
wheel.pyc
(6.22 KB)
??
wheel.pyo
(6.22 KB)
Editing: show.py
from __future__ import absolute_import from email.parser import FeedParser import logging import os from pip.basecommand import Command from pip.status_codes import SUCCESS, ERROR from pip._vendor import pkg_resources from pip._vendor.packaging.utils import canonicalize_name logger = logging.getLogger(__name__) class ShowCommand(Command): """Show information about one or more installed packages.""" name = 'show' usage = """ %prog [options] <package> ...""" summary = 'Show information about installed packages.' def __init__(self, *args, **kw): super(ShowCommand, self).__init__(*args, **kw) self.cmd_opts.add_option( '-f', '--files', dest='files', action='store_true', default=False, help='Show the full list of installed files for each package.') self.parser.insert_option_group(0, self.cmd_opts) def run(self, options, args): if not args: logger.warning('ERROR: Please provide a package name or names.') return ERROR query = args results = search_packages_info(query) if not print_results( results, list_files=options.files, verbose=options.verbose): return ERROR return SUCCESS def search_packages_info(query): """ 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. """ installed = {} for p in pkg_resources.working_set: installed[canonicalize_name(p.project_name)] = p query_names = [canonicalize_name(name) for name in query] for dist in [installed[pkg] for pkg in query_names if pkg in installed]: package = { 'name': dist.project_name, 'version': dist.version, 'location': dist.location, 'requires': [dep.project_name for dep in dist.requires()], } file_list = None metadata = None if isinstance(dist, pkg_resources.DistInfoDistribution): # RECORDs should be part of .dist-info metadatas if dist.has_metadata('RECORD'): lines = dist.get_metadata_lines('RECORD') paths = [l.split(',')[0] for l in lines] paths = [os.path.join(dist.location, p) for p in paths] file_list = [os.path.relpath(p, dist.location) for p in paths] if dist.has_metadata('METADATA'): metadata = dist.get_metadata('METADATA') else: # Otherwise use pip's log for .egg-info's if dist.has_metadata('installed-files.txt'): paths = dist.get_metadata_lines('installed-files.txt') paths = [os.path.join(dist.egg_info, p) for p in paths] file_list = [os.path.relpath(p, dist.location) for p in paths] if dist.has_metadata('PKG-INFO'): metadata = dist.get_metadata('PKG-INFO') if dist.has_metadata('entry_points.txt'): entry_points = dist.get_metadata_lines('entry_points.txt') package['entry_points'] = entry_points if dist.has_metadata('INSTALLER'): for line in dist.get_metadata_lines('INSTALLER'): if line.strip(): package['installer'] = line.strip() break # @todo: Should pkg_resources.Distribution have a # `get_pkg_info` method? feed_parser = FeedParser() feed_parser.feed(metadata) pkg_info_dict = feed_parser.close() for key in ('metadata-version', 'summary', 'home-page', 'author', 'author-email', 'license'): package[key] = pkg_info_dict.get(key) # It looks like FeedParser cannot deal with repeated headers classifiers = [] for line in metadata.splitlines(): if line.startswith('Classifier: '): classifiers.append(line[len('Classifier: '):]) package['classifiers'] = classifiers if file_list: package['files'] = sorted(file_list) yield package def print_results(distributions, list_files=False, verbose=False): """ Print the informations from installed distributions found. """ results_printed = False for i, dist in enumerate(distributions): results_printed = True if i > 0: logger.info("---") logger.info("Name: %s", dist.get('name', '')) logger.info("Version: %s", dist.get('version', '')) logger.info("Summary: %s", dist.get('summary', '')) logger.info("Home-page: %s", dist.get('home-page', '')) logger.info("Author: %s", dist.get('author', '')) logger.info("Author-email: %s", dist.get('author-email', '')) logger.info("License: %s", dist.get('license', '')) logger.info("Location: %s", dist.get('location', '')) logger.info("Requires: %s", ', '.join(dist.get('requires', []))) if verbose: logger.info("Metadata-Version: %s", dist.get('metadata-version', '')) logger.info("Installer: %s", dist.get('installer', '')) logger.info("Classifiers:") for classifier in dist.get('classifiers', []): logger.info(" %s", classifier) logger.info("Entry-points:") for entry in dist.get('entry_points', []): logger.info(" %s", entry.strip()) if list_files: logger.info("Files:") for line in dist.get('files', []): logger.info(" %s", line.strip()) if "files" not in dist: logger.info("Cannot locate installed-files.txt") return results_printed
Upload File
Create Folder