docs: def tag(self, tags):
          """ Add or remove tags.
          """
          # Get tag list and add/remove given tags
          tags = tags.lower()
          previous = self.tagged
          tagset = previous.copy()
          for tag in tags.replace(',', ' ').split():
              if tag.startswith('-'):
                  tagset.discard(tag[1:])
              elif tag.startswith('+'):
                  tagset.add(tag[1:])
              else:
                  tagset.add(tag)
  
          # Write back new tagset, if changed
          tagset.discard('')
          if tagset != previous:
              tagset = ' '.join(sorted(tagset))
              self._make_it_so("setting tags %r on" % (tagset,), ["custom.set"], "tags", tagset)
              self._fields["custom_tags"] = tagset