class_docstr: A class that supports simple attribute setter/getter.
  It is intended for storing metadata of a dataset and make it accessible globally.
  
  Examples:
  ::
      # somewhere when you load the data:
      MetadataCatalog.get("mydataset").thing_classes = ["person", "dog"]
  
      # somewhere when you print statistics or visualize:
      classes = MetadataCatalog.get("mydataset").thing_classes
class_docstr_tok: ["A","class","that","supports","simple","attribute","setter\/getter",".","It","is","intended","for","storing","metadata","of","a","dataset","and","make","it","accessible","globally",".","Examples",":",":",":","#","somewhere","when","you","load","the","data",":","MetadataCatalog.get","(","``","mydataset","''",")",".thing_classes","=","[","``","person","''",",","``","dog","''","]","#","somewhere","when","you","print","statistics","or","visualize",":","classes","=","MetadataCatalog.get","(","``","mydataset","''",")",".thing_classes"]
docstr: Access an attribute and return its value if exists.
  Otherwise return default.
docstr_tok: ["Access","an","attribute","and","return","its","value","if","exists",".","Otherwise","return","default","."]
code: def get(self, key, default=None):
      """
      Access an attribute and return its value if exists.
      Otherwise return default.
      """
      try:
          return getattr(self, key)
      except AttributeError:
          return default
  
imports: import copy
  import logging
  import types
  from collections import UserDict
  from typing import List
  from detectron2.utils.logger import log_first_n
label_desc: Use image node_id 5 for calling the Metadata obj's underlying member method code with example usage: obj.get(key, default) and returns: getattr, default