code: def annotated_files(self):
      if self._annotated_files is None:
          split_path = self._get_split_path()
          try:
              all_files = tf.gfile.ListDirectory(split_path)
          except tf.errors.NotFoundError:
              raise InvalidDataDirectory(
                  'Directory for split "{}" does not exist'.format(
                      self._split
                  )
              )
  
          self._annotated_files = []
          for filename in all_files:
              if filename.endswith(".{}".format(self._annotation_type)):
                  self._annotated_files.append(
                      filename[: -(len(self._annotation_type) + 1)]
                  )
          if len(self._annotated_files) == 0:
              raise InvalidDataDirectory(
                  "Could not find any annotations in {}".format(
                      split_path
                  )
              )
  
      return self._annotated_files
  
file_path: luminoth/luminoth/tools/dataset/readers/object_detection/flat_reader.py
imports: import json
  import os
  import six
  import tensorflow
  from PIL import Image
  from luminoth.tools.dataset.readers import InvalidDataDirectory
  from luminoth.tools.dataset.readers.object_detection import ObjectDetectionReader
  from luminoth.utils.dataset import read_image
label_desc: Use image node_id 4 for calling the FlatReader obj's underlying member method code with example usage: obj.annotated_files() and returns: self