class_docstr: Extend IPython kernel for parallel computing
class_docstr_tok: ["Extend","IPython","kernel","for","parallel","computing"]
docstr: Finish populating metadata.
  
  Run after completing a request handler.
docstr_tok: ["Finish","populating","metadata",".","Run","after","completing","a","request","handler","."]
code: def finish_metadata(self, parent, metadata, reply_content):
      """Finish populating metadata.
  
      Run after completing a request handler.
      """
      metadata["status"] = reply_content["status"]
      if reply_content["status"] == "error":
          if reply_content["ename"] == "UnmetDependency":
              metadata["dependencies_met"] = False
          metadata["engine_info"] = self.get_engine_info()
  
      return metadata
  
imports: import asyncio
  import inspect
  import sys
  from functools import partial
  import ipykernel
  from ipykernel.ipkernel import IPythonKernel
  from traitlets import Integer, Type
  from ipyparallel.serialize import serialize_object, unpack_apply_message
  from ipyparallel.util import utcnow
  from .datapub import ZMQDataPublisher
label_desc: Use image node_id 7 for calling the IPythonParallelKernel obj's underlying member method code with example usage: obj.finish_metadata(parent, metadata, reply_content) and returns: metadata