]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
Dropped dumper param of Dumper.register
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Wed, 4 Nov 2020 17:22:49 +0000 (18:22 +0100)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Sat, 7 Nov 2020 01:45:48 +0000 (01:45 +0000)
Just use `cls`, as the class method is available to all the subclasses.

psycopg3/psycopg3/adapt.py
tests/test_adapt.py

index 5343e32366087d8c70efb6512a8a672c2cbb23af..b911e74d785c99e38e05aa930a1807453344a275 100644 (file)
@@ -47,32 +47,25 @@ class Dumper:
     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_
@@ -80,7 +73,7 @@ class Dumper:
     @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_
index 5787bf1166e6284aad9adf1adc56281469c67e4e..e50b2200393ed4f53268ad54a8190bc88651ad4d 100644 (file)
@@ -37,8 +37,8 @@ def test_quote(data, result):
 
 
 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"])
@@ -46,12 +46,12 @@ def test_dump_connection_ctx(conn):
 
 
 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")