class_docstr: VisA dataset class.
  
  Args:
      task (TaskType): Task type, ``classification``, ``detection`` or ``segmentation``
      transform (A.Compose): Albumentations Compose object describing the transforms that are applied to the inputs.
      split (str | Split | None): Split of the dataset, usually Split.TRAIN or Split.TEST
      root (str | Path): Path to the root of the dataset
      category (str): Sub-category of the dataset, e.g. 'candle'
class_docstr_tok: ["VisA","dataset","class",".","Args",":","task","(","TaskType",")",":","Task","type",",","``","classification","``",",","``","detection","``","or","``","segmentation","``","transform","(","A.Compose",")",":","Albumentations","Compose","object","describing","the","transforms","that","are","applied","to","the","inputs",".","split","(","str","|","Split","|","None",")",":","Split","of","the","dataset",",","usually","Split.TRAIN","or","Split.TEST","root","(","str","|","Path",")",":","Path","to","the","root","of","the","dataset","category","(","str",")",":","Sub-category","of","the","dataset",",","e.g",".","'candle","'"]
code: def _setup(self) -> None:
      self.samples = make_mvtec_dataset(
          self.root_category, split=self.split, extensions=EXTENSIONS
      )
  
imports: from __future__ import annotations
  import csv
  import logging
  import shutil
  from pathlib import Path
  import albumentations
  import cv2
  from anomalib.data.base import AnomalibDataModule, AnomalibDataset
  from anomalib.data.task_type import TaskType
  from anomalib.data.utils import DownloadInfo, InputNormalizationMethod, Split, TestSplitMode, ValSplitMode, download_and_extract, get_transforms
  from .mvtec import make_mvtec_dataset
label_desc: Use image node_id 2 for calling the VisaDataset obj's underlying member method code with example usage: obj._setup() without return types