def get_locked_candidates(self, section: Optional[str] = None ) -> Dict[str, Candidate]: if not self.lockfile_file.is_file(): return {} section = section or "default" result = {} for package in [dict(p) for p in self.lockfile.get("package", [])]: if section != "__all__" and section not in package["sections"]: continue version = package.get("version") if version: package["version"] = f"=={version}" package_name = package.pop("name") req = Requirement.from_req_dict(package_name, dict(package)) can = Candidate(req, self.environment, name=package_name, version=version) can.marker = req.marker can.hashes = { item["file"]: item["hash"] for item in self.lockfile["metadata"].get( f"{req.key} {version}", []) } or None result[req.identify()] = can if section in ("default", "__all__") and self.meta.name and self.meta.version: result[safe_name( self.meta.name).lower()] = self.make_self_candidate(True) return result
def get_hashes(self, candidate: Candidate) -> None: candidate.hashes = {}