return agg(dims)
-def register_array(
+def register(
array_oid: int,
base_oid: int,
context: AdaptContext = None,
(Format.TEXT, ArrayCasterText),
(Format.BINARY, ArrayCasterBinary),
):
- tcname = f"{name}_array_{format.name.lower()}"
+ tcname = f"{name.title()}Array{format.name.title()}Caster"
t = type(tcname, (base,), {"base_oid": base_oid})
TypeCaster.register(array_oid, t, context=context, format=format)
(t.oid, Format.TEXT) in TypeCaster.globals
or (t.oid, Format.BINARY) in TypeCaster.globals
):
- register_array(t.array_oid, t.oid, name=t.name)
+ register(t.array_oid, t.oid, name=t.name)
from typing import Any, Callable, Generator, List, Sequence, Tuple, Union
from typing import Optional, TYPE_CHECKING
+from . import array
from ..adapt import Format, TypeCaster, Transformer, AdaptContext
from .oids import builtins, TypeInfo
-from .array import register_array
if TYPE_CHECKING:
from ..connection import Connection
)
if info.array_oid:
- register_array(
+ array.register(
info.array_oid, info.oid, context=context, name=info.name
)
import pytest
import psycopg3
-from psycopg3.types import builtins
+from psycopg3.types import builtins, array
from psycopg3.adapt import Format, Transformer
-from psycopg3.types.array import register_array
tests_str = [
res = cur.fetchone()[0]
assert res == "{postgres=arwdDxt/postgres}"
- register_array(
+ array.register(
builtins["aclitem"].array_oid, builtins["aclitem"].oid, context=conn
)
cur.execute("select '{postgres=arwdDxt/postgres}'::aclitem[]")