code: def _merge_metadata(self_or_cls, obj, fn, *dicts):
          
          merged = dict([(k,v) for d in dicts for (k,v) in d.items()])
          return dict(merged, **fn(obj)) if fn else merged
docs: Returns a merged metadata info dictionary from the supplied
          function and additional dictionaries