code: def parse_meta(self, meta):
          
          res = {}
  
          for key, val in meta.items():
              if not val:
                  continue
              elif isinstance(val, dict):
                  res[key] = self.parse_meta(val)
              elif val.startswith('current_user.'):
                  res[key] = self.get_path_attribute(current_user, val)
              elif val.startswith('original.'):
                  res[key] = self.get_path_attribute(self.get_original(), val)
              else:
                  res[key] = self.get_path_attribute(self, val)
  
          return res
docs: Parses the meta field in the message, copies it's keys into a new
          dict and replaces the values, which should be attribute paths relative
          to the passed in object, with the current value at the end of that
          path. This function will run recursively when it encounters other dicts
          inside the meta dict.
  
          Args:
              meta (dict):
                  The dictionary of mappings to pull structure of the meta from.
  
          Returns:
              dict:
                  A copy of the keys from the meta dict with the values pulled
                  from the paths.