about summary refs log tree commit diff
path: root/.venv/lib/python3.12/site-packages/pgvector/psycopg/bit.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/pgvector/psycopg/bit.py')
-rw-r--r--.venv/lib/python3.12/site-packages/pgvector/psycopg/bit.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/pgvector/psycopg/bit.py b/.venv/lib/python3.12/site-packages/pgvector/psycopg/bit.py
new file mode 100644
index 00000000..f8eeb610
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/pgvector/psycopg/bit.py
@@ -0,0 +1,31 @@
+from psycopg.adapt import Dumper
+from psycopg.pq import Format
+from ..utils import Bit
+
+
+class BitDumper(Dumper):
+
+    format = Format.TEXT
+
+    def dump(self, obj):
+        return Bit._to_db(obj).encode('utf8')
+
+
+class BitBinaryDumper(BitDumper):
+
+    format = Format.BINARY
+
+    def dump(self, obj):
+        return Bit._to_db_binary(obj)
+
+
+def register_bit_info(context, info):
+    info.register(context)
+
+    # add oid to anonymous class for set_types
+    text_dumper = type('', (BitDumper,), {'oid': info.oid})
+    binary_dumper = type('', (BitBinaryDumper,), {'oid': info.oid})
+
+    adapters = context.adapters
+    adapters.register_dumper(Bit, text_dumper)
+    adapters.register_dumper(Bit, binary_dumper)