code: def __init__(self, dataset_opt):
      super().__init__(dataset_opt)
  
      pre_transform = self.pre_transform
      self.train_dataset = S3DIS1x1(
          self._data_path,
          test_area=self.dataset_opt.fold,
          train=True,
          pre_transform=self.pre_transform,
          transform=self.train_transform,
      )
      self.test_dataset = S3DIS1x1(
          self._data_path,
          test_area=self.dataset_opt.fold,
          train=False,
          pre_transform=pre_transform,
          transform=self.test_transform,
      )
      if dataset_opt.class_weight_method:
          self.add_weights(
              class_weight_method=dataset_opt.class_weight_method
          )
  
imports: import os
  import os.path
  from itertools import repeat, product
  import numpy
  import h5py
  import torch
  import random
  import glob
  from plyfile import PlyData, PlyElement
  from torch_geometric.data import InMemoryDataset, Data, extract_zip, Dataset
  from torch_geometric.data.dataset import files_exist
  from torch_geometric.data import DataLoader
  from torch_geometric.datasets import S3DIS
  import torch_geometric.transforms
  import logging
  from sklearn.neighbors import NearestNeighbors, KDTree
  from tqdm.auto import tqdm
  import csv
  import pandas
  import pickle
  import gdown
  import shutil
  from torch_points3d.datasets.samplers import BalancedRandomSampler
  import torch_points3d.core.data_transform
  from torch_points3d.datasets.base_dataset import BaseDataset
label_desc: Use image node_id 1 to create a new S3DIS1x1Dataset object from inherited base classes: BaseDataset with example: obj = S3DIS1x1Dataset(dataset_opt)