pip/src/pip/_internal/commands/check.py

46 lines
1.5 KiB
Python
Raw Normal View History

# The following comment should be removed at some point in the future.
# mypy: disallow-untyped-defs=False
import logging
2018-07-30 06:02:47 +02:00
from pip._internal.cli.base_command import Command
from pip._internal.operations.check import (
2019-07-22 06:45:27 +02:00
check_package_set,
create_package_set_from_installed,
)
from pip._internal.utils.misc import write_output
logger = logging.getLogger(__name__)
class CheckCommand(Command):
"""Verify installed packages have compatible dependencies."""
usage = """
%prog [options]"""
def run(self, options, args):
package_set, parsing_probs = create_package_set_from_installed()
missing, conflicting = check_package_set(package_set)
for project_name in missing:
2018-01-24 13:28:07 +01:00
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:
2018-01-24 13:28:07 +01:00
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,
)
if missing or conflicting or parsing_probs:
return 1
else:
write_output("No broken requirements found.")