Source code for app.portfolio.collections.proxy.iterable

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

from abc import ABCMeta
from collections.abc import Iterable, Iterator
from typing import override

from ....util.callguard import callguard_class
from .base import ProxyBase


[docs] @callguard_class() class ProxyIterable[ T_Item: object, T_Proxy: object, T_Iterable: Iterable, ]( ProxyBase[T_Item, T_Proxy, T_Iterable], Iterable[T_Proxy], metaclass=ABCMeta, ): @override def __iter__(self) -> Iterator[T_Proxy]: for item in iter(self._get_field()): yield self._convert_item_to_proxy(item)