class_docstr: Wrapper for tf.data.Dataset to permit extensions.
class_docstr_tok: ["Wrapper","for","tf.data.Dataset","to","permit","extensions","."]
code: def from_files(
      cls,
      filenames: List[str],
      image_shape: Tuple[int, int, int],
      parse_fn: Optional[Callable] = record_parse,
  ):
      filenames_in = filenames
      filenames = sorted(
          sum([tf.io.gfile.glob(x) for x in filenames], [])
      )
      if not filenames:
          raise ValueError(
              "Empty dataset, files not found:", filenames_in
          )
      return cls(
          tf.data.TFRecordDataset(filenames).enumerate(),
          image_shape,
          parse_fn=parse_fn,
      )
  
imports: import os
  from typing import Callable, Optional, Tuple, List, Iterable
  import numpy
  import tensorflow
  from absl import flags
label_desc: Use image node_id 3 for calling the DataSet obj's underlying member method code with example usage: obj.from_files(cls, filenames, image_shape, parse_fn) and returns: cls