summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/mysql
diff options
context:
space:
mode:
authorFederico Caselli <cfederico87@gmail.com>2021-11-21 21:17:27 +0100
committerMike Bayer <mike_mp@zzzcomputing.com>2021-11-24 22:51:27 -0500
commit31acba8ff7c123a20ae308b7f4ab6df3df264b48 (patch)
treea4c39a2123e1b95edf17995ba85bb69ee619f6e4 /lib/sqlalchemy/dialects/mysql
parentd3a4e96196cd47858de072ae589c6554088edc24 (diff)
downloadsqlalchemy-31acba8ff7c123a20ae308b7f4ab6df3df264b48.tar.gz
Clean up most py3k compat
Change-Id: I8172fdcc3103ff92aa049827728484c8779af6b7
Diffstat (limited to 'lib/sqlalchemy/dialects/mysql')
-rw-r--r--lib/sqlalchemy/dialects/mysql/__init__.py6
-rw-r--r--lib/sqlalchemy/dialects/mysql/asyncmy.py3
-rw-r--r--lib/sqlalchemy/dialects/mysql/base.py18
-rw-r--r--lib/sqlalchemy/dialects/mysql/cymysql.py2
-rw-r--r--lib/sqlalchemy/dialects/mysql/enumerated.py8
-rw-r--r--lib/sqlalchemy/dialects/mysql/json.py3
-rw-r--r--lib/sqlalchemy/dialects/mysql/mysqlconnector.py40
-rw-r--r--lib/sqlalchemy/dialects/mysql/pymysql.py11
8 files changed, 28 insertions, 63 deletions
diff --git a/lib/sqlalchemy/dialects/mysql/__init__.py b/lib/sqlalchemy/dialects/mysql/__init__.py
index 9fe6f6d84..389720213 100644
--- a/lib/sqlalchemy/dialects/mysql/__init__.py
+++ b/lib/sqlalchemy/dialects/mysql/__init__.py
@@ -5,6 +5,8 @@
# This module is part of SQLAlchemy and is released under
# the MIT License: https://www.opensource.org/licenses/mit-license.php
+from . import aiomysql # noqa
+from . import asyncmy # noqa
from . import base # noqa
from . import cymysql # noqa
from . import mariadbconnector # noqa
@@ -51,10 +53,6 @@ from .dml import insert
from .expression import match
from ...util import compat
-if compat.py3k:
- from . import aiomysql # noqa
- from . import asyncmy # noqa
-
# default dialect
base.dialect = dialect = mysqldb.dialect
diff --git a/lib/sqlalchemy/dialects/mysql/asyncmy.py b/lib/sqlalchemy/dialects/mysql/asyncmy.py
index 0fca338f5..b59571460 100644
--- a/lib/sqlalchemy/dialects/mysql/asyncmy.py
+++ b/lib/sqlalchemy/dialects/mysql/asyncmy.py
@@ -28,11 +28,12 @@ This dialect should normally be used only with the
""" # noqa
+from contextlib import asynccontextmanager
+
from .pymysql import MySQLDialect_pymysql
from ... import pool
from ... import util
from ...engine import AdaptedConnection
-from ...util.concurrency import asynccontextmanager
from ...util.concurrency import asyncio
from ...util.concurrency import await_fallback
from ...util.concurrency import await_only
diff --git a/lib/sqlalchemy/dialects/mysql/base.py b/lib/sqlalchemy/dialects/mysql/base.py
index 54fe1f57f..f77d839f3 100644
--- a/lib/sqlalchemy/dialects/mysql/base.py
+++ b/lib/sqlalchemy/dialects/mysql/base.py
@@ -1469,7 +1469,7 @@ class MySQLCompiler(compiler.SQLCompiler):
keywords at the start of a SELECT.
"""
- if isinstance(select._distinct, util.string_types):
+ if isinstance(select._distinct, str):
util.warn_deprecated(
"Sending string values for 'distinct' is deprecated in the "
"MySQL dialect and will be removed in a future release. "
@@ -2425,7 +2425,7 @@ class MySQLDialect(default.DefaultDialect):
raise NotImplementedError()
val = row[0]
cursor.close()
- if util.py3k and isinstance(val, bytes):
+ if isinstance(val, bytes):
val = val.decode()
return val.upper().replace("-", " ")
@@ -2456,7 +2456,7 @@ class MySQLDialect(default.DefaultDialect):
cursor.execute("SELECT VERSION()")
val = cursor.fetchone()[0]
cursor.close()
- if util.py3k and isinstance(val, bytes):
+ if isinstance(val, bytes):
val = val.decode()
return self._parse_server_version(val)
@@ -2607,8 +2607,8 @@ class MySQLDialect(default.DefaultDialect):
sql.bindparam("table_name", type_=Unicode),
),
{
- "table_schema": util.text_type(schema),
- "table_name": util.text_type(table_name),
+ "table_schema": str(schema),
+ "table_name": str(table_name),
},
)
return bool(rs.scalar())
@@ -2627,8 +2627,8 @@ class MySQLDialect(default.DefaultDialect):
"TABLE_SCHEMA=:schema_name"
),
dict(
- name=util.text_type(sequence_name),
- schema_name=util.text_type(schema),
+ name=str(sequence_name),
+ schema_name=str(schema),
),
)
return cursor.first() is not None
@@ -3228,7 +3228,7 @@ class _DecodingRow:
if isinstance(item, _array):
item = item.tostring()
- if self.charset and isinstance(item, util.binary_type):
+ if self.charset and isinstance(item, bytes):
return item.decode(self.charset)
else:
return item
@@ -3237,7 +3237,7 @@ class _DecodingRow:
item = getattr(self.rowproxy, attr)
if isinstance(item, _array):
item = item.tostring()
- if self.charset and isinstance(item, util.binary_type):
+ if self.charset and isinstance(item, bytes):
return item.decode(self.charset)
else:
return item
diff --git a/lib/sqlalchemy/dialects/mysql/cymysql.py b/lib/sqlalchemy/dialects/mysql/cymysql.py
index f729e4a18..4fe441031 100644
--- a/lib/sqlalchemy/dialects/mysql/cymysql.py
+++ b/lib/sqlalchemy/dialects/mysql/cymysql.py
@@ -33,7 +33,7 @@ class _cymysqlBIT(BIT):
def process(value):
if value is not None:
v = 0
- for i in util.iterbytes(value):
+ for i in iter(value):
v = v << 8 | i
return v
return value
diff --git a/lib/sqlalchemy/dialects/mysql/enumerated.py b/lib/sqlalchemy/dialects/mysql/enumerated.py
index 9f9a838c5..b84608f58 100644
--- a/lib/sqlalchemy/dialects/mysql/enumerated.py
+++ b/lib/sqlalchemy/dialects/mysql/enumerated.py
@@ -201,7 +201,7 @@ class SET(_StringType):
super_convert = super(SET, self).result_processor(dialect, coltype)
def process(value):
- if isinstance(value, util.string_types):
+ if isinstance(value, str):
# MySQLdb returns a string, let's parse
if super_convert:
value = super_convert(value)
@@ -222,7 +222,7 @@ class SET(_StringType):
def process(value):
if value is None:
return None
- elif isinstance(value, util.int_types + util.string_types):
+ elif isinstance(value, (int, str)):
if super_convert:
return super_convert(value)
else:
@@ -237,9 +237,7 @@ class SET(_StringType):
def process(value):
# accept strings and int (actually bitflag) values directly
- if value is not None and not isinstance(
- value, util.int_types + util.string_types
- ):
+ if value is not None and not isinstance(value, (int, str)):
value = ",".join(value)
if super_convert:
diff --git a/lib/sqlalchemy/dialects/mysql/json.py b/lib/sqlalchemy/dialects/mysql/json.py
index 384d3b9b6..c46878fc3 100644
--- a/lib/sqlalchemy/dialects/mysql/json.py
+++ b/lib/sqlalchemy/dialects/mysql/json.py
@@ -4,9 +4,6 @@
#
# This module is part of SQLAlchemy and is released under
# the MIT License: https://www.opensource.org/licenses/mit-license.php
-
-from __future__ import absolute_import
-
from ... import types as sqltypes
diff --git a/lib/sqlalchemy/dialects/mysql/mysqlconnector.py b/lib/sqlalchemy/dialects/mysql/mysqlconnector.py
index fef4f14ca..7b62e9ed1 100644
--- a/lib/sqlalchemy/dialects/mysql/mysqlconnector.py
+++ b/lib/sqlalchemy/dialects/mysql/mysqlconnector.py
@@ -32,36 +32,17 @@ from ... import util
class MySQLCompiler_mysqlconnector(MySQLCompiler):
def visit_mod_binary(self, binary, operator, **kw):
- if self.dialect._mysqlconnector_double_percents:
- return (
- self.process(binary.left, **kw)
- + " %% "
- + self.process(binary.right, **kw)
- )
- else:
- return (
- self.process(binary.left, **kw)
- + " % "
- + self.process(binary.right, **kw)
- )
-
- def post_process_text(self, text):
- if self.dialect._mysqlconnector_double_percents:
- return text.replace("%", "%%")
- else:
- return text
-
- def escape_literal_column(self, text):
- if self.dialect._mysqlconnector_double_percents:
- return text.replace("%", "%%")
- else:
- return text
+ return (
+ self.process(binary.left, **kw)
+ + " % "
+ + self.process(binary.right, **kw)
+ )
class MySQLIdentifierPreparer_mysqlconnector(MySQLIdentifierPreparer):
@property
def _double_percents(self):
- return self.dialect._mysqlconnector_double_percents
+ return False
@_double_percents.setter
def _double_percents(self, value):
@@ -69,10 +50,7 @@ class MySQLIdentifierPreparer_mysqlconnector(MySQLIdentifierPreparer):
def _escape_identifier(self, value):
value = value.replace(self.escape_quote, self.escape_to_quote)
- if self.dialect._mysqlconnector_double_percents:
- return value.replace("%", "%%")
- else:
- return value
+ return value
class _myconnpyBIT(BIT):
@@ -163,10 +141,6 @@ class MySQLDialect_mysqlconnector(MySQLDialect):
if m:
return tuple(int(x) for x in m.group(1, 2, 3) if x is not None)
- @util.memoized_property
- def _mysqlconnector_double_percents(self):
- return not util.py3k and self._mysqlconnector_version_info < (2, 0)
-
def _detect_charset(self, connection):
return connection.connection.charset
diff --git a/lib/sqlalchemy/dialects/mysql/pymysql.py b/lib/sqlalchemy/dialects/mysql/pymysql.py
index 3c30fb9ea..dd7bd8bda 100644
--- a/lib/sqlalchemy/dialects/mysql/pymysql.py
+++ b/lib/sqlalchemy/dialects/mysql/pymysql.py
@@ -39,7 +39,6 @@ to the pymysql driver as well.
from .mysqldb import MySQLDialect_mysqldb
from ...util import langhelpers
-from ...util import py3k
class MySQLDialect_pymysql(MySQLDialect_mysqldb):
@@ -81,12 +80,10 @@ class MySQLDialect_pymysql(MySQLDialect_mysqldb):
else:
return False
- if py3k:
-
- def _extract_error_code(self, exception):
- if isinstance(exception.args[0], Exception):
- exception = exception.args[0]
- return exception.args[0]
+ def _extract_error_code(self, exception):
+ if isinstance(exception.args[0], Exception):
+ exception = exception.args[0]
+ return exception.args[0]
dialect = MySQLDialect_pymysql