class_docstr: The Message base class encapsulates creating, assembling, and
  validating the integrity of Bokeh Server messages. Additionally, it
  provide hooks
class_docstr_tok: ["The","Message","base","class","encapsulates","creating",",","assembling",",","and","validating","the","integrity","of","Bokeh","Server","messages",".","Additionally",",","it","provide","hooks"]
docstr: Returns whether all required parts of a message are present.
  
  Returns:
      bool : True if the message is complete, False otherwise
docstr_tok: ["Returns","whether","all","required","parts","of","a","message","are","present",".","Returns",":","bool",":","True","if","the","message","is","complete",",","False","otherwise"]
code: def complete(self) -> bool:
      """Returns whether all required parts of a message are present.
  
      Returns:
          bool : True if the message is complete, False otherwise
  
      """
      return (
          self.header is not None
          and self.metadata is not None
          and self.content is not None
          and self.header.get("num_buffers", 0) == len(self._buffers)
      )
  
imports: from __future__ import annotations
  import logging
  import json
  from typing import TYPE_CHECKING, Any, ClassVar, Generic, TypedDict, TypeVar
  import bokeh.util.serialization
  from ..core.json_encoder import serialize_json
  from ..core.serialization import Buffer, Serialized
  from ..core.types import ID
  from .exceptions import MessageError, ProtocolError
label_desc: Use image node_id 7 for calling the Message obj's underlying member method code with example usage: obj.complete() and returns: unknown