class_docstr: Utility class for conversation metadata.
  
  Metadata should be saved at ``<datapath>.metadata``.
class_docstr_tok: ["Utility","class","for","conversation","metadata",".","Metadata","should","be","saved","at","``","<","datapath",">",".metadata","``","."]
docstr: Read the relevant metadata.
docstr_tok: ["Read","the","relevant","metadata","."]
code: def read(self):
      """
      Read the relevant metadata.
      """
      string = f"Metadata version {self.version_num}\n"
      string += f"Saved at: {self.datetime}\n"
      string += f"Self chat: {self.self_chat}\n"
      string += f"Speakers: {self.speakers}\n"
      string += "Opt:\n"
      for k, v in self.opt.items():
          string += f"\t{k}: {v}\n"
      for k, v in self.extra_data.items():
          string += f"{k}: {v}\n"
  
      return string
  
imports: import datetime
  import json
  import os
  import itertools
  from parlai.utils.io import PathManager
  from parlai.core.metrics import dict_report
  from parlai.utils.misc import AttrDict
  import parlai.utils.logging
label_desc: Use image node_id 3 for calling the Metadata obj's underlying member method code with example usage: obj.read() and returns: string