code: def disconnect(self, slot):
          
          if not callable(slot):
              return
  
          if inspect.ismethod(slot):
              # If it's a method, then find it by its instance
              slotSelf = slot.__self__
              for s in self._slots:
                  if isinstance(s, weakref.WeakKeyDictionary) and (slotSelf in s) and (s[slotSelf] is slot.__func__):
                      self._slots.remove(s)
                      break
          elif isinstance(slot, partial) or '<' in slot.__name__:
              # If it's a partial or lambda, try to remove directly
              try:
                  self._slots.remove(slot)
              except ValueError:
                  pass
          else:
              # It's probably a function, so try to remove by weakref
              try:
                  self._slots.remove(weakref.ref(slot))
              except ValueError:
                  pass
docs: Disconnects the slot from the signal