import queue
import asyncio
import threading
-from typing import Any, Callable, Coroutine, TypeVar, TYPE_CHECKING
+from typing import Any, Callable, Coroutine, TYPE_CHECKING
from typing_extensions import TypeAlias
+from ._compat import TypeVar
+
Worker: TypeAlias = threading.Thread
AWorker: TypeAlias = "asyncio.Task[None]"
T = TypeVar("T")
# Copyright (C) 2020 The Psycopg Team
-from typing import Any, Dict, List, Optional, Type, TypeVar, Union
+from typing import Any, Dict, List, Optional, Type, Union
from typing import cast, TYPE_CHECKING
from . import pq
from . import errors as e
from .abc import Dumper, Loader
from ._enums import PyFormat as PyFormat
+from ._compat import TypeVar
from ._cmodule import _psycopg
from ._typeinfo import TypesRegistry
else:
from typing_extensions import LiteralString
+if sys.version_info >= (3, 13):
+ from typing import TypeVar
+else:
+ from typing_extensions import TypeVar
+
__all__ = [
"Counter",
"Deque",
"LiteralString",
"TypeGuard",
+ "TypeVar",
"ZoneInfo",
"cache",
]
import logging
from typing import Callable, Generic
-from typing import List, NamedTuple, Optional, Type, TypeVar, Tuple, Union
+from typing import List, NamedTuple, Optional, Type, Tuple, Union
from typing import TYPE_CHECKING
from weakref import ref, ReferenceType
from warnings import warn
from .rows import Row
from .adapt import AdaptersMap
from ._enums import IsolationLevel
-from ._compat import LiteralString
+from ._compat import LiteralString, TypeVar
from .pq.misc import connection_summary
from .conninfo import ConnectionInfo
from ._pipeline import BasePipeline
# Copyright (C) 2020 The Psycopg Team
from typing import Any, Dict, Iterator, Optional, overload
-from typing import Sequence, Tuple, Type, TypeVar, Union, TYPE_CHECKING
+from typing import Sequence, Tuple, Type, Union, TYPE_CHECKING
from typing_extensions import TypeAlias
from . import sql
from . import errors as e
from .abc import AdaptContext, Query
from .rows import dict_row
+from ._compat import TypeVar
from ._encodings import conn_encoding
if TYPE_CHECKING:
# Copyright (C) 2020 The Psycopg Team
from typing import Any, Callable, Generator, Mapping
-from typing import List, Optional, Protocol, Sequence, Tuple, TypeVar, Union
+from typing import List, Optional, Protocol, Sequence, Tuple, Union
from typing import TYPE_CHECKING
from typing_extensions import TypeAlias
from . import pq
from ._enums import PyFormat as PyFormat
-from ._compat import LiteralString
+from ._compat import LiteralString, TypeVar
if TYPE_CHECKING:
from . import sql
import inspect
import logging
-from typing import Any, Callable, Type, TypeVar, TYPE_CHECKING
+from typing import Any, Callable, Type, TYPE_CHECKING
from functools import wraps
+from .._compat import TypeVar
from . import PGconn
from .misc import connection_summary
import functools
from typing import Any, Callable, Dict, List, Optional, NamedTuple, NoReturn
-from typing import TYPE_CHECKING, Protocol, Sequence, Tuple, Type, TypeVar
+from typing import TYPE_CHECKING, Protocol, Sequence, Tuple, Type
from collections import namedtuple
from typing_extensions import TypeAlias
from . import pq
from . import errors as e
+from ._compat import TypeVar
from ._encodings import _as_python_identifier
if TYPE_CHECKING:
"""
from enum import Enum
from typing import Any, Dict, Generic, Optional, Mapping, Sequence
-from typing import Tuple, Type, TypeVar, Union, cast, TYPE_CHECKING
+from typing import Tuple, Type, Union, cast, TYPE_CHECKING
from typing_extensions import TypeAlias
from .. import sql
from ..pq import Format
from ..abc import AdaptContext, Query
from ..adapt import Buffer, Dumper, Loader
-from .._compat import cache
+from .._compat import cache, TypeVar
from .._encodings import conn_encoding
from .._typeinfo import TypeInfo
# Copyright (C) 2020 The Psycopg Team
import re
-from typing import Any, Callable, Dict, Generic, List, Optional, TypeVar, Type, Tuple
+from typing import Any, Callable, Dict, Generic, List, Optional, Type, Tuple
from typing import cast, TYPE_CHECKING
from decimal import Decimal
from datetime import date, datetime
from ..abc import AdaptContext, Buffer, Dumper, DumperKey, Query
from ..adapt import RecursiveDumper, RecursiveLoader, PyFormat
from .._oids import INVALID_OID, TEXT_OID
-from .._compat import cache
+from .._compat import cache, TypeVar
from .._struct import pack_len, unpack_len
from .._typeinfo import TypeInfo, TypesRegistry
zip_safe = False
install_requires =
backports.zoneinfo >= 0.2.0; python_version < "3.9"
- typing-extensions >= 4.2
+ typing-extensions >= 4.4
tzdata; sys_platform == "win32"
[options.extras_require]
psycopg-pool
test =
anyio >= 4.0
- mypy >= 1.4.1
+ mypy >= 1.6
pproxy >= 2.7
pytest >= 6.2.5
pytest-cov >= 3.0
black >= 23.1.0
dnspython >= 2.1
flake8 >= 4.0
- mypy >= 1.4.1
+ mypy >= 1.6
types-setuptools >= 57.4
wheel >= 0.37
docs =
import asyncio
import logging
import threading
-from typing import Any, Callable, Coroutine, TypeVar, TYPE_CHECKING
+from typing import Any, Callable, Coroutine, TYPE_CHECKING
from typing_extensions import TypeAlias
+from ._compat import TypeVar
+
logger = logging.getLogger("psycopg.pool")
T = TypeVar("T")
else:
from typing_extensions import Self
+if sys.version_info >= (3, 13):
+ from typing import TypeVar
+else:
+ from typing_extensions import TypeVar
+
__all__ = [
"Counter",
"Deque",
"Self",
+ "TypeVar",
]
# Workaround for psycopg < 3.0.8.
from __future__ import annotations
-from typing import Any, Awaitable, Callable, TypeVar, Union, TYPE_CHECKING
+from typing import Any, Awaitable, Callable, Union, TYPE_CHECKING
from typing_extensions import TypeAlias
+from ._compat import TypeVar
+
if TYPE_CHECKING:
from .pool import ConnectionPool
from .pool_async import AsyncConnectionPool
- from psycopg import Connection, AsyncConnection
+ from psycopg import Connection, AsyncConnection # noqa: F401
# Connection types to make the pool generic
CT = TypeVar("CT", bound="Connection[Any]")
packages = find:
zip_safe = False
install_requires =
- typing-extensions >= 4.0
+ typing-extensions >= 4.4
[options.package_data]
psycopg_pool = py.typed
# From install_requires
backports.zoneinfo == 0.2.0
-typing-extensions == 4.2.0
+typing-extensions == 4.4.0
importlib-metadata == 1.4
# From the 'test' extra
anyio == 4.0
-mypy == 1.4.1
+mypy == 1.6.0
pproxy == 2.7.0
pytest == 6.2.5
pytest-cov == 3.0.0