def _set_xmp_tag(self, key, tag_or_value): # Set an XMP tag. If the tag already exists, its value is overwritten. if isinstance(tag_or_value, XmpTag): tag = tag_or_value else: # As a handy shortcut, accept direct value assignment. tag = XmpTag(key, tag_or_value) tag._set_owner(self) self._tags['xmp'][tag.key] = tag if tag.key not in self.xmp_keys: self._keys['xmp'].append(tag.key)