summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2013-04-27 19:53:57 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2013-04-27 19:53:57 -0400
commit4b614b9b35cd2baddb7ca67c04bee5d70ec6a172 (patch)
tree7483cd269f5823f903f96709eb864fff9b6d9383 /lib/sqlalchemy/engine
parent9716a5c45e6185c5871555722d8495880f0e8c7a (diff)
downloadsqlalchemy-4b614b9b35cd2baddb7ca67c04bee5d70ec6a172.tar.gz
- the raw 2to3 run
- went through examples/ and cleaned out excess list() calls
Diffstat (limited to 'lib/sqlalchemy/engine')
-rw-r--r--lib/sqlalchemy/engine/base.py22
-rw-r--r--lib/sqlalchemy/engine/ddl.py8
-rw-r--r--lib/sqlalchemy/engine/default.py60
-rw-r--r--lib/sqlalchemy/engine/reflection.py18
-rw-r--r--lib/sqlalchemy/engine/result.py38
-rw-r--r--lib/sqlalchemy/engine/strategies.py25
-rw-r--r--lib/sqlalchemy/engine/url.py18
7 files changed, 96 insertions, 93 deletions
diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py
index b4c9b1e1c..9eb3d6128 100644
--- a/lib/sqlalchemy/engine/base.py
+++ b/lib/sqlalchemy/engine/base.py
@@ -9,7 +9,7 @@
"""
-from __future__ import with_statement
+
import sys
from .. import exc, schema, util, log, interfaces
from ..sql import expression, util as sql_util
@@ -460,7 +460,7 @@ class Connection(Connectable):
try:
self.engine.dialect.do_begin(self.connection)
- except Exception, e:
+ except Exception as e:
self._handle_dbapi_exception(e, None, None, None, None)
def _rollback_impl(self):
@@ -473,7 +473,7 @@ class Connection(Connectable):
try:
self.engine.dialect.do_rollback(self.connection)
self.__transaction = None
- except Exception, e:
+ except Exception as e:
self._handle_dbapi_exception(e, None, None, None, None)
else:
self.__transaction = None
@@ -487,7 +487,7 @@ class Connection(Connectable):
try:
self.engine.dialect.do_commit(self.connection)
self.__transaction = None
- except Exception, e:
+ except Exception as e:
self._handle_dbapi_exception(e, None, None, None, None)
def _savepoint_impl(self, name=None):
@@ -688,7 +688,7 @@ class Connection(Connectable):
dialect = self.dialect
ctx = dialect.execution_ctx_cls._init_default(
dialect, self, conn)
- except Exception, e:
+ except Exception as e:
self._handle_dbapi_exception(e, None, None, None, None)
ret = ctx._exec_default(default, None)
@@ -734,7 +734,7 @@ class Connection(Connectable):
distilled_params = _distill_params(multiparams, params)
if distilled_params:
- keys = distilled_params[0].keys()
+ keys = list(distilled_params[0].keys())
else:
keys = []
@@ -822,7 +822,7 @@ class Connection(Connectable):
conn = self._revalidate_connection()
context = constructor(dialect, self, conn, *args)
- except Exception, e:
+ except Exception as e:
self._handle_dbapi_exception(e,
str(statement), parameters,
None, None)
@@ -865,7 +865,7 @@ class Connection(Connectable):
statement,
parameters,
context)
- except Exception, e:
+ except Exception as e:
self._handle_dbapi_exception(
e,
statement,
@@ -939,7 +939,7 @@ class Connection(Connectable):
cursor,
statement,
parameters)
- except Exception, e:
+ except Exception as e:
self._handle_dbapi_exception(
e,
statement,
@@ -954,7 +954,7 @@ class Connection(Connectable):
"""
try:
cursor.close()
- except Exception, e:
+ except Exception as e:
try:
ex_text = str(e)
except TypeError:
@@ -1045,7 +1045,7 @@ class Connection(Connectable):
Compiled: _execute_compiled,
schema.SchemaItem: _execute_default,
schema.DDLElement: _execute_ddl,
- basestring: _execute_text
+ str: _execute_text
}
def default_schema_name(self):
diff --git a/lib/sqlalchemy/engine/ddl.py b/lib/sqlalchemy/engine/ddl.py
index c61a9d59c..56f475e30 100644
--- a/lib/sqlalchemy/engine/ddl.py
+++ b/lib/sqlalchemy/engine/ddl.py
@@ -52,10 +52,10 @@ class SchemaGenerator(DDLBase):
if self.tables is not None:
tables = self.tables
else:
- tables = metadata.tables.values()
+ tables = list(metadata.tables.values())
collection = [t for t in sql_util.sort_tables(tables)
if self._can_create_table(t)]
- seq_coll = [s for s in metadata._sequences.values()
+ seq_coll = [s for s in list(metadata._sequences.values())
if s.column is None and self._can_create_sequence(s)]
metadata.dispatch.before_create(metadata, self.connection,
@@ -120,7 +120,7 @@ class SchemaDropper(DDLBase):
if self.tables is not None:
tables = self.tables
else:
- tables = metadata.tables.values()
+ tables = list(metadata.tables.values())
collection = [
t
@@ -130,7 +130,7 @@ class SchemaDropper(DDLBase):
seq_coll = [
s
- for s in metadata._sequences.values()
+ for s in list(metadata._sequences.values())
if s.column is None and self._can_drop_sequence(s)
]
diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py
index daa9fe085..9dda6d81e 100644
--- a/lib/sqlalchemy/engine/default.py
+++ b/lib/sqlalchemy/engine/default.py
@@ -57,17 +57,18 @@ class DefaultDialect(interfaces.Dialect):
# *not* the FLOAT type however.
supports_native_decimal = False
- # Py3K
- #supports_unicode_statements = True
- #supports_unicode_binds = True
- #returns_unicode_strings = True
- #description_encoding = None
- # Py2K
- supports_unicode_statements = False
- supports_unicode_binds = False
- returns_unicode_strings = False
- description_encoding = 'use_encoding'
- # end Py2K
+# start Py3K
+ supports_unicode_statements = True
+ supports_unicode_binds = True
+ returns_unicode_strings = True
+ description_encoding = None
+# end Py3K
+# start Py2K
+# supports_unicode_statements = False
+# supports_unicode_binds = False
+# returns_unicode_strings = False
+# description_encoding = 'use_encoding'
+# end Py2K
name = 'default'
@@ -201,14 +202,15 @@ class DefaultDialect(interfaces.Dialect):
return None
def _check_unicode_returns(self, connection):
- # Py2K
- if self.supports_unicode_statements:
- cast_to = unicode
- else:
- cast_to = str
- # end Py2K
- # Py3K
- #cast_to = str
+# start Py2K
+# if self.supports_unicode_statements:
+# cast_to = unicode
+# else:
+# cast_to = str
+# end Py2K
+# start Py3K
+ cast_to = str
+# end Py3K
def check_unicode(formatstr, type_):
cursor = connection.connection.cursor()
@@ -226,8 +228,8 @@ class DefaultDialect(interfaces.Dialect):
)
row = cursor.fetchone()
- return isinstance(row[0], unicode)
- except self.dbapi.Error, de:
+ return isinstance(row[0], str)
+ except self.dbapi.Error as de:
util.warn("Exception attempting to "
"detect unicode returns: %r" % de)
return False
@@ -373,10 +375,10 @@ class DefaultExecutionContext(interfaces.ExecutionContext):
self.execution_options.update(connection._execution_options)
if not dialect.supports_unicode_statements:
- self.unicode_statement = unicode(compiled)
+ self.unicode_statement = str(compiled)
self.statement = dialect._encoder(self.unicode_statement)[0]
else:
- self.statement = self.unicode_statement = unicode(compiled)
+ self.statement = self.unicode_statement = str(compiled)
self.cursor = self.create_cursor()
self.compiled_parameters = []
@@ -414,7 +416,7 @@ class DefaultExecutionContext(interfaces.ExecutionContext):
self.result_map = compiled.result_map
- self.unicode_statement = unicode(compiled)
+ self.unicode_statement = str(compiled)
if not dialect.supports_unicode_statements:
self.statement = self.unicode_statement.encode(
self.dialect.encoding)
@@ -519,7 +521,7 @@ class DefaultExecutionContext(interfaces.ExecutionContext):
self.executemany = len(parameters) > 1
if not dialect.supports_unicode_statements and \
- isinstance(statement, unicode):
+ isinstance(statement, str):
self.unicode_statement = statement
self.statement = dialect._encoder(statement)[0]
else:
@@ -573,7 +575,7 @@ class DefaultExecutionContext(interfaces.ExecutionContext):
"""
conn = self.root_connection
- if isinstance(stmt, unicode) and \
+ if isinstance(stmt, str) and \
not self.dialect.supports_unicode_statements:
stmt = self.dialect._encoder(stmt)[0]
@@ -734,12 +736,12 @@ class DefaultExecutionContext(interfaces.ExecutionContext):
inputsizes.append(dbtype)
try:
self.cursor.setinputsizes(*inputsizes)
- except Exception, e:
+ except Exception as e:
self.root_connection._handle_dbapi_exception(
e, None, None, None, self)
else:
inputsizes = {}
- for key in self.compiled.bind_names.values():
+ for key in list(self.compiled.bind_names.values()):
typeengine = types[key]
dbtype = typeengine.dialect_impl(self.dialect).\
get_dbapi_type(self.dialect.dbapi)
@@ -752,7 +754,7 @@ class DefaultExecutionContext(interfaces.ExecutionContext):
inputsizes[key] = dbtype
try:
self.cursor.setinputsizes(**inputsizes)
- except Exception, e:
+ except Exception as e:
self.root_connection._handle_dbapi_exception(
e, None, None, None, self)
diff --git a/lib/sqlalchemy/engine/reflection.py b/lib/sqlalchemy/engine/reflection.py
index 90f21db09..cf4a1d532 100644
--- a/lib/sqlalchemy/engine/reflection.py
+++ b/lib/sqlalchemy/engine/reflection.py
@@ -41,8 +41,8 @@ def cache(fn, self, con, *args, **kw):
return fn(self, con, *args, **kw)
key = (
fn.__name__,
- tuple(a for a in args if isinstance(a, basestring)),
- tuple((k, v) for k, v in kw.iteritems() if isinstance(v, (basestring, int, float)))
+ tuple(a for a in args if isinstance(a, str)),
+ tuple((k, v) for k, v in kw.items() if isinstance(v, (str, int, float)))
)
ret = info_cache.get(key)
if ret is None:
@@ -381,16 +381,16 @@ class Inspector(object):
# table.kwargs will need to be passed to each reflection method. Make
# sure keywords are strings.
tblkw = table.kwargs.copy()
- for (k, v) in tblkw.items():
+ for (k, v) in list(tblkw.items()):
del tblkw[k]
tblkw[str(k)] = v
- # Py2K
- if isinstance(schema, str):
- schema = schema.decode(dialect.encoding)
- if isinstance(table_name, str):
- table_name = table_name.decode(dialect.encoding)
- # end Py2K
+# start Py2K
+# if isinstance(schema, str):
+# schema = schema.decode(dialect.encoding)
+# if isinstance(table_name, str):
+# table_name = table_name.decode(dialect.encoding)
+# end Py2K
# columns
found_table = False
diff --git a/lib/sqlalchemy/engine/result.py b/lib/sqlalchemy/engine/result.py
index 88930081e..0bd501423 100644
--- a/lib/sqlalchemy/engine/result.py
+++ b/lib/sqlalchemy/engine/result.py
@@ -8,7 +8,7 @@
and :class:`.RowProxy."""
-from itertools import izip
+
from .. import exc, types, util
from ..sql import expression
import collections
@@ -55,7 +55,7 @@ except ImportError:
return list(self)
def __iter__(self):
- for processor, value in izip(self._processors, self._row):
+ for processor, value in zip(self._processors, self._row):
if processor is None:
yield value
else:
@@ -72,7 +72,7 @@ except ImportError:
except TypeError:
if isinstance(key, slice):
l = []
- for processor, value in izip(self._processors[key],
+ for processor, value in zip(self._processors[key],
self._row[key]):
if processor is None:
l.append(value)
@@ -93,7 +93,7 @@ except ImportError:
def __getattr__(self, name):
try:
return self[name]
- except KeyError, e:
+ except KeyError as e:
raise AttributeError(e.args[0])
@@ -142,7 +142,7 @@ class RowProxy(BaseRowProxy):
def items(self):
"""Return a list of tuples, each tuple containing a key/value pair."""
# TODO: no coverage here
- return [(key, self[key]) for key in self.iterkeys()]
+ return [(key, self[key]) for key in self.keys()]
def keys(self):
"""Return the list of keys as strings represented by this RowProxy."""
@@ -274,7 +274,7 @@ class ResultMetaData(object):
def _key_fallback(self, key, raiseerr=True):
map = self._keymap
result = None
- if isinstance(key, basestring):
+ if isinstance(key, str):
result = map.get(key if self.case_sensitive else key.lower())
# fallback for targeting a ColumnElement to a textual expression
# this is a rare use case which only occurs when matching text()
@@ -328,8 +328,8 @@ class ResultMetaData(object):
return {
'_pickled_keymap': dict(
(key, index)
- for key, (processor, obj, index) in self._keymap.iteritems()
- if isinstance(key, (basestring, int))
+ for key, (processor, obj, index) in self._keymap.items()
+ if isinstance(key, (str, int))
),
'keys': self.keys,
"case_sensitive": self.case_sensitive,
@@ -338,9 +338,9 @@ class ResultMetaData(object):
def __setstate__(self, state):
# the row has been processed at pickling time so we don't need any
# processor anymore
- self._processors = [None for _ in xrange(len(state['keys']))]
+ self._processors = [None for _ in range(len(state['keys']))]
self._keymap = keymap = {}
- for key, index in state['_pickled_keymap'].iteritems():
+ for key, index in state['_pickled_keymap'].items():
# not preserving "obj" here, unfortunately our
# proxy comparison fails with the unpickle
keymap[key] = (None, None, index)
@@ -440,7 +440,7 @@ class ResultProxy(object):
"""
try:
return self.context.rowcount
- except Exception, e:
+ except Exception as e:
self.connection._handle_dbapi_exception(
e, None, None, self.cursor, self.context)
@@ -462,7 +462,7 @@ class ResultProxy(object):
"""
try:
return self._saved_cursor.lastrowid
- except Exception, e:
+ except Exception as e:
self.connection._handle_dbapi_exception(
e, None, None,
self._saved_cursor, self.context)
@@ -746,7 +746,7 @@ class ResultProxy(object):
l = self.process_rows(self._fetchall_impl())
self.close()
return l
- except Exception, e:
+ except Exception as e:
self.connection._handle_dbapi_exception(
e, None, None,
self.cursor, self.context)
@@ -765,7 +765,7 @@ class ResultProxy(object):
if len(l) == 0:
self.close()
return l
- except Exception, e:
+ except Exception as e:
self.connection._handle_dbapi_exception(
e, None, None,
self.cursor, self.context)
@@ -784,7 +784,7 @@ class ResultProxy(object):
else:
self.close()
return None
- except Exception, e:
+ except Exception as e:
self.connection._handle_dbapi_exception(
e, None, None,
self.cursor, self.context)
@@ -800,7 +800,7 @@ class ResultProxy(object):
try:
row = self._fetchone_impl()
- except Exception, e:
+ except Exception as e:
self.connection._handle_dbapi_exception(
e, None, None,
self.cursor, self.context)
@@ -966,9 +966,9 @@ class BufferedColumnResultProxy(ResultProxy):
# constructed.
metadata._orig_processors = metadata._processors
# replace the all type processors by None processors.
- metadata._processors = [None for _ in xrange(len(metadata.keys))]
+ metadata._processors = [None for _ in range(len(metadata.keys))]
keymap = {}
- for k, (func, obj, index) in metadata._keymap.iteritems():
+ for k, (func, obj, index) in metadata._keymap.items():
keymap[k] = (None, obj, index)
self._metadata._keymap = keymap
@@ -989,7 +989,7 @@ class BufferedColumnResultProxy(ResultProxy):
if size is None:
return self.fetchall()
l = []
- for i in xrange(size):
+ for i in range(size):
row = self.fetchone()
if row is None:
break
diff --git a/lib/sqlalchemy/engine/strategies.py b/lib/sqlalchemy/engine/strategies.py
index 4c81df8f0..bed14c671 100644
--- a/lib/sqlalchemy/engine/strategies.py
+++ b/lib/sqlalchemy/engine/strategies.py
@@ -78,20 +78,21 @@ class DefaultEngineStrategy(EngineStrategy):
def connect():
try:
return dialect.connect(*cargs, **cparams)
- except Exception, e:
+ except Exception as e:
invalidated = dialect.is_disconnect(e, None, None)
- # Py3K
- #raise exc.DBAPIError.instance(None, None,
- # e, dialect.dbapi.Error,
- # connection_invalidated=invalidated
- #) from e
- # Py2K
- import sys
- raise exc.DBAPIError.instance(
- None, None, e, dialect.dbapi.Error,
+# start Py3K
+ raise exc.DBAPIError.instance(None, None,
+ e, dialect.dbapi.Error,
connection_invalidated=invalidated
- ), None, sys.exc_info()[2]
- # end Py2K
+ ) from e
+# end Py3K
+# start Py2K
+# import sys
+# raise exc.DBAPIError.instance(
+# None, None, e, dialect.dbapi.Error,
+# connection_invalidated=invalidated
+# ), None, sys.exc_info()[2]
+# end Py2K
creator = kwargs.pop('creator', connect)
diff --git a/lib/sqlalchemy/engine/url.py b/lib/sqlalchemy/engine/url.py
index c4931b48c..45768c5dc 100644
--- a/lib/sqlalchemy/engine/url.py
+++ b/lib/sqlalchemy/engine/url.py
@@ -14,7 +14,7 @@ be used directly and is also accepted directly by ``create_engine()``.
"""
import re
-import urllib
+import urllib.request, urllib.parse, urllib.error
from .. import exc, util
from . import Dialect
@@ -67,7 +67,7 @@ class URL(object):
if self.username is not None:
s += self.username
if self.password is not None:
- s += ':' + urllib.quote_plus(self.password)
+ s += ':' + urllib.parse.quote_plus(self.password)
s += "@"
if self.host is not None:
s += self.host
@@ -76,7 +76,7 @@ class URL(object):
if self.database is not None:
s += '/' + self.database
if self.query:
- keys = self.query.keys()
+ keys = list(self.query.keys())
keys.sort()
s += '?' + "&".join("%s=%s" % (k, self.query[k]) for k in keys)
return s
@@ -150,7 +150,7 @@ def make_url(name_or_url):
existing URL object is passed, just returns the object.
"""
- if isinstance(name_or_url, basestring):
+ if isinstance(name_or_url, str):
return _parse_rfc1738_args(name_or_url)
else:
return name_or_url
@@ -177,17 +177,17 @@ def _parse_rfc1738_args(name):
tokens = components['database'].split('?', 2)
components['database'] = tokens[0]
query = (len(tokens) > 1 and dict(util.parse_qsl(tokens[1]))) or None
- # Py2K
- if query is not None:
- query = dict((k.encode('ascii'), query[k]) for k in query)
- # end Py2K
+# start Py2K
+# if query is not None:
+# query = dict((k.encode('ascii'), query[k]) for k in query)
+# end Py2K
else:
query = None
components['query'] = query
if components['password'] is not None:
components['password'] = \
- urllib.unquote_plus(components['password'])
+ urllib.parse.unquote_plus(components['password'])
name = components.pop('name')
return URL(name, **components)