]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
refactor: move PostgresRawQuery to _queries module
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Tue, 29 Apr 2025 22:00:09 +0000 (00:00 +0200)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Mon, 8 Sep 2025 09:46:55 +0000 (11:46 +0200)
psycopg/psycopg/_queries.py
psycopg/psycopg/raw_cursor.py

index 14950738b9de6c6804ecfc105ccea59fb81d7602..750d0585b823a513d729bfacfc7fafada491963f 100644 (file)
@@ -421,3 +421,31 @@ _ph_to_fmt = {
     b"t": PyFormat.TEXT,
     b"b": PyFormat.BINARY,
 }
+
+
+class PostgresRawQuery(PostgresQuery):
+    def convert(self, query: Query, vars: Params | None) -> None:
+        if isinstance(query, str):
+            bquery = query.encode(self._encoding)
+        elif isinstance(query, Composable):
+            bquery = query.as_bytes(self._tx)
+        else:
+            bquery = query
+
+        self.query = bquery
+        self._want_formats = self._order = None
+        self.dump(vars)
+
+    def dump(self, vars: Params | None) -> None:
+        if vars is not None:
+            if not PostgresQuery.is_params_sequence(vars):
+                raise TypeError("raw queries require a sequence of parameters")
+            self._want_formats = [PyFormat.AUTO] * len(vars)
+
+            self.params = self._tx.dump_sequence(vars, self._want_formats)
+            self.types = self._tx.types or ()
+            self.formats = self._tx.formats
+        else:
+            self.params = None
+            self.types = ()
+            self.formats = None
index eb9cb4d751c21900b8e0fbab4d70ed9a8617bca3..2879a9e2e907ff6c4158738049e229b1bf1dfeb9 100644 (file)
@@ -8,12 +8,10 @@ from __future__ import annotations
 
 from typing import TYPE_CHECKING
 
-from .abc import ConnectionType, Params, Query
-from .sql import Composable
+from .abc import ConnectionType
 from .rows import Row
-from ._enums import PyFormat
 from .cursor import Cursor
-from ._queries import PostgresQuery
+from ._queries import PostgresRawQuery
 from ._cursor_base import BaseCursor
 from .cursor_async import AsyncCursor
 from ._server_cursor import ServerCursor
@@ -26,34 +24,6 @@ if TYPE_CHECKING:
     from .connection_async import AsyncConnection  # noqa: F401
 
 
-class PostgresRawQuery(PostgresQuery):
-    def convert(self, query: Query, vars: Params | None) -> None:
-        if isinstance(query, str):
-            bquery = query.encode(self._encoding)
-        elif isinstance(query, Composable):
-            bquery = query.as_bytes(self._tx)
-        else:
-            bquery = query
-
-        self.query = bquery
-        self._want_formats = self._order = None
-        self.dump(vars)
-
-    def dump(self, vars: Params | None) -> None:
-        if vars is not None:
-            if not PostgresQuery.is_params_sequence(vars):
-                raise TypeError("raw queries require a sequence of parameters")
-            self._want_formats = [PyFormat.AUTO] * len(vars)
-
-            self.params = self._tx.dump_sequence(vars, self._want_formats)
-            self.types = self._tx.types or ()
-            self.formats = self._tx.formats
-        else:
-            self.params = None
-            self.types = ()
-            self.formats = None
-
-
 class RawCursorMixin(BaseCursor[ConnectionType, Row]):
     _query_cls = PostgresRawQuery