def get_dependencies(builder: "HasReqsHints") -> ToolRequirements: (software_requirement, _) = builder.get_requirement("SoftwareRequirement") dependencies = [] # type: List[ToolRequirement] if software_requirement and software_requirement.get("packages"): packages = cast( MutableSequence[MutableMapping[str, Union[str, MutableSequence[str]]]], software_requirement.get("packages"), ) for package in packages: version = package.get("version", None) if isinstance(version, MutableSequence): if version: version = version[0] else: version = None specs = [{"uri": s} for s in package.get("specs", [])] dependencies.append( ToolRequirement.from_dict( dict( name=cast(str, package["package"]).split("#")[-1], version=version, type="package", specs=specs, ))) return ToolRequirements.from_list(dependencies)
def test_tool_requirement_equality(): a = ToolRequirement.from_dict(REQUIREMENT_A) assert a == ToolRequirement(**REQUIREMENT_A) b = ToolRequirement(**REQUIREMENT_B) assert a != b