summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/mysql/mysqlconnector.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2019-01-06 01:14:26 -0500
committermike bayer <mike_mp@zzzcomputing.com>2019-01-06 17:34:50 +0000
commit1e1a38e7801f410f244e4bbb44ec795ae152e04e (patch)
tree28e725c5c8188bd0cfd133d1e268dbca9b524978 /lib/sqlalchemy/dialects/mysql/mysqlconnector.py
parent404e69426b05a82d905cbb3ad33adafccddb00dd (diff)
downloadsqlalchemy-1e1a38e7801f410f244e4bbb44ec795ae152e04e.tar.gz
Run black -l 79 against all source files
This is a straight reformat run using black as is, with no edits applied at all. The black run will format code consistently, however in some cases that are prevalent in SQLAlchemy code it produces too-long lines. The too-long lines will be resolved in the following commit that will resolve all remaining flake8 issues including shadowed builtins, long lines, import order, unused imports, duplicate imports, and docstring issues. Change-Id: I7eda77fed3d8e73df84b3651fd6cfcfe858d4dc9
Diffstat (limited to 'lib/sqlalchemy/dialects/mysql/mysqlconnector.py')
-rw-r--r--lib/sqlalchemy/dialects/mysql/mysqlconnector.py125
1 files changed, 68 insertions, 57 deletions
diff --git a/lib/sqlalchemy/dialects/mysql/mysqlconnector.py b/lib/sqlalchemy/dialects/mysql/mysqlconnector.py
index e16b68bad..9c1502a14 100644
--- a/lib/sqlalchemy/dialects/mysql/mysqlconnector.py
+++ b/lib/sqlalchemy/dialects/mysql/mysqlconnector.py
@@ -47,9 +47,13 @@ are contributed to SQLAlchemy.
"""
-from .base import (MySQLDialect, MySQLExecutionContext,
- MySQLCompiler, MySQLIdentifierPreparer,
- BIT)
+from .base import (
+ MySQLDialect,
+ MySQLExecutionContext,
+ MySQLCompiler,
+ MySQLIdentifierPreparer,
+ BIT,
+)
from ... import util
import re
@@ -57,7 +61,6 @@ from ... import processors
class MySQLExecutionContext_mysqlconnector(MySQLExecutionContext):
-
def get_lastrowid(self):
return self.cursor.lastrowid
@@ -65,21 +68,27 @@ class MySQLExecutionContext_mysqlconnector(MySQLExecutionContext):
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)
+ return (
+ self.process(binary.left, **kw)
+ + " %% "
+ + self.process(binary.right, **kw)
+ )
else:
- return self.process(binary.left, **kw) + " % " + \
- self.process(binary.right, **kw)
+ 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('%', '%%')
+ return text.replace("%", "%%")
else:
return text
def escape_literal_column(self, text):
if self.dialect._mysqlconnector_double_percents:
- return text.replace('%', '%%')
+ return text.replace("%", "%%")
else:
return text
@@ -109,7 +118,7 @@ class _myconnpyBIT(BIT):
class MySQLDialect_mysqlconnector(MySQLDialect):
- driver = 'mysqlconnector'
+ driver = "mysqlconnector"
supports_unicode_binds = True
@@ -118,28 +127,22 @@ class MySQLDialect_mysqlconnector(MySQLDialect):
supports_native_decimal = True
- default_paramstyle = 'format'
+ default_paramstyle = "format"
execution_ctx_cls = MySQLExecutionContext_mysqlconnector
statement_compiler = MySQLCompiler_mysqlconnector
preparer = MySQLIdentifierPreparer_mysqlconnector
- colspecs = util.update_copy(
- MySQLDialect.colspecs,
- {
- BIT: _myconnpyBIT,
- }
- )
+ colspecs = util.update_copy(MySQLDialect.colspecs, {BIT: _myconnpyBIT})
def __init__(self, *arg, **kw):
super(MySQLDialect_mysqlconnector, self).__init__(*arg, **kw)
# hack description encoding since mysqlconnector randomly
# returns bytes or not
- self._description_decoder = \
- processors.to_conditional_unicode_processor_factory(
- self.description_encoding
- )
+ self._description_decoder = processors.to_conditional_unicode_processor_factory(
+ self.description_encoding
+ )
def _check_unicode_description(self, connection):
# hack description encoding since mysqlconnector randomly
@@ -158,6 +161,7 @@ class MySQLDialect_mysqlconnector(MySQLDialect):
@classmethod
def dbapi(cls):
from mysql import connector
+
return connector
def do_ping(self, dbapi_connection):
@@ -172,54 +176,52 @@ class MySQLDialect_mysqlconnector(MySQLDialect):
return True
def create_connect_args(self, url):
- opts = url.translate_connect_args(username='user')
+ opts = url.translate_connect_args(username="user")
opts.update(url.query)
- util.coerce_kw_type(opts, 'allow_local_infile', bool)
- util.coerce_kw_type(opts, 'autocommit', bool)
- util.coerce_kw_type(opts, 'buffered', bool)
- util.coerce_kw_type(opts, 'compress', bool)
- util.coerce_kw_type(opts, 'connection_timeout', int)
- util.coerce_kw_type(opts, 'connect_timeout', int)
- util.coerce_kw_type(opts, 'consume_results', bool)
- util.coerce_kw_type(opts, 'force_ipv6', bool)
- util.coerce_kw_type(opts, 'get_warnings', bool)
- util.coerce_kw_type(opts, 'pool_reset_session', bool)
- util.coerce_kw_type(opts, 'pool_size', int)
- util.coerce_kw_type(opts, 'raise_on_warnings', bool)
- util.coerce_kw_type(opts, 'raw', bool)
- util.coerce_kw_type(opts, 'ssl_verify_cert', bool)
- util.coerce_kw_type(opts, 'use_pure', bool)
- util.coerce_kw_type(opts, 'use_unicode', bool)
+ util.coerce_kw_type(opts, "allow_local_infile", bool)
+ util.coerce_kw_type(opts, "autocommit", bool)
+ util.coerce_kw_type(opts, "buffered", bool)
+ util.coerce_kw_type(opts, "compress", bool)
+ util.coerce_kw_type(opts, "connection_timeout", int)
+ util.coerce_kw_type(opts, "connect_timeout", int)
+ util.coerce_kw_type(opts, "consume_results", bool)
+ util.coerce_kw_type(opts, "force_ipv6", bool)
+ util.coerce_kw_type(opts, "get_warnings", bool)
+ util.coerce_kw_type(opts, "pool_reset_session", bool)
+ util.coerce_kw_type(opts, "pool_size", int)
+ util.coerce_kw_type(opts, "raise_on_warnings", bool)
+ util.coerce_kw_type(opts, "raw", bool)
+ util.coerce_kw_type(opts, "ssl_verify_cert", bool)
+ util.coerce_kw_type(opts, "use_pure", bool)
+ util.coerce_kw_type(opts, "use_unicode", bool)
# unfortunately, MySQL/connector python refuses to release a
# cursor without reading fully, so non-buffered isn't an option
- opts.setdefault('buffered', True)
+ opts.setdefault("buffered", True)
# FOUND_ROWS must be set in ClientFlag to enable
# supports_sane_rowcount.
if self.dbapi is not None:
try:
from mysql.connector.constants import ClientFlag
+
client_flags = opts.get(
- 'client_flags', ClientFlag.get_default())
+ "client_flags", ClientFlag.get_default()
+ )
client_flags |= ClientFlag.FOUND_ROWS
- opts['client_flags'] = client_flags
+ opts["client_flags"] = client_flags
except Exception:
pass
return [[], opts]
@util.memoized_property
def _mysqlconnector_version_info(self):
- if self.dbapi and hasattr(self.dbapi, '__version__'):
- m = re.match(r'(\d+)\.(\d+)(?:\.(\d+))?',
- self.dbapi.__version__)
+ if self.dbapi and hasattr(self.dbapi, "__version__"):
+ m = re.match(r"(\d+)\.(\d+)(?:\.(\d+))?", self.dbapi.__version__)
if m:
- return tuple(
- int(x)
- for x in m.group(1, 2, 3)
- if x is not None)
+ 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):
@@ -235,9 +237,11 @@ class MySQLDialect_mysqlconnector(MySQLDialect):
errnos = (2006, 2013, 2014, 2045, 2055, 2048)
exceptions = (self.dbapi.OperationalError, self.dbapi.InterfaceError)
if isinstance(e, exceptions):
- return e.errno in errnos or \
- "MySQL Connection not available." in str(e) or \
- "Connection to MySQL is not available" in str(e)
+ return (
+ e.errno in errnos
+ or "MySQL Connection not available." in str(e)
+ or "Connection to MySQL is not available" in str(e)
+ )
else:
return False
@@ -247,17 +251,24 @@ class MySQLDialect_mysqlconnector(MySQLDialect):
def _compat_fetchone(self, rp, charset=None):
return rp.fetchone()
- _isolation_lookup = set(['SERIALIZABLE', 'READ UNCOMMITTED',
- 'READ COMMITTED', 'REPEATABLE READ',
- 'AUTOCOMMIT'])
+ _isolation_lookup = set(
+ [
+ "SERIALIZABLE",
+ "READ UNCOMMITTED",
+ "READ COMMITTED",
+ "REPEATABLE READ",
+ "AUTOCOMMIT",
+ ]
+ )
def _set_isolation_level(self, connection, level):
- if level == 'AUTOCOMMIT':
+ if level == "AUTOCOMMIT":
connection.autocommit = True
else:
connection.autocommit = False
super(MySQLDialect_mysqlconnector, self)._set_isolation_level(
- connection, level)
+ connection, level
+ )
dialect = MySQLDialect_mysqlconnector