Disconnect receiver from sender for signal. If weak references are used, disconnect needn't be called. The receiver will be removed from dispatch automatically. Arguments: receiver (Callable): The registered receiver to disconnect. May be none if
(self, receiver=None, sender=None, weak=None,
dispatch_uid=None)
| 216 | return receiver |
| 217 | |
| 218 | def disconnect(self, receiver=None, sender=None, weak=None, |
| 219 | dispatch_uid=None): |
| 220 | """Disconnect receiver from sender for signal. |
| 221 | |
| 222 | If weak references are used, disconnect needn't be called. |
| 223 | The receiver will be removed from dispatch automatically. |
| 224 | |
| 225 | Arguments: |
| 226 | receiver (Callable): The registered receiver to disconnect. |
| 227 | May be none if `dispatch_uid` is specified. |
| 228 | |
| 229 | sender (Any): The registered sender to disconnect. |
| 230 | |
| 231 | weak (bool): The weakref state to disconnect. |
| 232 | |
| 233 | dispatch_uid (Hashable): The unique identifier of the receiver |
| 234 | to disconnect. |
| 235 | """ |
| 236 | if weak is not None: |
| 237 | warnings.warn( |
| 238 | 'Passing `weak` to disconnect has no effect.', |
| 239 | CDeprecationWarning, stacklevel=2) |
| 240 | |
| 241 | lookup_key = _make_lookup_key(receiver, sender, dispatch_uid) |
| 242 | |
| 243 | disconnected = False |
| 244 | with self.lock: |
| 245 | self._clear_dead_receivers() |
| 246 | for index in range(len(self.receivers)): |
| 247 | (r_key, _) = self.receivers[index] |
| 248 | if r_key == lookup_key: |
| 249 | disconnected = True |
| 250 | del self.receivers[index] |
| 251 | break |
| 252 | self.sender_receivers_cache.clear() |
| 253 | return disconnected |
| 254 | |
| 255 | def has_listeners(self, sender=None): |
| 256 | return bool(self._live_receivers(sender)) |
nothing calls this directly
no test coverage detected