Source code for app.portfolio.collections.proxy.set.generic_set

# SPDX-License-Identifier: GPLv3-or-later
# Copyright © 2025 pygaindalf Rui Pinheiro

from abc import ABCMeta
from collections.abc import MutableSet
from collections.abc import Set as AbstractSet
from typing import override

from ..collection import ProxyCollection, ProxyMutableCollection
from ..iterable import ProxyIterable


[docs] class GenericProxySet[ T_Item: object, T_Proxy: object, T_Collection: AbstractSet, ]( ProxyIterable[T_Item, T_Proxy, T_Collection], ProxyCollection[T_Item, T_Proxy, T_Collection], AbstractSet[T_Proxy], metaclass=ABCMeta, ): pass
[docs] class GenericProxyMutableSet[ T_Item: object, T_Proxy: object, T_Collection: AbstractSet, T_Mut_Collection: MutableSet, ]( GenericProxySet[T_Item, T_Proxy, T_Collection], ProxyMutableCollection[T_Item, T_Proxy, T_Collection, T_Mut_Collection], MutableSet[T_Proxy], metaclass=ABCMeta, ):
[docs] @override def add(self, value: T_Proxy) -> None: item = self._convert_proxy_to_item(value) self._get_mut_field().add(item)
[docs] @override def discard(self, value: T_Proxy) -> None: item = self._convert_proxy_to_item(value) self._get_mut_field().discard(item)
[docs] @override def clear(self) -> None: self._get_mut_field().clear()