docs: def remove_link(self, obj, attr=None):
          """
          removes link from obj.attr
          """
          name = repr(self)
          if not name:
              return self
          l = self.__class__._get_links()
          v = WeakAttrLink(None, obj) if attr is None else WeakAttrLink(obj, attr)
          if name in l:
              if v in l[name]:
                  l[name].remove(v)
              if not l[name]:
                  l.pop(name)
          return self