From: Daniele Varrazzo Date: Mon, 11 May 2020 04:50:45 +0000 (+1200) Subject: Dropped utils.typing in favour of proto package X-Git-Tag: 3.0.dev0~532 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=39d4884676d241cf31d499613bda8143f5914d39;p=thirdparty%2Fpsycopg.git Dropped utils.typing in favour of proto package --- diff --git a/psycopg3/_psycopg3.pyi b/psycopg3/_psycopg3.pyi index fd19c4d48..10eb17cde 100644 --- a/psycopg3/_psycopg3.pyi +++ b/psycopg3/_psycopg3.pyi @@ -10,9 +10,9 @@ information. Will submit a bug. import codecs from typing import Any, Iterable, List, Optional, Sequence, Tuple +from .proto import AdaptContext, DumpFunc, DumpersMap, DumperType +from .proto import LoadFunc, LoadersMap, LoaderType, MaybeOid from .connection import BaseConnection -from .utils.typing import AdaptContext, DumpFunc, DumpersMap, DumperType -from .utils.typing import LoadFunc, LoadersMap, LoaderType, MaybeOid from . import pq Format = pq.Format diff --git a/psycopg3/adapt.py b/psycopg3/adapt.py index 24500ee05..cd97715b1 100644 --- a/psycopg3/adapt.py +++ b/psycopg3/adapt.py @@ -8,10 +8,10 @@ from typing import Any, Callable, Optional, Tuple, Type, Union from . import pq from . import proto +from .proto import AdaptContext, DumpersMap, DumperType +from .proto import LoadersMap, LoaderType from .cursor import BaseCursor from .connection import BaseConnection -from .utils.typing import AdaptContext, DumpersMap, DumperType -from .utils.typing import LoadersMap, LoaderType # Part of the module interface (just importing it makes mypy unhappy) Format = pq.Format diff --git a/psycopg3/connection.py b/psycopg3/connection.py index f0556b36e..437b7015c 100644 --- a/psycopg3/connection.py +++ b/psycopg3/connection.py @@ -15,9 +15,9 @@ from . import pq from . import errors as e from . import cursor from . import generators +from . import proto from .conninfo import make_conninfo from .waiting import wait, wait_async -from .utils.typing import DumpersMap, LoadersMap logger = logging.getLogger(__name__) @@ -52,8 +52,8 @@ class BaseConnection: def __init__(self, pgconn: pq.proto.PGconn): self.pgconn = pgconn self.cursor_factory = cursor.BaseCursor - self.dumpers: DumpersMap = {} - self.loaders: LoadersMap = {} + self.dumpers: proto.DumpersMap = {} + self.loaders: proto.LoadersMap = {} # name of the postgres encoding (in bytes) self._pgenc = b"" diff --git a/psycopg3/cursor.py b/psycopg3/cursor.py index a48171896..9f9efd605 100644 --- a/psycopg3/cursor.py +++ b/psycopg3/cursor.py @@ -12,8 +12,8 @@ from . import errors as e from . import pq from . import generators from . import proto +from .proto import Query, Params, DumpersMap, LoadersMap from .utils.queries import PostgresQuery -from .utils.typing import Query, Params, DumpersMap, LoadersMap if TYPE_CHECKING: from .connection import BaseConnection, Connection, AsyncConnection diff --git a/psycopg3/proto.py b/psycopg3/proto.py index 9db962b52..7e92a2765 100644 --- a/psycopg3/proto.py +++ b/psycopg3/proto.py @@ -5,20 +5,39 @@ Protocol objects representing different implementations of the same classes. # Copyright (C) 2020 The Psycopg Team import codecs -from typing import Any, Iterable, List, Optional, Sequence, Tuple -from typing import TYPE_CHECKING +from typing import Any, Callable, Dict, Iterable, List, Mapping, Optional +from typing import Sequence, Tuple, Type, Union, TYPE_CHECKING from typing_extensions import Protocol -from .utils.typing import AdaptContext, DumpFunc, DumpersMap, DumperType -from .utils.typing import LoadFunc, LoadersMap, LoaderType, MaybeOid from . import pq if TYPE_CHECKING: from .connection import BaseConnection # noqa + from .cursor import BaseCursor # noqa + from .adapt import Dumper, Loader # noqa +# Part of the module interface (just importing it makes mypy unhappy) Format = pq.Format +EncodeFunc = Callable[[str], Tuple[bytes, int]] +DecodeFunc = Callable[[bytes], Tuple[str, int]] + +Query = Union[str, bytes] +Params = Union[Sequence[Any], Mapping[str, Any]] + +AdaptContext = Union[None, "BaseConnection", "BaseCursor", "Transformer"] + +MaybeOid = Union[Optional[bytes], Tuple[Optional[bytes], int]] +DumpFunc = Callable[[Any], MaybeOid] +DumperType = Union[Type["Dumper"], DumpFunc] +DumpersMap = Dict[Tuple[type, Format], DumperType] + +LoadFunc = Callable[[bytes], Any] +LoaderType = Union[Type["Loader"], LoadFunc] +LoadersMap = Dict[Tuple[int, Format], LoaderType] + + class Transformer(Protocol): def __init__(self, context: AdaptContext = None): ... diff --git a/psycopg3/transform.py b/psycopg3/transform.py index d5bb41d49..6ef1fca49 100644 --- a/psycopg3/transform.py +++ b/psycopg3/transform.py @@ -9,11 +9,11 @@ from typing import Any, Dict, Iterable, List, Optional, Sequence, Tuple from . import errors as e from . import pq +from .proto import AdaptContext, DumpFunc, DumpersMap, DumperType +from .proto import LoadFunc, LoadersMap, LoaderType, MaybeOid from .cursor import BaseCursor -from .types.oids import builtins, INVALID_OID from .connection import BaseConnection -from .utils.typing import AdaptContext, DumpFunc, DumpersMap, DumperType -from .utils.typing import LoadFunc, LoadersMap, LoaderType, MaybeOid +from .types.oids import builtins, INVALID_OID Format = pq.Format TEXT_OID = builtins["text"].oid diff --git a/psycopg3/types/array.py b/psycopg3/types/array.py index a7cf7b34c..02bd13835 100644 --- a/psycopg3/types/array.py +++ b/psycopg3/types/array.py @@ -10,8 +10,8 @@ from typing import Any, Generator, List, Optional, Tuple from .. import errors as e from ..adapt import Format, Dumper, Loader, Transformer +from ..proto import AdaptContext from .oids import builtins -from ..utils.typing import AdaptContext TEXT_OID = builtins["text"].oid TEXT_ARRAY_OID = builtins["text"].array_oid diff --git a/psycopg3/types/composite.py b/psycopg3/types/composite.py index 51cc2111b..610912520 100644 --- a/psycopg3/types/composite.py +++ b/psycopg3/types/composite.py @@ -10,8 +10,8 @@ from typing import Optional, TYPE_CHECKING from . import array from ..adapt import Format, Dumper, Loader, Transformer +from ..proto import AdaptContext from .oids import builtins, TypeInfo -from ..utils.typing import AdaptContext if TYPE_CHECKING: from ..connection import Connection, AsyncConnection diff --git a/psycopg3/types/text.py b/psycopg3/types/text.py index f770a812a..e3ac114b3 100644 --- a/psycopg3/types/text.py +++ b/psycopg3/types/text.py @@ -5,15 +5,13 @@ Adapters for textual types. # Copyright (C) 2020 The Psycopg Team import codecs -from typing import Optional, Tuple, Union, TYPE_CHECKING +from typing import Optional, Tuple, Union from ..adapt import Dumper, Loader -from ..utils.typing import EncodeFunc, DecodeFunc +from ..proto import AdaptContext, EncodeFunc, DecodeFunc from ..pq import Escaping from .oids import builtins, INVALID_OID -if TYPE_CHECKING: - from ..utils.typing import AdaptContext TEXT_OID = builtins["text"].oid BYTEA_OID = builtins["bytea"].oid @@ -22,7 +20,7 @@ BYTEA_OID = builtins["bytea"].oid @Dumper.text(str) @Dumper.binary(str) class StringDumper(Dumper): - def __init__(self, src: type, context: "AdaptContext"): + def __init__(self, src: type, context: AdaptContext): super().__init__(src, context) self._encode: EncodeFunc @@ -47,7 +45,7 @@ class StringLoader(Loader): decode: Optional[DecodeFunc] - def __init__(self, oid: int, context: "AdaptContext"): + def __init__(self, oid: int, context: AdaptContext): super().__init__(oid, context) if self.connection is not None: @@ -71,7 +69,7 @@ class StringLoader(Loader): @Loader.text(builtins["bpchar"].oid) @Loader.binary(builtins["bpchar"].oid) class UnknownLoader(Loader): - def __init__(self, oid: int, context: "AdaptContext"): + def __init__(self, oid: int, context: AdaptContext): super().__init__(oid, context) self.decode: DecodeFunc @@ -86,7 +84,7 @@ class UnknownLoader(Loader): @Dumper.text(bytes) class BytesDumper(Dumper): - def __init__(self, src: type, context: "AdaptContext" = None): + def __init__(self, src: type, context: AdaptContext = None): super().__init__(src, context) self.esc = Escaping( self.connection.pgconn if self.connection is not None else None diff --git a/psycopg3/utils/queries.py b/psycopg3/utils/queries.py index c3a9a2356..8179fcf3b 100644 --- a/psycopg3/utils/queries.py +++ b/psycopg3/utils/queries.py @@ -11,7 +11,7 @@ from typing import Sequence, Tuple, Union, TYPE_CHECKING from .. import errors as e from ..pq import Format -from .typing import Query, Params +from ..proto import Query, Params if TYPE_CHECKING: from ..proto import Transformer diff --git a/psycopg3/utils/typing.py b/psycopg3/utils/typing.py deleted file mode 100644 index f8c41f13b..000000000 --- a/psycopg3/utils/typing.py +++ /dev/null @@ -1,37 +0,0 @@ -""" -Additional types for checking -""" - -# Copyright (C) 2020 The Psycopg Team - -from typing import Any, Callable, Dict, Mapping, Optional, Sequence, Tuple -from typing import Type, Union, TYPE_CHECKING - -from .. import pq - -if TYPE_CHECKING: - from ..connection import BaseConnection # noqa - from ..cursor import BaseCursor # noqa - from ..adapt import Dumper, Loader # noqa - from ..proto import Transformer # noqa - -# Part of the module interface (just importing it makes mypy unhappy) -Format = pq.Format - - -EncodeFunc = Callable[[str], Tuple[bytes, int]] -DecodeFunc = Callable[[bytes], Tuple[str, int]] - -Query = Union[str, bytes] -Params = Union[Sequence[Any], Mapping[str, Any]] - -AdaptContext = Union[None, "BaseConnection", "BaseCursor", "Transformer"] - -MaybeOid = Union[Optional[bytes], Tuple[Optional[bytes], int]] -DumpFunc = Callable[[Any], MaybeOid] -DumperType = Union[Type["Dumper"], DumpFunc] -DumpersMap = Dict[Tuple[type, Format], DumperType] - -LoadFunc = Callable[[bytes], Any] -LoaderType = Union[Type["Loader"], LoadFunc] -LoadersMap = Dict[Tuple[int, Format], LoaderType]