mysteriendrama/lib/python3.11/site-packages/psycopg/types/bool.py
2023-07-26 21:33:29 +02:00

49 lines
1.1 KiB
Python

"""
Adapters for booleans.
"""
# Copyright (C) 2020 The Psycopg Team
from .. import postgres
from ..pq import Format
from ..abc import AdaptContext
from ..adapt import Buffer, Dumper, Loader
class BoolDumper(Dumper):
oid = postgres.types["bool"].oid
def dump(self, obj: bool) -> bytes:
return b"t" if obj else b"f"
def quote(self, obj: bool) -> bytes:
return b"true" if obj else b"false"
class BoolBinaryDumper(Dumper):
format = Format.BINARY
oid = postgres.types["bool"].oid
def dump(self, obj: bool) -> bytes:
return b"\x01" if obj else b"\x00"
class BoolLoader(Loader):
def load(self, data: Buffer) -> bool:
return data == b"t"
class BoolBinaryLoader(Loader):
format = Format.BINARY
def load(self, data: Buffer) -> bool:
return data != b"\x00"
def register_default_adapters(context: AdaptContext) -> None:
adapters = context.adapters
adapters.register_dumper(bool, BoolDumper)
adapters.register_dumper(bool, BoolBinaryDumper)
adapters.register_loader("bool", BoolLoader)
adapters.register_loader("bool", BoolBinaryLoader)