class_docstr: A KernelClient with blocking APIs
  
  ``get_[channel]_msg()`` methods wait for and return messages on channels,
  raising :exc:`queue.Empty` if no message arrives within ``timeout`` seconds.
class_docstr_tok: ["A","KernelClient","with","blocking","APIs","``","get_","[","channel","]","_msg","(",")","``","methods","wait","for","and","return","messages","on","channels",",","raising",":","exc",":","`","queue.Empty","`","if","no","message","arrives","within","``","timeout","``","seconds","."]
docstr: Default hook for redisplaying plain-text output
docstr_tok: ["Default","hook","for","redisplaying","plain-text","output"]
code: def _output_hook_default(self, msg):
      """Default hook for redisplaying plain-text output"""
      msg_type = msg["header"]["msg_type"]
      content = msg["content"]
      if msg_type == "stream":
          stream = getattr(sys, content["name"])
          stream.write(content["text"])
      elif msg_type in ("display_data", "execute_result"):
          sys.stdout.write(content["data"].get("text/plain", ""))
      elif msg_type == "error":
          print("\n".join(content["traceback"]), file=sys.stderr)
  
file_path: catboost/contrib/python/jupyter-client/py2/jupyter_client/blocking/client.py
imports: from __future__ import print_function
  from functools import partial
  from getpass import getpass
  import sys
  import time
  import zmq
  from traitlets import Type
  from jupyter_client.channels import HBChannel
  from jupyter_client.client import KernelClient
  from .channels import ZMQSocketChannel
label_desc: Use image node_id 4 for calling the BlockingKernelClient obj's underlying member method code with example usage: obj._output_hook_default(msg) without return types