]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
merge branch
authorPablo Estevez <pablo22estevez@gmail.com>
Sat, 10 May 2025 18:47:00 +0000 (18:47 +0000)
committerPablo Estevez <pablo22estevez@gmail.com>
Sat, 10 May 2025 18:47:00 +0000 (18:47 +0000)
lib/sqlalchemy/dialects/mysql/aiomysql.py
lib/sqlalchemy/dialects/mysql/pymysql.py
lib/sqlalchemy/dialects/mysql/pyodbc.py
lib/sqlalchemy/engine/interfaces.py

index 81a1b9762a8ebcb6f71f0300a946216700eff17e..d26ab3b4e88189f8d359d6bca3b1d944207a2cd5 100644 (file)
@@ -33,6 +33,7 @@ from __future__ import annotations
 
 from types import ModuleType
 from typing import Any
+from typing import cast
 from typing import Optional
 from typing import TYPE_CHECKING
 
@@ -95,10 +96,10 @@ class AsyncAdapt_aiomysql_connection(AsyncAdapt_dbapi_connection):
 
     def terminate(self) -> None:
         # it's not awaitable.
-        self._connection.close()
+        cast(AiomysqlConnection, self._connection).close()
 
     def close(self) -> None:
-        await_(self._connection.ensure_closed())
+        await_(cast(AiomysqlConnection, self._connection).ensure_closed())
 
 
 class AsyncAdapt_aiomysql_dbapi:
index 19c11d58c7c92f16f118fab54c000bd02c6deaed..83c81be7df806302066ed0d99919f5602664060b 100644 (file)
@@ -52,6 +52,7 @@ from __future__ import annotations
 
 from types import ModuleType
 from typing import Any
+from typing import cast
 from typing import Literal
 from typing import Optional
 from typing import TYPE_CHECKING
@@ -116,9 +117,9 @@ class MySQLDialect_pymysql(MySQLDialect_mysqldb):
 
     def do_ping(self, dbapi_connection: pymysql.Connection) -> Literal[True]:  # type: ignore # noqa: E501
         if self._send_false_to_ping:
-            dbapi_connection.ping(False)
+            cast("pymysql.Connection[Any]", dbapi_connection).ping(False)
         else:
-            dbapi_connection.ping()
+            cast("pymysql.Connection[Any]", dbapi_connection).ping()
 
         return True
 
@@ -131,6 +132,7 @@ class MySQLDialect_pymysql(MySQLDialect_mysqldb):
             url, _translate_args=_translate_args
         )
 
+
     def is_disconnect(
         self, e: Exception, connection: Any, cursor: Any
     ) -> bool:
index fd2444baf5ddbd6f5f1a60c46a21a0969f4955bc..9d95f40c669bdeff7ed71cc0bd3ef99cf4141f59 100644 (file)
@@ -48,6 +48,7 @@ from __future__ import annotations
 import datetime
 import re
 from typing import Any
+from typing import cast
 from typing import Callable
 from typing import Optional
 from typing import TYPE_CHECKING
@@ -148,9 +149,13 @@ class MySQLDialect_pyodbc(PyODBCConnector, MySQLDialect):
             #   https://github.com/mkleehammer/pyodbc/wiki/Unicode
             pyodbc_SQL_CHAR = 1  # pyodbc.SQL_CHAR
             pyodbc_SQL_WCHAR = -8  # pyodbc.SQL_WCHAR
-            conn.setdecoding(pyodbc_SQL_CHAR, encoding="utf-8")
-            conn.setdecoding(pyodbc_SQL_WCHAR, encoding="utf-8")
-            conn.setencoding(encoding="utf-8")
+            cast("pyodbc.Connection", conn).setdecoding(
+                pyodbc_SQL_CHAR, encoding="utf-8"
+            )
+            cast("pyodbc.Connection", conn).setdecoding(
+                pyodbc_SQL_WCHAR, encoding="utf-8"
+            )
+            cast("pyodbc.Connection", conn).setencoding(encoding="utf-8")
 
         return on_connect
 
index 556e49d7f53889b8ed93be9243e28cb69955a789..05eb2a751865fcf574a4bdac81d97802eabab466 100644 (file)
@@ -51,6 +51,7 @@ if TYPE_CHECKING:
     from .base import Engine
     from .cursor import CursorResult
     from .url import URL
+    from ..connectors.asyncio import AsyncIODBAPIConnection
     from ..event import _ListenerFnType
     from ..event import dispatcher
     from ..exc import StatementError
@@ -3357,7 +3358,7 @@ class AdaptedConnection:
 
     __slots__ = ("_connection",)
 
-    _connection: Any
+    _connection: AsyncIODBAPIConnection
 
     @property
     def driver_connection(self) -> Any: