import logging from collections import OrderedDict from typing import Dict, List
from pip._vendor.packaging.specifiers import LegacySpecifier from pip._vendor.packaging.utils import canonicalize_name from pip._vendor.packaging.version import LegacyVersion
from pip._internal.req.req_install import InstallRequirement from pip._internal.utils.deprecation import deprecated
logger = logging.getLogger(__name__)
class RequirementSet: def __init__(self, check_supported_wheels: bool = True) -> None: """Create a RequirementSet."""
@property def requirements_to_install(self) -> List[InstallRequirement]: """Return the list of requirements that need to be installed.
TODO remove this property together with the legacy resolver, since the new
resolver only returns requirements that need to be installed. """ return [
install_req for install_req in self.all_requirements ifnot install_req.constraint andnot install_req.satisfied_by
]
def warn_legacy_versions_and_specifiers(self) -> None: for req in self.requirements_to_install:
version = req.get_dist().version if isinstance(version, LegacyVersion):
deprecated(
reason=(
f"pip has selected the non standard version {version} "
f"of {req}. In the future this version will be "
f"ignored as it isn't standard compliant."
),
replacement=( "set or update constraints to select another version " "or contact the package author to fix the version number"
),
issue=12063,
gone_in="24.1",
) for dep in req.get_dist().iter_dependencies(): if any(isinstance(spec, LegacySpecifier) for spec in dep.specifier):
deprecated(
reason=(
f"pip has selected {req} {version} which has non "
f"standard dependency specifier {dep}. "
f"In the future this version of {req} will be "
f"ignored as it isn't standard compliant."
),
replacement=( "set or update constraints to select another version " "or contact the package author to fix the version number"
),
issue=12063,
gone_in="24.1",
)
Messung V0.5
¤ Dauer der Verarbeitung: 0.20 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.