def METHOD_NAME(self, name: str) -> Optional[BaseDistribution]:
    matches = (
        distribution
        for distribution in self.iter_all_distributions()
        if distribution.canonical_name == canonicalize_name(name)
    )
    return next(matches, None)