from psycopg2.extensions import adapt, new_type, register_adapter, register_type from ..utils import HalfVector class HalfvecAdapter: def __init__(self, value): self._value = value def getquoted(self): return adapt(HalfVector._to_db(self._value)).getquoted() def cast_halfvec(value, cur): return HalfVector._from_db(value) def register_halfvec_info(oid, scope): halfvec = new_type((oid,), 'HALFVEC', cast_halfvec) register_type(halfvec, scope) register_adapter(HalfVector, HalfvecAdapter)