diff options
| author | Federico Caselli <cfederico87@gmail.com> | 2021-11-21 21:17:27 +0100 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2021-11-24 22:51:27 -0500 |
| commit | 31acba8ff7c123a20ae308b7f4ab6df3df264b48 (patch) | |
| tree | a4c39a2123e1b95edf17995ba85bb69ee619f6e4 /lib/sqlalchemy/dialects/mysql | |
| parent | d3a4e96196cd47858de072ae589c6554088edc24 (diff) | |
| download | sqlalchemy-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__.py | 6 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/mysql/asyncmy.py | 3 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/mysql/base.py | 18 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/mysql/cymysql.py | 2 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/mysql/enumerated.py | 8 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/mysql/json.py | 3 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/mysql/mysqlconnector.py | 40 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/mysql/pymysql.py | 11 |
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 |
