def add_constraint(self, requirement: Requirement) -> None: if requirement.name() in self.requirements: self.add(requirement) elif requirement.name() in self.constraints: self.constraints[requirement.name()] = self.constraints[ requirement.name()].add(requirement, self.target_platform) else: self.constraints[requirement.name()] = requirement
def test_can_retriev_all_runtime_dependency_names( package_a: Requirement, package_b: Requirement, package_c: Requirement, dependency_graph: DependencyGraph, ) -> None: dependency_graph.set_runtime_dependency(dependent=package_a, dependency=package_b) dependency_graph.set_runtime_dependency(dependent=package_b, dependency=package_c) assert dependency_graph.get_all_runtime_dependency_names(package_a) == { package_a.name(), package_b.name(), package_c.name(), }
def get_all_external_dependencies( self, package: Requirement) -> Set[ExternalDependency]: found_dependencies: Set[ExternalDependency] = set() for package_name in self._get_python_children(package.name()): found_dependencies.update( self._external_dependencies[package_name]) return found_dependencies
def get_all_runtime_dependency_names(self, package: Requirement) -> Set[str]: return set(self._get_runtime_children(package.name()))
def get_all_build_dependency_names(self, package: Requirement) -> Set[str]: return set(self._get_python_children(package.name()))
def is_buildtime_dependency(self, dependent: Requirement, dependency: Requirement) -> bool: return self._is_python_child(dependent.name(), dependency.name())
def set_external_dependency(self, dependent: Requirement, dependency: ExternalDependency) -> None: self._external_dependencies[dependent.name()].add(dependency)
def set_buildtime_dependency(self, dependent: Requirement, dependency: Requirement) -> None: self._raise_on_cyclic_dependency(dependent, dependency) self._buildtime_dependencies[dependent.name()].add(dependency.name())