]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
chore: drop pre-3.10 compatibility hacks
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Wed, 7 May 2025 01:44:46 +0000 (03:44 +0200)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Wed, 7 May 2025 18:16:21 +0000 (20:16 +0200)
25 files changed:
psycopg/psycopg/_acompat.py
psycopg/psycopg/_compat.py
psycopg/psycopg/_connection_base.py
psycopg/psycopg/_pipeline.py
psycopg/psycopg/_preparing.py
psycopg/psycopg/_py_transformer.py
psycopg/psycopg/_queries.py
psycopg/psycopg/_struct.py
psycopg/psycopg/_typeinfo.py
psycopg/psycopg/abc.py
psycopg/psycopg/errors.py
psycopg/psycopg/pq/abc.py
psycopg/psycopg/rows.py
psycopg/psycopg/types/enum.py
psycopg/psycopg/types/hstore.py
psycopg/psycopg/types/json.py
psycopg/psycopg/types/net.py
psycopg_pool/psycopg_pool/_acompat.py
psycopg_pool/psycopg_pool/_compat.py
psycopg_pool/psycopg_pool/abc.py
tests/acompat.py
tests/test_cursor_common.py
tests/test_cursor_common_async.py
tests/test_pipeline_async.py
tools/update_oids.py

index 4f9043c6f4dd1223b497326f9593ec93e183a926..de8d8de6afd34c543cf43ec8805e150c154424fa 100644 (file)
@@ -13,10 +13,10 @@ from __future__ import annotations
 import queue
 import asyncio
 import threading
-from typing import Any, Callable
+from typing import Any, Callable, TypeAlias
 from collections.abc import Coroutine
 
-from ._compat import TypeAlias, TypeVar
+from ._compat import TypeVar
 
 Worker: TypeAlias = threading.Thread
 AWorker: TypeAlias = "asyncio.Task[None]"
index 5a3e72204dd5a18297091666a32da6154ef9c12a..e5f9121690027e9af11a68814cfb14d1a743ac47 100644 (file)
@@ -6,11 +6,6 @@ compatibility functions for different Python versions
 
 import sys
 
-if sys.version_info >= (3, 10):
-    from typing import TypeAlias, TypeGuard
-else:
-    from typing_extensions import TypeAlias, TypeGuard
-
 if sys.version_info >= (3, 11):
     from typing import LiteralString, Self
 else:
@@ -24,7 +19,5 @@ else:
 __all__ = [
     "LiteralString",
     "Self",
-    "TypeAlias",
-    "TypeGuard",
     "TypeVar",
 ]
index 11616828b24bbcd6c3bb56facb1153d3daa6f9f3..9a7754f552584d131e25d92eb2b65f5a3f7e3a5a 100644 (file)
@@ -8,7 +8,7 @@ from __future__ import annotations
 
 import sys
 import logging
-from typing import TYPE_CHECKING, Callable, Generic, NamedTuple
+from typing import TYPE_CHECKING, Callable, Generic, NamedTuple, TypeAlias
 from weakref import ReferenceType, ref
 from warnings import warn
 from functools import partial
@@ -22,7 +22,7 @@ from ._tpc import Xid
 from .rows import Row
 from .adapt import AdaptersMap
 from ._enums import IsolationLevel
-from ._compat import LiteralString, Self, TypeAlias, TypeVar
+from ._compat import LiteralString, Self, TypeVar
 from .pq.misc import connection_summary
 from ._pipeline import BasePipeline
 from ._preparing import PrepareManager
index 4b5edf11e63e2189e1e78272492f33197142deb8..dcc225c9ffef834f2808d4c4f95a9ab4f9fd4917 100644 (file)
@@ -8,13 +8,13 @@ from __future__ import annotations
 
 import logging
 from types import TracebackType
-from typing import TYPE_CHECKING, Any
+from typing import TYPE_CHECKING, Any, TypeAlias
 from collections import deque
 
 from . import errors as e
 from . import pq
 from .abc import PipelineCommand, PQGen
-from ._compat import Self, TypeAlias
+from ._compat import Self
 from .pq.misc import connection_summary
 from .generators import fetch_many, pipeline_communicate, send
 from ._capabilities import capabilities
index 97e6a0dc134bc9f5baab4778e44ce44096f46dbf..2be4a3c6696beac2c1dcda11dc5ac18f675643eb 100644 (file)
@@ -7,13 +7,12 @@ Support for prepared statements
 from __future__ import annotations
 
 from enum import IntEnum, auto
-from typing import TYPE_CHECKING, Any
+from typing import TYPE_CHECKING, Any, TypeAlias
 from collections import OrderedDict, deque
 from collections.abc import Sequence
 
 from . import pq
 from .abc import PQGen
-from ._compat import TypeAlias
 from ._queries import PostgresQuery
 
 if TYPE_CHECKING:
index 4f76c6a0c1158cfeca263c6465cd6ffa1df3c1ae..0f449b6207371c89e7f9b4dfa829a7698157aad0 100644 (file)
@@ -11,7 +11,7 @@ dependencies problems).
 
 from __future__ import annotations
 
-from typing import TYPE_CHECKING, Any, DefaultDict
+from typing import TYPE_CHECKING, Any, DefaultDict, TypeAlias
 from collections import defaultdict
 from collections.abc import Sequence
 
@@ -21,7 +21,6 @@ from . import pq
 from .abc import AdaptContext, Buffer, LoadFunc, NoneType, PyFormat
 from .rows import Row, RowMaker
 from ._oids import INVALID_OID, TEXT_OID
-from ._compat import TypeAlias
 from ._encodings import conn_encoding
 
 if TYPE_CHECKING:
index 2da919ad70418078bcaec57021df1ef727bcd0bd..4da8a0d0b5ee889a6de1d22aa95fbb04fcc0f7ec 100644 (file)
@@ -7,7 +7,7 @@ Utility module to manipulate queries
 from __future__ import annotations
 
 import re
-from typing import TYPE_CHECKING, Any, Callable, NamedTuple
+from typing import TYPE_CHECKING, Any, Callable, NamedTuple, TypeAlias, TypeGuard
 from functools import lru_cache
 from collections.abc import Mapping, Sequence
 
@@ -16,7 +16,6 @@ from . import pq
 from .abc import Buffer, Params, Query
 from .sql import Composable
 from ._enums import PyFormat
-from ._compat import TypeAlias, TypeGuard
 from ._encodings import conn_encoding
 
 if TYPE_CHECKING:
index 72536d6bd7d6a00814aa4a88fd0a209522251131..ddbee086c50c7e9d1bc2a2d38bbd92f5acd26b02 100644 (file)
@@ -7,11 +7,10 @@ Utility functions to deal with binary structs.
 from __future__ import annotations
 
 import struct
-from typing import Callable, Protocol, cast
+from typing import Callable, Protocol, TypeAlias, cast
 
 from . import errors as e
 from .abc import Buffer
-from ._compat import TypeAlias
 
 PackInt: TypeAlias = Callable[[int], bytes]
 UnpackInt: TypeAlias = Callable[[Buffer], "tuple[int]"]
index 648b51dc883c6ca79790ccc8d2611aeacea640c8..1f897b33b712f3955c2d3a00ab13f1b587338109 100644 (file)
@@ -9,14 +9,14 @@ information to the adapters if needed.
 
 from __future__ import annotations
 
-from typing import TYPE_CHECKING, Any, overload
+from typing import TYPE_CHECKING, Any, TypeAlias, overload
 from collections.abc import Iterator, Sequence
 
 from . import errors as e
 from . import sql
 from .abc import AdaptContext, Query
 from .rows import dict_row
-from ._compat import TypeAlias, TypeVar
+from ._compat import TypeVar
 from ._typemod import TypeModifier
 from ._encodings import conn_encoding
 
index d63e971410c71fc3ec39e07c564e4ad6300c81ec..029df2118cae18c574d8b7fd276c665f4b5bd2e2 100644 (file)
@@ -6,12 +6,12 @@ Protocol objects representing different implementations of the same classes.
 
 from __future__ import annotations
 
-from typing import TYPE_CHECKING, Any, Callable, Protocol, Union
+from typing import TYPE_CHECKING, Any, Callable, Protocol, TypeAlias, Union
 from collections.abc import Generator, Mapping, Sequence
 
 from . import pq
 from ._enums import PyFormat as PyFormat
-from ._compat import LiteralString, TypeAlias, TypeVar
+from ._compat import LiteralString, TypeVar
 
 if TYPE_CHECKING:
     from . import sql  # noqa: F401
index 40eb3ac83481c81a99c74c8c49f8ae7b077cdd67..0385daa6ccc6deb9c688ccba6c32ae3fad603450 100644 (file)
@@ -20,13 +20,12 @@ DBAPI-defined Exceptions are defined in the following hierarchy::
 
 from __future__ import annotations
 
-from typing import TYPE_CHECKING, Any, Callable, NoReturn
+from typing import TYPE_CHECKING, Any, Callable, NoReturn, TypeAlias, TypeGuard
 from asyncio import CancelledError
 from dataclasses import dataclass, field, fields
 from collections.abc import Sequence
 
 from .pq.abc import PGconn, PGresult
-from ._compat import TypeAlias, TypeGuard
 from .pq._enums import ConnStatus, DiagnosticField, PipelineStatus, TransactionStatus
 
 if TYPE_CHECKING:
index 105c47f8bb57d444841dce59f9c35b92592ca780..f67a6611f9649a408e50fa689c3e238c7f25dbdc 100644 (file)
@@ -6,11 +6,11 @@ Protocol objects to represent objects exposed by different pq implementations.
 
 from __future__ import annotations
 
-from typing import TYPE_CHECKING, Any, Callable, Protocol, Union
+from typing import TYPE_CHECKING, Any, Callable, Protocol, TypeAlias, Union
 from collections.abc import Sequence
 
 from ._enums import Format, Trace
-from .._compat import Self, TypeAlias
+from .._compat import Self
 
 if TYPE_CHECKING:
     from .misc import ConninfoOption, PGnotify, PGresAttDesc
index 2f965e099822221bdf9a08f03b0dd846b81dd386..c9c806eb4484b2c2944a235bbfc503a2e93e9218 100644 (file)
@@ -8,12 +8,13 @@ from __future__ import annotations
 
 import functools
 from typing import TYPE_CHECKING, Any, Callable, NamedTuple, NoReturn, Protocol
+from typing import TypeAlias
 from collections import namedtuple
 from collections.abc import Sequence
 
 from . import errors as e
 from . import pq
-from ._compat import TypeAlias, TypeVar
+from ._compat import TypeVar
 from ._encodings import _as_python_identifier
 
 if TYPE_CHECKING:
index 787883b570dee77681e912210e9a626547423a5c..fef2f1e406045d5a4a4fd312db4764ff07602b6b 100644 (file)
@@ -5,7 +5,7 @@ Adapters for the enum type.
 from __future__ import annotations
 
 from enum import Enum
-from typing import TYPE_CHECKING, Any, Generic, cast
+from typing import TYPE_CHECKING, Any, Generic, TypeAlias, cast
 from functools import cache
 from collections.abc import Mapping, Sequence
 
@@ -14,7 +14,7 @@ from .. import postgres, sql
 from ..pq import Format
 from ..abc import AdaptContext, Query
 from ..adapt import Buffer, Dumper, Loader
-from .._compat import TypeAlias, TypeVar
+from .._compat import TypeVar
 from .._typeinfo import TypeInfo
 from .._encodings import conn_encoding
 
index 6ed323fbdb3ce11185e1fae2911d05c631eb6677..cf91f6142623370029ae12dc9191c9adfa579803 100644 (file)
@@ -8,6 +8,7 @@ from __future__ import annotations
 
 import re
 from struct import Struct
+from typing import TypeAlias
 from functools import cache
 
 from .. import errors as e
@@ -16,7 +17,6 @@ from ..pq import Format
 from ..abc import AdaptContext, Buffer
 from .._oids import TEXT_OID
 from ..adapt import Loader, PyFormat, RecursiveDumper, RecursiveLoader
-from .._compat import TypeAlias
 from .._typeinfo import TypeInfo
 from .._encodings import conn_encoding
 
index 869e078730ca9c27f94068c431c24c8576aed184..ec8516be5b95ec00d838e63f10bc80ec68da27b5 100644 (file)
@@ -7,7 +7,7 @@ Adapters for JSON types.
 from __future__ import annotations
 
 import json
-from typing import Any, Callable
+from typing import Any, Callable, TypeAlias
 from functools import cache
 
 from .. import _oids, abc
@@ -15,7 +15,6 @@ from .. import errors as e
 from ..pq import Format
 from ..adapt import AdaptersMap, Buffer, Dumper, Loader, PyFormat
 from ..errors import DataError
-from .._compat import TypeAlias
 
 JsonDumpsFunction: TypeAlias = Callable[[Any], "str | bytes"]
 JsonLoadsFunction: TypeAlias = Callable[["str | bytes"], Any]
index 31b9a961a41782e3a1410d542c6688de30cf7efd..ccc47c4ed918cc5dc0f6434712d5681765bcdb7e 100644 (file)
@@ -6,13 +6,12 @@ Adapters for network types.
 
 from __future__ import annotations
 
-from typing import TYPE_CHECKING, Callable
+from typing import TYPE_CHECKING, Callable, TypeAlias
 
 from .. import _oids
 from ..pq import Format
 from ..abc import AdaptContext
 from ..adapt import Buffer, Dumper, Loader
-from .._compat import TypeAlias
 
 if TYPE_CHECKING:
     import ipaddress
index aede9313760a439ac28b77de270df6b6212beb48..4ec60afe361851a7048e0efe298f52729fa060ba 100644 (file)
@@ -15,10 +15,10 @@ import queue
 import asyncio
 import logging
 import threading
-from typing import Any, Callable
+from typing import Any, Callable, TypeAlias
 from collections.abc import Coroutine
 
-from ._compat import TypeAlias, TypeVar
+from ._compat import TypeVar
 
 logger = logging.getLogger("psycopg.pool")
 T = TypeVar("T")
index be6a967e03c6a3e6a61e719f2e73fdfeb3881ce2..142896ad42b6ef39aaa9231034b363a65bb28204 100644 (file)
@@ -8,11 +8,6 @@ from __future__ import annotations
 
 import sys
 
-if sys.version_info >= (3, 10):
-    from typing import TypeAlias
-else:
-    from typing_extensions import TypeAlias
-
 if sys.version_info >= (3, 11):
     from typing import Self
 else:
@@ -27,7 +22,6 @@ import psycopg.errors as e
 
 __all__ = [
     "Self",
-    "TypeAlias",
     "TypeVar",
 ]
 
index a9783626f94a000dbf18e9df60da7370009214b8..19b225041fc9cda8f2b403a3a3863877656243e7 100644 (file)
@@ -6,10 +6,10 @@ Types used in the psycopg_pool package
 
 from __future__ import annotations
 
-from typing import TYPE_CHECKING, Callable, Union
+from typing import TYPE_CHECKING, Callable, TypeAlias, Union
 from collections.abc import Awaitable
 
-from ._compat import TypeAlias, TypeVar
+from ._compat import TypeVar
 
 if TYPE_CHECKING:
     from typing import Any  # noqa: F401
index 0605b5a6e1c77cfdadf52ce48979b7b8f3e6049a..b65d16d5535a584e036f8c2676374abf1ba92001 100644 (file)
@@ -8,12 +8,10 @@ when generating the sync version.
 
 from __future__ import annotations
 
-import sys
 import time
 import queue
 import asyncio
 import inspect
-import builtins
 import threading
 import contextlib
 from typing import Any
@@ -41,23 +39,6 @@ def is_async(obj):
     return "Async" in obj.__name__
 
 
-if sys.version_info >= (3, 10):
-    anext = builtins.anext
-    aclosing = contextlib.aclosing
-
-else:
-
-    async def anext(it):
-        return await it.__anext__()
-
-    @contextlib.asynccontextmanager
-    async def aclosing(thing):
-        try:
-            yield thing
-        finally:
-            await thing.aclose()
-
-
 async def alist(it):
     """Consume an async iterator into a list. Async equivalent of list(it)."""
     return [i async for i in it]
index 89f91e677cca10ba7fb9f0220322ff42e11031f2..d7bc92c740366702c0f8a01e0b2fb3bfc47696be 100644 (file)
@@ -8,6 +8,7 @@ Tests common to psycopg.Cursor and its subclasses.
 import weakref
 import datetime as dt
 from typing import Any
+from contextlib import closing
 
 import pytest
 from packaging.version import parse as ver
@@ -19,7 +20,6 @@ from psycopg.types import TypeInfo
 
 from . import _test_cursor
 from .utils import raiseif
-from .acompat import closing
 from .fix_crdb import crdb_encoding
 from ._test_cursor import my_row_factory, ph
 
index ac8ca65fb90f1ac184e8157f4bb105c9247ec0b4..7c7a10e35f75a6f1805ba5f9fea8f87865c05a4a 100644 (file)
@@ -5,6 +5,7 @@ Tests common to psycopg.AsyncCursor and its subclasses.
 import weakref
 import datetime as dt
 from typing import Any
+from contextlib import aclosing
 
 import pytest
 from packaging.version import parse as ver
@@ -16,7 +17,7 @@ from psycopg.types import TypeInfo
 
 from . import _test_cursor
 from .utils import raiseif
-from .acompat import aclosing, alist, anext
+from .acompat import alist
 from .fix_crdb import crdb_encoding
 from ._test_cursor import my_row_factory, ph
 
index 56a76bfef37e1d11ad367012f688b5eb3f027040..608b234759b3deadc7d571e956ad5632e960617a 100644 (file)
@@ -11,7 +11,7 @@ import psycopg
 from psycopg import errors as e
 from psycopg import pq
 
-from .acompat import anext, is_async
+from .acompat import is_async
 
 pytestmark = [
     pytest.mark.pipeline,
index 0b2050dcbb2ad596750880cb4f25f6016aeb8361..51d877734e1d72db226fd856db42b972367549e5 100755 (executable)
@@ -19,13 +19,13 @@ from __future__ import annotations
 import re
 import argparse
 import subprocess as sp
+from typing import TypeAlias
 from pathlib import Path
 
 import psycopg
 from psycopg.pq import version_pretty
 from psycopg.crdb import CrdbConnection
 from psycopg.rows import TupleRow
-from psycopg._compat import TypeAlias
 
 Connection: TypeAlias = psycopg.Connection[TupleRow]