This is an automated email from the ASF dual-hosted git repository. github-merge-queue[bot] pushed a commit to branch gh-readonly-queue/main/pr-4091-0a536e40259ecf85adee264d19d2080500a07b82 in repository https://gitbox.apache.org/repos/asf/iceberg-python.git
commit b32392dcbafd3b92415a5b5dc0444722ca2091d9 Author: Mohamed Laghdaf Dadda <[email protected]> AuthorDate: Sat Oct 10 12:38:16 2026 +0000 Avro: Replace manual slots with dataclass slots (#4091) Use slots=True for ListReader and MapReader instead of manually declaring __slots__. Preserve the original dataclass fields and use two-argument super() for compatibility with slotted dataclasses. Internal cached attributes now use the inherited instance dictionary instead of dedicated slots. Refs #4086 --- pyiceberg/avro/reader.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/pyiceberg/avro/reader.py b/pyiceberg/avro/reader.py index cf8e5154e..e3ee8305f 100644 --- a/pyiceberg/avro/reader.py +++ b/pyiceberg/avro/reader.py @@ -380,13 +380,12 @@ class StructReader(Reader): return self._hash -@dataclass(frozen=False, init=False) +@dataclass(frozen=False, init=False, slots=True) class ListReader(Reader): - __slots__ = ("element", "_is_int_list", "_hash") element: Reader def __init__(self, element: Reader) -> None: - super().__init__() + super(ListReader, self).__init__() self.element = element self._hash = hash(self.element) self._is_int_list = isinstance(self.element, IntegerReader) @@ -418,14 +417,13 @@ class ListReader(Reader): EMPTY_DICT: dict[Any, Any] = {} -@dataclass(frozen=False, init=False) +@dataclass(frozen=False, init=False, slots=True) class MapReader(Reader): - __slots__ = ("key", "value", "_is_int_int", "_is_int_bytes", "_key_reader", "_value_reader", "_hash") key: Reader value: Reader def __init__(self, key: Reader, value: Reader) -> None: - super().__init__() + super(MapReader, self).__init__() self.key = key self.value = value if isinstance(self.key, IntegerReader):
