code: def disconnect(signal, receiver):
      
      inputkey = __make_id(receiver)
  
      with __lock:
          __purge()
          receivers = __receivers.get(signal)
  
          for idx in six.moves.range(len(receivers)):
              connected = receivers[idx]()
  
              if inputkey != __make_id(connected):
                  continue
  
              del receivers[idx]
              return True  # receiver successfully disconnected!
  
      return False
docs: Disconnect the receiver `func` from the signal, identified by
      `signal_id`.
  
      Args:
          signal: The signal identifier.
          receiver: The callable receiver to disconnect.
  
      Returns:
          True if the receiver was successfully disconnected. False otherwise.