code: def get(self, idx: int) -> Data:
      self._load()
  
      if self._data_list[idx] is not None:
          cached_data = self._data_list[idx]
          assert isinstance(cached_data, Data)
          return copy.copy(cached_data)
  
      data = Data(
          z=torch.from_numpy(self.z[idx, :]),
          pos=torch.from_numpy(self.pos[idx, :, :]),
          y=torch.tensor(self.y[idx]),
      )
  
      if self.pre_transform is not None:
          data = self.pre_transform(data)
  
      self._data_list[idx] = copy.copy(data)
      return data
  
imports: import copy
  import os
  import os.path
  from dataclasses import dataclass
  from functools import cached_property
  from glob import glob
  from pathlib import Path
  from typing import Callable, List, MutableSequence, Optional, Tuple, Union
  import numpy
  import torch
  from torch.utils.data import ConcatDataset, Subset
  from torch_geometric.data import Data, InMemoryDataset, download_url, extract_zip
  from torch_geometric.data.data import BaseData
label_desc: Use image node_id 8 for calling the Partition obj's underlying member method code with example usage: obj.get(idx) and returns: data, copy