class_docstr: Adapt msg protocol v5 to v4
class_docstr_tok: ["Adapt","msg","protocol","v5","to","v4"]
code: def kernel_info_reply(self, msg):
      v4c = {}
      content = msg["content"]
      for key in ("language_version", "protocol_version"):
          if key in content:
              v4c[key] = _version_str_to_list(content[key])
      if (
          content.get("implementation", "") == "ipython"
          and "implementation_version" in content
      ):
          v4c["ipython_version"] = _version_str_to_list(
              content["implementation_version"]
          )
      language_info = content.get("language_info", {})
      language = language_info.get("name", "")
      v4c.setdefault("language", language)
      if "version" in language_info:
          v4c.setdefault(
              "language_version",
              _version_str_to_list(language_info["version"]),
          )
      msg["content"] = v4c
      return msg
  
imports: import re
  import json
  from jupyter_client import protocol_version_info
label_desc: Use image node_id 2 for calling the V5toV4 obj's underlying member method code with example usage: obj.kernel_info_reply(msg) and returns: msg