(package_set, should_ignore=None)
return missing, conflicting
Check if a package set is consistent

    If should_ignore is passed, it should be a callable that takes a
    package name and returns a boolean.
Check if a package set is consistent
Check if a package set is consistent
def check_package_set(package_set, should_ignore=None):
    # type: (PackageSet, Optional[Callable[[str], bool]]) -> CheckResult
    """Check if a package set is consistent

    If should_ignore is passed, it should be a callable that takes a
    package name and returns a boolean.
    """
    if should_ignore is None:
        def should_ignore(name):
            return False

    missing = dict()
    conflicting = dict()

    for package_name in package_set:
        # Info about dependencies of package_name
        missing_deps = set()  # type: Set[Missing]
        conflicting_deps = set()  # type: Set[Conflicting]

        if should_ignore(package_name):
            continue

        for req in package_set[package_name].requires:
            name = canonicalize_name(req.project_name)  # type: str

            # Check if it's missing
            if name not in package_set:
                missed = True
                if req.marker is not None:
                    missed = req.marker.evaluate()
                if missed:
                    missing_deps.add((name, req))
                continue

            # Check if there's a conflict
            version = package_set[name].version  # type: str
            if not req.specifier.contains(version, prereleases=True):
                conflicting_deps.add((name, version, req))

        if missing_deps:
            missing[package_name] = sorted(missing_deps, key=str)
        if conflicting_deps:
            conflicting[package_name] = sorted(conflicting_deps, key=str)

    return missing, conflicting
def check_package_set ( package_set , should_ignore = None ) : # type: (PackageSet, Optional[Callable[[str], bool]]) -> CheckResult if should_ignore is None : def should_ignore ( name ) : return False missing = dict ( ) conflicting = dict ( ) for package_name in package_set : # Info about dependencies of package_name missing_deps = set ( ) # type: Set[Missing] conflicting_deps = set ( ) # type: Set[Conflicting] if should_ignore ( package_name ) : continue for req in package_set [ package_name ] . requires : name = canonicalize_name ( req . project_name ) # type: str # Check if it's missing if name not in package_set : missed = True if req . marker is not None : missed = req . marker . evaluate ( ) if missed : missing_deps . add ( ( name , req ) ) continue # Check if there's a conflict version = package_set [ name ] . version # type: str if not req . specifier . contains ( version , prereleases = True ) : conflicting_deps . add ( ( name , version , req ) ) if missing_deps : missing [ package_name ] = sorted ( missing_deps , key = str ) if conflicting_deps : conflicting [ package_name ] = sorted ( conflicting_deps , key = str ) return missing , conflicting