def METHOD_NAME(self, name: str) -> Integration:
    if name in self.__cache:
        return self.__cache[name]
    path = self.repo.path / name
    if not path.is_dir():
        raise OSError(f'Integration does not exist: {Path(self.repo.path.name, name)}')
    integration = Integration(path, self.repo.path, self.repo.config)
    if not integration.is_valid:
        raise OSError(f'Path is not an integration nor a Python package: {Path(self.repo.path.name, name)}')
    self.__cache[name] = integration
    return integration