def register(
cls,
src: type,
- dumper: DumperType,
context: AdaptContext = None,
format: Format = Format.TEXT,
- ) -> DumperType:
+ ) -> None:
if not isinstance(src, type):
raise TypeError(
f"dumpers should be registered on classes, got {src} instead"
)
- if not (isinstance(dumper, type)):
- raise TypeError(f"dumpers should be classes, got {dumper} instead")
-
where = context.dumpers if context is not None else Dumper.globals
- where[src, format] = dumper
- return dumper
+ where[src, format] = cls
@classmethod
- def register_binary(
- cls, src: type, dumper: DumperType, context: AdaptContext = None
- ) -> DumperType:
- return cls.register(src, dumper, context, format=Format.BINARY)
+ def register_binary(cls, src: type, context: AdaptContext = None) -> None:
+ cls.register(src, context, format=Format.BINARY)
@classmethod
def text(cls, src: type) -> Callable[[DumperType], DumperType]:
def text_(dumper: DumperType) -> DumperType:
- cls.register(src, dumper)
+ dumper.register(src)
return dumper
return text_
@classmethod
def binary(cls, src: type) -> Callable[[DumperType], DumperType]:
def binary_(dumper: DumperType) -> DumperType:
- cls.register_binary(src, dumper)
+ dumper.register_binary(src)
return dumper
return binary_
def test_dump_connection_ctx(conn):
- Dumper.register(str, make_dumper("t"), conn)
- Dumper.register_binary(str, make_dumper("b"), conn)
+ make_dumper("t").register(str, conn)
+ make_dumper("b").register_binary(str, conn)
cur = conn.cursor()
cur.execute("select %s, %b", ["hello", "world"])
def test_dump_cursor_ctx(conn):
- Dumper.register(str, make_dumper("t"), conn)
- Dumper.register_binary(str, make_dumper("b"), conn)
+ make_dumper("t").register(str, conn)
+ make_dumper("b").register_binary(str, conn)
cur = conn.cursor()
- Dumper.register(str, make_dumper("tc"), cur)
- Dumper.register_binary(str, make_dumper("bc"), cur)
+ make_dumper("tc").register(str, cur)
+ make_dumper("bc").register_binary(str, cur)
cur.execute("select %s, %b", ["hello", "world"])
assert cur.fetchone() == ("hellotc", "worldbc")