| 401 | |
| 402 | @cython.ccall |
| 403 | def difference(self, iterable: Iterable[Any], /) -> IdentitySet: |
| 404 | result: IdentitySet = self.__new__(self.__class__) |
| 405 | if isinstance(iterable, IdentitySet): |
| 406 | other = cython.cast(IdentitySet, iterable)._members.keys() |
| 407 | else: |
| 408 | other = {_get_id(obj) for obj in iterable} |
| 409 | |
| 410 | result._members = { |
| 411 | k: v for k, v in self._members.items() if k not in other |
| 412 | } |
| 413 | return result |
| 414 | |
| 415 | def __sub__(self, other: IdentitySet) -> IdentitySet: |
| 416 | if not isinstance(other, IdentitySet): |