'Find the distributions which can fulfill a requirement.
:param reqt: The requirement.
:type reqt: str
:return: A set of distribution which can fulfill the requirement.'

def find_providers(self, reqt):

    matcher = self.get_matcher(reqt)
    name = matcher.key
    result = set()
    provided = self.provided
    if (name in provided):
        for (version, provider) in provided[name]:
            try:
                match = matcher.match(version)
            except UnsupportedVersionError:
                match = False
            if match:
                result.add(provider)
                break
    return result
