class_docstr: Data from file should have a valid file path
  (are files on hard drive) and a name.
class_docstr_tok: ["Data","from","file","should","have","a","valid","file","path","(","are","files","on","hard","drive",")","and","a","name","."]
docstr: A tuple of valid image filenames, this property always returns
  a tuple, length of the tuple is one for single image,
  length of the tuple is larger than one for single image from
  multiple files.
  
  :return: a tuple of file paths
docstr_tok: ["A","tuple","of","valid","image","filenames",",","this","property","always","returns","a","tuple",",","length","of","the","tuple","is","one","for","single","image",",","length","of","the","tuple","is","larger","than","one","for","single","image","from","multiple","files",".",":","return",":","a","tuple","of","file","paths"]
code: def file_path(self):
      """
      A tuple of valid image filenames, this property always returns
      a tuple, length of the tuple is one for single image,
      length of the tuple is larger than one for single image from
      multiple files.
  
      :return: a tuple of file paths
      """
      return self._file_path
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import os
  from abc import ABCMeta, abstractmethod
  import nibabel
  import numpy
  import tensorflow
  from six import with_metaclass, string_types
  import niftynet.io.misc_io
  from niftynet.io.image_loader import load_image_obj
  from niftynet.io.misc_io import resolve_file_name, dtype_casting
  from niftynet.utilities.niftynet_global_config import NiftyNetGlobalConfig
label_desc: Use image node_id 3 for calling the DataFromFile obj's underlying member method code with example usage: obj.file_path() and returns: self