class_docstr: implementation of get_fragment and get_name to avoid repetitions
docstr: get the pair before the data augmentation
docstr_tok: ["get","the","pair","before","the","data","augmentation"]
code: def get_raw_pair(self, idx):
      """
      get the pair before the data augmentation
      """
      match = np.load(
          osp.join(self.path_match, "matches{:06d}.npy".format(idx)),
          allow_pickle=True,
      ).item()
      if not self.self_supervised:
          data_source = torch.load(match["path_source"]).to(torch.float)
          data_target = torch.load(match["path_target"]).to(torch.float)
          new_pair = torch.from_numpy(match["pair"])
      else:
          if random.random() < 0.5:
              data_source_o = torch.load(match["path_source"]).to(
                  torch.float
              )
              data_target_o = torch.load(match["path_source"]).to(
                  torch.float
              )
          else:
              data_source_o = torch.load(match["path_target"]).to(
                  torch.float
              )
              data_target_o = torch.load(match["path_target"]).to(
                  torch.float
              )
          (
              data_source,
              data_target,
              new_pair,
          ) = self.unsupervised_preprocess(data_source_o, data_target_o)
  
      return data_source, data_target, new_pair
  
imports: import numpy
  import os.path
  import random
  import torch
  import logging
  from torch_geometric.data import Data
  from torch_points_kernels.points_cpu import ball_query
  from functools import partial
  from torch_points3d.core.data_transform import MultiScaleTransform
  from torch_points3d.core.data_transform import PairTransform
  from torch_points3d.datasets.registration.pair import DensePairBatch
  from torch_points3d.utils.enums import ConvolutionFormat
  from torch_points3d.utils.config import ConvolutionFormatFactory
  from torch_points3d.datasets.registration.pair import PairMultiScaleBatch, PairBatch
  from torch_points3d.datasets.registration.pair import Pair, MultiScalePair
  from torch_points3d.datasets.registration.utils import tracked_matches
  from torch_points3d.datasets.registration.utils import compute_overlap_and_matches
  from torch_points3d.datasets.registration.utils import fps_sampling
  from torch_points3d.datasets.base_dataset import BaseDataset
  from torch_points3d.metrics.registration_tracker import PatchRegistrationTracker
  from torch_points3d.metrics.registration_tracker import FragmentRegistrationTracker
label_desc: Use image node_id 1 for calling the GeneralFragment obj's underlying member method code with example usage: obj.get_raw_pair(idx) and returns: data_source,  data_target,  new_pair