import importlib import os.path as osp import torch __version__ = '1.6.0' for library in [ '_version', '_grid', '_graclus', '_fps', '_rw', '_sampler', '_nearest', '_knn', '_radius' ]: hip_spec = importlib.machinery.PathFinder().find_spec( f'{library}_hip', [osp.dirname(__file__)]) cpu_spec = importlib.machinery.PathFinder().find_spec( f'{library}_cpu', [osp.dirname(__file__)]) spec = hip_spec or cpu_spec if spec is not None: torch.ops.load_library(spec.origin) else: # pragma: no cover raise ImportError(f"Could not find module '{library}_cpu' in " f"{osp.dirname(__file__)}") cuda_version = torch.ops.torch_cluster.cuda_version() if torch.cuda.is_available() and cuda_version != -1: # pragma: no cover if cuda_version < 10000: major, minor = int(str(cuda_version)[0]), int(str(cuda_version)[2]) else: major, minor = int(str(cuda_version)[0:2]), int(str(cuda_version)[3]) from .fps import fps # noqa from .graclus import graclus_cluster # noqa from .grid import grid_cluster # noqa from .knn import knn, knn_graph # noqa from .nearest import nearest # noqa from .radius import radius, radius_graph # noqa from .rw import random_walk # noqa from .sampler import neighbor_sampler # noqa __all__ = [ 'graclus_cluster', 'grid_cluster', 'fps', 'nearest', 'knn', 'knn_graph', 'radius', 'radius_graph', 'random_walk', 'neighbor_sampler', '__version__', ]