class_docstr: Class for communicating between a Frontend and a Kernel
  
  Must be subclassed with a publish_msg method implementation which
  sends comm messages through the iopub channel.
class_docstr_tok: ["Class","for","communicating","between","a","Frontend","and","a","Kernel","Must","be","subclassed","with","a","publish_msg","method","implementation","which","sends","comm","messages","through","the","iopub","channel","."]
docstr: trigger close on gc
docstr_tok: ["trigger","close","on","gc"]
code: def __del__(self) -> None:
      """trigger close on gc"""
      with contextlib.suppress(Exception):
          # any number of things can have gone horribly wrong
          # when called during interpreter teardown
          self.close(deleting=True)
  
imports: from __future__ import annotations
  import contextlib
  import logging
  import typing
  import uuid
  from traitlets.utils.importstring import import_item
  import comm
label_desc: Use image node_id 3 for calling the BaseComm obj's underlying member method code with example usage: obj.__del__() without return types