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: Splits a proto message into a Sequence of protos/bytes.
docstr_tok: ["Splits","a","proto","message","into","a","Sequence","of","protos\/bytes","."]
code: def split(
      self,
  ) -> tuple[
      Sequence[Union[message.Message, bytes]], chunk_pb2.ChunkedMessage
  ]:
      """Splits a proto message into a Sequence of protos/bytes."""
      if self._parent_splitter:
          raise ValueError(
              "A child ComposableSplitter's `split` method should not be called "
              "directly, since it inherit chunks from a parent object. Please call "
              "the parent's `split()` method instead."
          )
  
      assert self._chunks is not None
      assert self._chunked_message is not None
  
      if not self._built:
          self.build_chunks()
          self._fix_chunks()
          self._built = True
      return self._chunks, self._chunked_message
  
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 4 for calling the ComposableSplitter obj's underlying member method code with example usage: obj.split() and returns: self,  self