summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/build/changelog/unreleased_13/5821.rst8
-rw-r--r--lib/sqlalchemy/dialects/mysql/aiomysql.py7
-rw-r--r--lib/sqlalchemy/dialects/mysql/mysqldb.py11
-rw-r--r--lib/sqlalchemy/dialects/mysql/pymysql.py7
-rw-r--r--setup.cfg4
-rw-r--r--tox.ini2
6 files changed, 29 insertions, 10 deletions
diff --git a/doc/build/changelog/unreleased_13/5821.rst b/doc/build/changelog/unreleased_13/5821.rst
new file mode 100644
index 000000000..a2c5d4082
--- /dev/null
+++ b/doc/build/changelog/unreleased_13/5821.rst
@@ -0,0 +1,8 @@
+.. change::
+ :tags: bug, mysql
+ :tickets: 5821
+
+ Fixed deprecation warnings that arose as a result of the release of PyMySQL
+ 1.0, including deprecation warnings for the "db" and "passwd" parameters
+ now replaced with "database" and "password".
+
diff --git a/lib/sqlalchemy/dialects/mysql/aiomysql.py b/lib/sqlalchemy/dialects/mysql/aiomysql.py
index 6381027e9..f0665133f 100644
--- a/lib/sqlalchemy/dialects/mysql/aiomysql.py
+++ b/lib/sqlalchemy/dialects/mysql/aiomysql.py
@@ -264,10 +264,9 @@ class MySQLDialect_aiomysql(MySQLDialect_pymysql):
return pool.AsyncAdaptedQueuePool
def create_connect_args(self, url):
- args, kw = super(MySQLDialect_aiomysql, self).create_connect_args(url)
- if "passwd" in kw:
- kw["password"] = kw.pop("passwd")
- return args, kw
+ return super(MySQLDialect_aiomysql, self).create_connect_args(
+ url, _translate_args=dict(username="user", database="db")
+ )
def is_disconnect(self, e, connection, cursor):
if super(MySQLDialect_aiomysql, self).is_disconnect(
diff --git a/lib/sqlalchemy/dialects/mysql/mysqldb.py b/lib/sqlalchemy/dialects/mysql/mysqldb.py
index ab5a78aad..0318b5077 100644
--- a/lib/sqlalchemy/dialects/mysql/mysqldb.py
+++ b/lib/sqlalchemy/dialects/mysql/mysqldb.py
@@ -177,10 +177,13 @@ class MySQLDialect_mysqldb(MySQLDialect):
connection, additional_tests
)
- def create_connect_args(self, url):
- opts = url.translate_connect_args(
- database="db", username="user", password="passwd"
- )
+ def create_connect_args(self, url, _translate_args=None):
+ if _translate_args is None:
+ _translate_args = dict(
+ database="db", username="user", password="passwd"
+ )
+
+ opts = url.translate_connect_args(**_translate_args)
opts.update(url.query)
util.coerce_kw_type(opts, "compress", bool)
diff --git a/lib/sqlalchemy/dialects/mysql/pymysql.py b/lib/sqlalchemy/dialects/mysql/pymysql.py
index ad61c9e29..0c321f854 100644
--- a/lib/sqlalchemy/dialects/mysql/pymysql.py
+++ b/lib/sqlalchemy/dialects/mysql/pymysql.py
@@ -57,6 +57,13 @@ class MySQLDialect_pymysql(MySQLDialect_mysqldb):
def dbapi(cls):
return __import__("pymysql")
+ def create_connect_args(self, url, _translate_args=None):
+ if _translate_args is None:
+ _translate_args = dict(username="user")
+ return super(MySQLDialect_pymysql, self).create_connect_args(
+ url, _translate_args=_translate_args
+ )
+
def is_disconnect(self, e, connection, cursor):
if super(MySQLDialect_pymysql, self).is_disconnect(
e, connection, cursor
diff --git a/setup.cfg b/setup.cfg
index e151769da..f7915e43b 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -65,7 +65,9 @@ postgresql_asyncpg =
greenlet;python_version>="3"
postgresql_psycopg2binary = psycopg2-binary
postgresql_psycopg2cffi = psycopg2cffi
-pymysql = pymysql
+pymysql =
+ pymysql;python_version>="3"
+ pymysql<1;python_version<"3"
aiomysql = aiomysql
[egg_info]
diff --git a/tox.ini b/tox.ini
index 8c0e0b749..8f2fd9de0 100644
--- a/tox.ini
+++ b/tox.ini
@@ -25,7 +25,7 @@ deps=pytest>=4.6.11 # this can be 6.x once we are on python 3 only
postgresql: .[postgresql_pg8000]; python_version >= '3'
mysql: .[mysql]
mysql: .[pymysql]
- mysql: .[aiomysql]; python_version >= '3'
+ mysql: git+https://github.com/sqlalchemy/aiomysql@sqlalchemy_tox; python_version >= '3'
mysql: .[mariadb_connector]; python_version >= '3'
# we should probably try to get mysql_connector back in the mix