parameters: (self, sampleName=None, sampleDescription=None, uris=None, fileNames=None, nodeNames=None,
      checksums=None, loadFiles=None,
      customDownloader=None, thumbnailFileName=None,
      loadFileType=None, loadFileProperties=None)
docstring: :param sampleName: Name identifying the data set.
      :param sampleDescription: Displayed name of data set in SampleData module GUI. (default is ``sampleName``)
      :param thumbnailFileName: Displayed thumbnail of data set in SampleData module GUI,
      :param uris: Download URL(s).
      :param fileNames: File name(s) that will be downloaded (and loaded).
      :param nodeNames: Node name(s) in the scene.
      :param checksums: Checksum(s) formatted as ``<algo>:<digest>`` to verify the downloaded file(s). For example, ``SHA256:cc211f0dfd9a05ca3841ce1141b292898b2dd2d3f08286affadf823a7e58df93``.
      :param loadFiles: Boolean indicating if file(s) should be loaded.
      :param customDownloader: Custom function for downloading.
      :param loadFileType: file format name(s) ('VolumeFile' by default if node name is specified).
      :param loadFileProperties: custom properties passed to the IO plugin.
docstring_summary: :param sampleName: Name identifying the data set.
      :param sampleDescription: Displayed name of data set in SampleData module GUI. (default is ``sampleName``)
      :param thumbnailFileName: Displayed thumbnail of data set in SampleData module GUI,
      :param uris: Download URL(s).
      :param fileNames: File name(s) that will be downloaded (and loaded).
      :param nodeNames: Node name(s) in the scene.
      :param checksums: Checksum(s) formatted as ``<algo>:<digest>`` to verify the downloaded file(s). For example, ``SHA256:cc211f0dfd9a05ca3841ce1141b292898b2dd2d3f08286affadf823a7e58df93``.
      :param loadFiles: Boolean indicating if file(s) should be loaded.
      :param customDownloader: Custom function for downloading.
      :param loadFileType: file format name(s) ('VolumeFile' by default if node name is specified).
      :param loadFileProperties: custom properties passed to the IO plugin.
docstring_tokens: : param sampleName : Name identifying the data set . : param sampleDescription : Displayed name of data set in SampleData module GUI . ( default is sampleName ) : param thumbnailFileName : Displayed thumbnail of data set in SampleData module GUI : param uris : Download URL ( s ) . : param fileNames : File name ( s ) that will be downloaded ( and loaded ) . : param nodeNames : Node name ( s ) in the scene . : param checksums : Checksum ( s ) formatted as <algo > : <digest > to verify the downloaded file ( s ) . For example SHA256 : cc211f0dfd9a05ca3841ce1141b292898b2dd2d3f08286affadf823a7e58df93 . : param loadFiles : Boolean indicating if file ( s ) should be loaded . : param customDownloader : Custom function for downloading . : param loadFileType : file format name ( s ) ( VolumeFile by default if node name is specified ) . : param loadFileProperties : custom properties passed to the IO plugin .
function: def __init__(self, sampleName=None, sampleDescription=None, uris=None, fileNames=None, nodeNames=None,
      checksums=None, loadFiles=None,
      customDownloader=None, thumbnailFileName=None,
      loadFileType=None, loadFileProperties=None):
      """
      :param sampleName: Name identifying the data set.
      :param sampleDescription: Displayed name of data set in SampleData module GUI. (default is ``sampleName``)
      :param thumbnailFileName: Displayed thumbnail of data set in SampleData module GUI,
      :param uris: Download URL(s).
      :param fileNames: File name(s) that will be downloaded (and loaded).
      :param nodeNames: Node name(s) in the scene.
      :param checksums: Checksum(s) formatted as ``<algo>:<digest>`` to verify the downloaded file(s). For example, ``SHA256:cc211f0dfd9a05ca3841ce1141b292898b2dd2d3f08286affadf823a7e58df93``.
      :param loadFiles: Boolean indicating if file(s) should be loaded.
      :param customDownloader: Custom function for downloading.
      :param loadFileType: file format name(s) ('VolumeFile' by default if node name is specified).
      :param loadFileProperties: custom properties passed to the IO plugin.
      """
      self.sampleName = sampleName
      if sampleDescription is None:
        sampleDescription = sampleName
      self.sampleDescription = sampleDescription
      if (isinstance(uris, list) or isinstance(uris, tuple)):
        if isinstance(loadFileType, str) or loadFileType is None:
          loadFileType = [loadFileType] * len(uris)
        if nodeNames is None:
          nodeNames = [None] * len(uris)
        if loadFiles is None:
          loadFiles = [None] * len(uris)
        if checksums is None:
          checksums = [None] * len(uris)
      elif isinstance(uris, str):
        uris = [uris,]
        fileNames = [fileNames,]
        nodeNames = [nodeNames,]
        loadFiles = [loadFiles,]
        loadFileType = [loadFileType,]
        checksums = [checksums,]
  
      updatedFileType = []
      for fileName, nodeName, fileType in zip(fileNames, nodeNames, loadFileType):
        # If not explicitly specified, attempt to guess fileType
        if fileType is None:
          if nodeName is not None:
            # TODO: Use method from Slicer IO logic ?
            fileType = "VolumeFile"
          else:
            ext = os.path.splitext(fileName.lower())[1]
            if ext in [".mrml", ".mrb"]:
              fileType = "SceneFile"
            elif ext in [".zip"]:
              fileType = "ZipFile"
        updatedFileType.append(fileType)
  
      if loadFileProperties is None:
        loadFileProperties = {}
  
      self.uris = uris
      self.fileNames = fileNames
      self.nodeNames = nodeNames
      self.loadFiles = loadFiles
      self.customDownloader = customDownloader
      self.thumbnailFileName = thumbnailFileName
      self.loadFileType = updatedFileType
      self.loadFileProperties = loadFileProperties
      self.checksums = checksums
      if not len(uris) == len(fileNames) == len(nodeNames) == len(loadFiles) == len(updatedFileType) == len(checksums):
        raise ValueError(
          f"All fields of sample data source must have the same length\n"
          f"  uris                 : {uris}\n"
          f"  len(uris)            : {len(uris)}\n"
          f"  len(fileNames)       : {len(fileNames)}\n"
          f"  len(nodeNames)       : {len(nodeNames)}\n"
          f"  len(loadFiles)       : {len(loadFiles)}\n"
          f"  len(updatedFileType) : {len(updatedFileType)}\n"
          f"  len(checksums)       : {len(checksums)}\n"
          )
function_tokens: def __init__ ( self , sampleName = None , sampleDescription = None , uris = None , fileNames = None , nodeNames = None , checksums = None , loadFiles = None , customDownloader = None , thumbnailFileName = None , loadFileType = None , loadFileProperties = None ) : self . sampleName = sampleName if sampleDescription is None : sampleDescription = sampleName self . sampleDescription = sampleDescription if ( isinstance ( uris , list ) or isinstance ( uris , tuple ) ) : if isinstance ( loadFileType , str ) or loadFileType is None : loadFileType = [ loadFileType ] * len ( uris ) if nodeNames is None : nodeNames = [ None ] * len ( uris ) if loadFiles is None : loadFiles = [ None ] * len ( uris ) if checksums is None : checksums = [ None ] * len ( uris ) elif isinstance ( uris , str ) : uris = [ uris , ] fileNames = [ fileNames , ] nodeNames = [ nodeNames , ] loadFiles = [ loadFiles , ] loadFileType = [ loadFileType , ] checksums = [ checksums , ] updatedFileType = [ ] for fileName , nodeName , fileType in zip ( fileNames , nodeNames , loadFileType ) : # If not explicitly specified, attempt to guess fileType if fileType is None : if nodeName is not None : # TODO: Use method from Slicer IO logic ? fileType = "VolumeFile" else : ext = os . path . splitext ( fileName . lower ( ) ) [ 1 ] if ext in [ ".mrml" , ".mrb" ] : fileType = "SceneFile" elif ext in [ ".zip" ] : fileType = "ZipFile" updatedFileType . append ( fileType ) if loadFileProperties is None : loadFileProperties = { } self . uris = uris self . fileNames = fileNames self . nodeNames = nodeNames self . loadFiles = loadFiles self . customDownloader = customDownloader self . thumbnailFileName = thumbnailFileName self . loadFileType = updatedFileType self . loadFileProperties = loadFileProperties self . checksums = checksums if not len ( uris ) == len ( fileNames ) == len ( nodeNames ) == len ( loadFiles ) == len ( updatedFileType ) == len ( checksums ) : raise ValueError ( f"All fields of sample data source must have the same length\n" f"  uris                 : {uris}\n" f"  len(uris)            : {len(uris)}\n" f"  len(fileNames)       : {len(fileNames)}\n" f"  len(nodeNames)       : {len(nodeNames)}\n" f"  len(loadFiles)       : {len(loadFiles)}\n" f"  len(updatedFileType) : {len(updatedFileType)}\n" f"  len(checksums)       : {len(checksums)}\n" )