class_docstr: The ShapeNet part level segmentation dataset from the `"A Scalable
  Active Framework for Region Annotation in 3D Shape Collections"
  <http://web.stanford.edu/~ericyi/papers/part_annotation_16_small.pdf>`_
  paper, containing about 17,000 3D shape point clouds from 16 shape
  categories.
  Each category is annotated with 2 to 6 parts.
  
  Args:
      root (string): Root directory where the dataset should be saved.
      categories (string or [string], optional): The category of the CAD
          models (one or a combination of :obj:`"Airplane"`, :obj:`"Bag"`,
          :obj:`"Cap"`, :obj:`"Car"`, :obj:`"Chair"`, :obj:`"Earphone"`,
          :obj:`"Guitar"`, :obj:`"Knife"`, :obj:`"Lamp"`, :obj:`"Laptop"`,
          :obj:`"Motorbike"`, :obj:`"Mug"`, :obj:`"Pistol"`, :obj:`"Rocket"`,
          :obj:`"Skateboard"`, :obj:`"Table"`).
          Can be explicitly set to :obj:`None` to load all categories.
          (default: :obj:`None`)
      include_normals (bool, optional): If set to :obj:`False`, will not
          include normal vectors as input features. (default: :obj:`True`)
      split (string, optional): If :obj:`"train"`, loads the training
          dataset.
          If :obj:`"val"`, loads the validation dataset.
          If :obj:`"trainval"`, loads the training and validation dataset.
          If :obj:`"test"`, loads the test dataset.
          (default: :obj:`"trainval"`)
      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.
          (default: :obj:`None`)
      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. (default: :obj:`None`)
      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. (default: :obj:`None`)
class_docstr_tok: ["The","ShapeNet","part","level","segmentation","dataset","from","the","`","``","A","Scalable","Active","Framework","for","Region","Annotation","in","3D","Shape","Collections","''","<","http",":","\/\/web.stanford.edu\/~ericyi\/papers\/part_annotation_16_small.pdf",">","`","_","paper",",","containing","about","17,000","3D","shape","point","clouds","from","16","shape","categories",".","Each","category","is","annotated","with","2","to","6","parts",".","Args",":","root","(","string",")",":","Root","directory","where","the","dataset","should","be","saved",".","categories","(","string","or","[","string","]",",","optional",")",":","The","category","of","the","CAD","models","(","one","or","a","combination","of",":","obj",":","`","``","Airplane","''","`",",",":","obj",":","`","``","Bag","''","`",",",":","obj",":","`","``","Cap","''","`",",",":","obj",":","`","``","Car","''","`",",",":","obj",":","`","``","Chair","''","`",",",":","obj",":","`","``","Earphone","''","`",",",":","obj",":","`","``","Guitar","''","`",",",":","obj",":","`","``","Knife","''","`",",",":","obj",":","`","``","Lamp","''","`",",",":","obj",":","`","``","Laptop","''","`",",",":","obj",":","`","``","Motorbike","''","`",",",":","obj",":","`","``","Mug","''","`",",",":","obj",":","`","``","Pistol","''","`",",",":","obj",":","`","``","Rocket","''","`",",",":","obj",":","`","``","Skateboard","''","`",",",":","obj",":","`","``","Table","''","`",")",".","Can","be","explicitly","set","to",":","obj",":","`","None","`","to","load","all","categories",".","(","default",":",":","obj",":","`","None","`",")","include_normals","(","bool",",","optional",")",":","If","set","to",":","obj",":","`","False","`",",","will","not","include","normal","vectors","as","input","features",".","(","default",":",":","obj",":","`","True","`",")","split","(","string",",","optional",")",":","If",":","obj",":","`","``","train","''","`",",","loads","the","training","dataset",".","If",":","obj",":","`","``","val","''","`",",","loads","the","validation","dataset",".","If",":","obj",":","`","``","trainval","''","`",",","loads","the","training","and","validation","dataset",".","If",":","obj",":","`","``","test","''","`",",","loads","the","test","dataset",".","(","default",":",":","obj",":","`","``","trainval","''","`",")","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",".","(","default",":",":","obj",":","`","None","`",")","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",".","(","default",":",":","obj",":","`","None","`",")","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",".","(","default",":",":","obj",":","`","None","`",")"]
code: def processed_file_names(self):
      cats = "_".join([cat[:3].lower() for cat in self.categories])
      return [
          os.path.join("{}_{}.pt".format(cats, split))
          for split in ["train", "val", "test", "trainval"]
      ]
  
imports: import os
  import os.path
  import shutil
  import json
  from tqdm.auto import tqdm
  from itertools import repeat, product
  import numpy
  import torch
  from torch_geometric.data import Data, InMemoryDataset, extract_zip
  from torch_geometric.io import read_txt_array
  import torch_geometric.transforms
  from torch_points3d.core.data_transform import SaveOriginalPosId
  from torch_points3d.metrics.shapenet_part_tracker import ShapenetPartTracker
  from torch_points3d.datasets.base_dataset import BaseDataset, save_used_properties
  from torch_points3d.utils.download import download_url
label_desc: Use image node_id 5 for calling the ShapeNet obj's underlying member method code with example usage: obj.processed_file_names() and returns: unknown