code: def prime_orient_merge(
      ppr_pairs: np.ndarray,
      primes_per_batch: int,
      num_nodes: int,
  ):
      if not WITH_NUMBA:  # pragma: no cover
          raise ImportError(
              "'prime_orient_merge' requires the 'numba' package"
          )
  
      global _prime_orient_merge_numba
      if _prime_orient_merge_numba is None:
          _prime_orient_merge_numba = numba.njit(cache=True)(
              _prime_orient_merge
          )
  
      return _prime_orient_merge_numba(
          ppr_pairs, primes_per_batch, num_nodes
      )
  
imports: import logging
  import math
  from typing import Callable, Iterator, List, NamedTuple, Optional, Tuple, Union
  import numpy
  import scipy.sparse
  import torch
  from torch import Tensor
  from tqdm import tqdm
  from torch_geometric.data import Data
  from torch_geometric.typing import SparseTensor
  from torch_geometric.utils import get_ppr, is_undirected, subgraph
label_desc: Use image node_id 8 for calling a global function with example usage: prime_orient_merge(ppr_pairs, primes_per_batch, num_nodes) and returns: _prime_orient_merge_numba