class_docstr: A Splitter that can be composed with other splitters.
  
  This Splitter writes to the riegeli file format.
  
  See README for details.
class_docstr_tok: ["A","Splitter","that","can","be","composed","with","other","splitters",".","This","Splitter","writes","to","the","riegeli","file","format",".","See","README","for","details","."]
docstr: Version info about the splitter and join implementation required.
docstr_tok: ["Version","info","about","the","splitter","and","join","implementation","required","."]
code: def version_def(self) -> versions_pb2.VersionDef:
      """Version info about the splitter and join implementation required."""
      return versions_pb2.VersionDef(
          splitter_version=1,
          join_version=0,
          bad_consumers=version_lib.get_bad_versions(),
      )
  
imports: import abc
  from collections.abc import Sequence
  import time
  from typing import Optional, Union
  from absl import logging
  import riegeli
  from google.protobuf import message
  from tensorflow.python.lib.io import file_io
  from tensorflow.tools.proto_splitter import chunk_pb2
  from tensorflow.tools.proto_splitter import util
  from tensorflow.tools.proto_splitter import version
  from tensorflow.tools.proto_splitter import versions_pb2
label_desc: Use image node_id 3 for calling the ComposableSplitter obj's underlying member method code with example usage: obj.version_def() and returns: versions_pb2