From: Daniele Varrazzo Date: Thu, 29 Oct 2020 21:00:02 +0000 (+0100) Subject: Use static attributes to declare dumpers oid where possible X-Git-Tag: 3.0.dev0~410 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1d112bf47562e2b1a328550bd08426780da08098;p=thirdparty%2Fpsycopg.git Use static attributes to declare dumpers oid where possible --- diff --git a/psycopg3/psycopg3/types/date.py b/psycopg3/psycopg3/types/date.py index 05b73039d..eadc03113 100644 --- a/psycopg3/psycopg3/types/date.py +++ b/psycopg3/psycopg3/types/date.py @@ -22,49 +22,38 @@ _decode_ascii = codecs.lookup("ascii").decode @Dumper.text(date) class DateDumper(Dumper): - DATE_OID = builtins["date"].oid + oid = builtins["date"].oid def dump(self, obj: date, __encode: EncodeFunc = _encode_ascii) -> bytes: # NOTE: whatever the PostgreSQL DateStyle input format (DMY, MDY, YMD) # the YYYY-MM-DD is always understood correctly. return __encode(str(obj))[0] - @property - def oid(self) -> int: - return self.DATE_OID - @Dumper.text(time) class TimeDumper(Dumper): - TIMETZ_OID = builtins["timetz"].oid + oid = builtins["timetz"].oid def dump(self, obj: time, __encode: EncodeFunc = _encode_ascii) -> bytes: return __encode(str(obj))[0] - @property - def oid(self) -> int: - return self.TIMETZ_OID - @Dumper.text(datetime) class DateTimeDumper(Dumper): - TIMESTAMPTZ_OID = builtins["timestamptz"].oid + oid = builtins["timestamptz"].oid def dump(self, obj: date, __encode: EncodeFunc = _encode_ascii) -> bytes: # NOTE: whatever the PostgreSQL DateStyle input format (DMY, MDY, YMD) # the YYYY-MM-DD is always understood correctly. return __encode(str(obj))[0] - @property - def oid(self) -> int: - return self.TIMESTAMPTZ_OID - @Dumper.text(timedelta) class TimeDeltaDumper(Dumper): - INTERVAL_OID = builtins["interval"].oid + + oid = builtins["interval"].oid def __init__(self, src: type, context: AdaptContext = None): super().__init__(src, context) @@ -89,10 +78,6 @@ class TimeDeltaDumper(Dumper): obj.microseconds, ) - @property - def oid(self) -> int: - return self.INTERVAL_OID - @Loader.text(builtins["date"].oid) class DateLoader(Loader): diff --git a/psycopg3/psycopg3/types/text.py b/psycopg3/psycopg3/types/text.py index 90123e808..196085798 100644 --- a/psycopg3/psycopg3/types/text.py +++ b/psycopg3/psycopg3/types/text.py @@ -16,10 +16,6 @@ if TYPE_CHECKING: from ..pq.proto import Escaping as EscapingProto -TEXT_OID = builtins["text"].oid -BYTEA_OID = builtins["bytea"].oid - - @Dumper.text(str) @Dumper.binary(str) class StringDumper(Dumper): @@ -87,6 +83,9 @@ class UnknownLoader(Loader): @Dumper.text(bytes) class BytesDumper(Dumper): + + oid = builtins["bytea"].oid + def __init__(self, src: type, context: AdaptContext = None): super().__init__(src, context) self.esc = Escaping( @@ -96,20 +95,15 @@ class BytesDumper(Dumper): def dump(self, obj: bytes) -> bytes: return self.esc.escape_bytea(obj) - @property - def oid(self) -> int: - return BYTEA_OID - @Dumper.binary(bytes) class BytesBinaryDumper(Dumper): + + oid = builtins["bytea"].oid + def dump(self, b: bytes) -> bytes: return b - @property - def oid(self) -> int: - return BYTEA_OID - @Loader.text(builtins["bytea"].oid) class ByteaLoader(Loader):