class_docstr: Scannet dataset, you will have to agree to terms and conditions by hitting enter
  so that it downloads the dataset.
  
  http://www.scan-net.org/
  
  Parameters
  ----------
  root : str
      Path to the data
  split : str, optional
      Split used (train, val or test)
  transform (callable, optional):
      A function/transform that takes in an :obj:`torch_geometric.data.Data` object and returns a transformed
      version. The data object will be transformed before every access.
  pre_transform (callable, optional):
      A function/transform that takes in an :obj:`torch_geometric.data.Data` object and returns a
      transformed version. The data object will be transformed before being saved to disk.
  pre_filter (callable, optional):
      A function that takes in an :obj:`torch_geometric.data.Data` object and returns a boolean
      value, indicating whether the data object should be included in the final dataset.
  version : str, optional
      version of scannet, by default "v2"
  use_instance_labels : bool, optional
      Wether we use instance labels or not, by default False
  use_instance_bboxes : bool, optional
      Wether we use bounding box labels or not, by default False
  donotcare_class_ids : list, optional
      Class ids to be discarded
  max_num_point : [type], optional
      Max number of points to keep during the pre processing step
  use_multiprocessing : bool, optional
      Wether we use multiprocessing or not
  process_workers : int, optional
      Number of process workers
  normalize_rgb : bool, optional
      Normalise rgb values, by default True
class_docstr_tok: ["Scannet","dataset",",","you","will","have","to","agree","to","terms","and","conditions","by","hitting","enter","so","that","it","downloads","the","dataset",".","http",":","\/\/www.scan-net.org\/","Parameters","--","--","--","--","--","root",":","str","Path","to","the","data","split",":","str",",","optional","Split","used","(","train",",","val","or","test",")","transform","(","callable",",","optional",")",":","A","function\/transform","that","takes","in","an",":","obj",":","`","torch_geometric.data.Data","`","object","and","returns","a","transformed","version",".","The","data","object","will","be","transformed","before","every","access",".","pre_transform","(","callable",",","optional",")",":","A","function\/transform","that","takes","in","an",":","obj",":","`","torch_geometric.data.Data","`","object","and","returns","a","transformed","version",".","The","data","object","will","be","transformed","before","being","saved","to","disk",".","pre_filter","(","callable",",","optional",")",":","A","function","that","takes","in","an",":","obj",":","`","torch_geometric.data.Data","`","object","and","returns","a","boolean","value",",","indicating","whether","the","data","object","should","be","included","in","the","final","dataset",".","version",":","str",",","optional","version","of","scannet",",","by","default","``","v2","''","use_instance_labels",":","bool",",","optional","Wether","we","use","instance","labels","or","not",",","by","default","False","use_instance_bboxes",":","bool",",","optional","Wether","we","use","bounding","box","labels","or","not",",","by","default","False","donotcare_class_ids",":","list",",","optional","Class","ids","to","be","discarded","max_num_point",":","[","type","]",",","optional","Max","number","of","points","to","keep","during","the","pre","processing","step","use_multiprocessing",":","bool",",","optional","Wether","we","use","multiprocessing","or","not","process_workers",":","int",",","optional","Number","of","process","workers","normalize_rgb",":","bool",",","optional","Normalise","rgb","values",",","by","default","True"]
code: def read_from_metadata(self):
      metadata_path = osp.join(self.raw_dir, "metadata")
      self.label_map_file = osp.join(metadata_path, LABEL_MAP_FILE)
      split_files = [
          "scannetv2_{}.txt".format(s) for s in Scannet.SPLITS
      ]
      self.scan_names = []
      for sf in split_files:
          f = open(osp.join(metadata_path, sf))
          self.scan_names.append(sorted([line.rstrip() for line in f]))
          f.close()
  
      for idx_split, split in enumerate(Scannet.SPLITS):
          idx_mapping = {
              idx: scan_name
              for idx, scan_name in enumerate(
                  self.scan_names[idx_split]
              )
          }
          setattr(
              self,
              "MAPPING_IDX_TO_SCAN_{}_NAMES".format(split.upper()),
              idx_mapping,
          )
  
imports: import os
  import os.path
  import shutil
  import json
  import torch
  from glob import glob
  import sys
  import csv
  import logging
  import numpy
  from plyfile import PlyData, PlyElement
  from torch_geometric.data import Data, InMemoryDataset, download_url, extract_zip
  import torch_geometric.transforms
  import multiprocessing
  import pandas
  import tempfile
  import urllib
  from urllib.request import urlopen
  from torch_points3d.datasets.base_dataset import BaseDataset
  import torch_points3d.core.data_transform
  from .None import IGNORE_LABEL
label_desc: Use image node_id 12 for calling the Scannet obj's underlying member method code with example usage: obj.read_from_metadata() without return types