import logging from optparse import Values from typing import List from pip._internal.cli.base_command import Command from pip._internal.cli.status_codes import ERROR, SUCCESS from pip._internal.metadata import get_default_environment from pip._internal.operations.check import ( check_package_set, check_unsupported, create_package_set_from_installed, ) from pip._internal.utils.compatibility_tags import get_supported from pip._internal.utils.misc import write_output logger = logging.getLogger(__name__) class CheckCommand(Command): """Verify installed packages have compatible dependencies.""" ignore_require_venv = True usage = """ %prog [options]""" def run(self, options: Values, args: List[str]) -> int: package_set, parsing_probs = create_package_set_from_installed() missing, conflicting = check_package_set(package_set) unsupported = list( check_unsupported( get_default_environment().iter_installed_distributions(), get_supported(), ) ) for project_name in missing: version = package_set[project_name].version for dependency in missing[project_name]: write_output( "%s %s requires %s, which is not installed.", project_name, version, dependency[0], ) for project_name in conflicting: version = package_set[project_name].version for dep_name, dep_version, req in conflicting[project_name]: write_output( "%s %s has requirement %s, but you have %s %s.", project_name, version, req, dep_name, dep_version, ) for package in unsupported: write_output( "%s %s is not supported on this platform", package.raw_name, package.version, ) if missing or conflicting or parsing_probs or unsupported: return ERROR else: write_output("No broken requirements found.") return SUCCESS
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
__init__.py | File | 3.79 KB | 0644 |
|
cache.py | File | 7.76 KB | 0644 |
|
check.py | File | 2.21 KB | 0644 |
|
completion.py | File | 4.19 KB | 0644 |
|
configuration.py | File | 9.54 KB | 0644 |
|
debug.py | File | 6.64 KB | 0644 |
|
download.py | File | 5.15 KB | 0644 |
|
freeze.py | File | 3.13 KB | 0644 |
|
hash.py | File | 1.66 KB | 0644 |
|
help.py | File | 1.11 KB | 0644 |
|
index.py | File | 4.62 KB | 0644 |
|
inspect.py | File | 3.11 KB | 0644 |
|
install.py | File | 28.74 KB | 0644 |
|
list.py | File | 12.47 KB | 0644 |
|
search.py | File | 5.49 KB | 0644 |
|
show.py | File | 7.33 KB | 0644 |
|
uninstall.py | File | 3.8 KB | 0644 |
|
wheel.py | File | 6.26 KB | 0644 |
|