From cc2506d10132b6e89e0b2c3f087bf7e579aa726f Mon Sep 17 00:00:00 2001 From: Daniele Varrazzo Date: Fri, 30 Oct 2020 03:13:38 +0100 Subject: [PATCH] Using type Iterator instead of Generator when possible --- psycopg3/psycopg3/copy.py | 6 +++--- psycopg3/psycopg3/oids.py | 4 ++-- psycopg3/psycopg3/types/array.py | 4 ++-- psycopg3/psycopg3/types/composite.py | 10 +++------- 4 files changed, 10 insertions(+), 14 deletions(-) diff --git a/psycopg3/psycopg3/copy.py b/psycopg3/psycopg3/copy.py index 4a6ebaaaf..ff61cf988 100644 --- a/psycopg3/psycopg3/copy.py +++ b/psycopg3/psycopg3/copy.py @@ -7,7 +7,7 @@ psycopg3 copy support import re import codecs import struct -from typing import TYPE_CHECKING, AsyncGenerator, Generator +from typing import TYPE_CHECKING, AsyncIterator, Iterator from typing import Any, Dict, List, Match, Optional, Sequence, Type, Union from types import TracebackType @@ -207,7 +207,7 @@ class Copy(BaseCopy): else: self.finish(str(exc_val)) - def __iter__(self) -> Generator[bytes, None, None]: + def __iter__(self) -> Iterator[bytes]: while 1: data = self.read() if data is None: @@ -268,7 +268,7 @@ class AsyncCopy(BaseCopy): else: await self.finish(str(exc_val)) - async def __aiter__(self) -> AsyncGenerator[bytes, None]: + async def __aiter__(self) -> AsyncIterator[bytes]: while 1: data = await self.read() if data is None: diff --git a/psycopg3/psycopg3/oids.py b/psycopg3/psycopg3/oids.py index c9d6de145..7aebf19a1 100644 --- a/psycopg3/psycopg3/oids.py +++ b/psycopg3/psycopg3/oids.py @@ -8,7 +8,7 @@ to a Postgres server. # Copyright (C) 2020 The Psycopg Team import re -from typing import Dict, Generator, Optional, Union +from typing import Dict, Iterator, Optional, Union INVALID_OID = 0 @@ -53,7 +53,7 @@ class TypesRegistry: if info.alt_name not in self._by_name: self._by_name[info.alt_name] = info - def __iter__(self) -> Generator[TypeInfo, None, None]: + def __iter__(self) -> Iterator[TypeInfo]: seen = set() for t in self._by_oid.values(): if t.oid not in seen: diff --git a/psycopg3/psycopg3/types/array.py b/psycopg3/psycopg3/types/array.py index fbb79490f..3b08031b3 100644 --- a/psycopg3/psycopg3/types/array.py +++ b/psycopg3/psycopg3/types/array.py @@ -6,7 +6,7 @@ Adapters for arrays import re import struct -from typing import Any, Generator, List, Optional, Type +from typing import Any, Iterator, List, Optional, Type from .. import errors as e from ..oids import builtins @@ -241,7 +241,7 @@ class ArrayBinaryLoader(BaseArrayLoader): _struct_dim.unpack_from(data, i)[0] for i in list(range(12, p, 8)) ] - def consume(p: int) -> Generator[Any, None, None]: + def consume(p: int) -> Iterator[Any]: while 1: size = _struct_len.unpack_from(data, p)[0] p += 4 diff --git a/psycopg3/psycopg3/types/composite.py b/psycopg3/psycopg3/types/composite.py index 64e82fc5e..11df459fc 100644 --- a/psycopg3/psycopg3/types/composite.py +++ b/psycopg3/psycopg3/types/composite.py @@ -5,7 +5,7 @@ Support for composite types adaptation. import re import struct from collections import namedtuple -from typing import Any, Callable, Generator, Sequence, Tuple, Type +from typing import Any, Callable, Iterator, Sequence, Tuple, Type from typing import Optional, TYPE_CHECKING from .. import pq @@ -176,9 +176,7 @@ class RecordLoader(BaseCompositeLoader): for token in self._parse_record(data) ) - def _parse_record( - self, data: bytes - ) -> Generator[Optional[bytes], None, None]: + def _parse_record(self, data: bytes) -> Iterator[Optional[bytes]]: if data == b"()": return @@ -221,9 +219,7 @@ class RecordBinaryLoader(BaseCompositeLoader): ) ) - def _walk_record( - self, data: bytes - ) -> Generator[Tuple[int, int, int], None, None]: + def _walk_record(self, data: bytes) -> Iterator[Tuple[int, int, int]]: """ Yield a sequence of (oid, offset, length) for the content of the record """ -- 2.47.2