Re-factor dict* methods on each cursor into the interface
issue4807 review7241002
This commit is contained in:
1 parent
5478e5463f
commit
eddb17dea7
4 files changed
+22
-73
No files matched your search
@@ -219,3 +219,22 @@ class CursorInterface(object):
|
||||
|
||||
:return: a boolean
|
||||
'''
|
||||
|
||||
def __build_dict(self, row):
|
||||
return dict((desc[0], row[i])
|
||||
for i, desc in enumerate(self.description))
|
||||
|
||||
def dictfetchone(self):
|
||||
row = self.fetchone()
|
||||
if row:
|
||||
return self.__build_dict(row)
|
||||
else:
|
||||
return row
|
||||
|
||||
def dictfetchmany(self, size):
|
||||
rows = self.fetchmany(size)
|
||||
return [self.__build_dict(row) for row in rows]
|
||||
|
||||
def dictfetchall(self):
|
||||
rows = self.fetchall()
|
||||
return [self.__build_dict(row) for row in rows]
|
||||
@@ -247,31 +247,6 @@ class Database(DatabaseInterface):
|
||||
(0, module_id, dependency))
|
||||
|
||||
|
||||
class _Cursor(MySQLdb.cursors.Cursor):
|
||||
|
||||
def __build_dict(self, row):
|
||||
return dict((desc[0], row[i])
|
||||
for i, desc in enumerate(self.description))
|
||||
|
||||
def dictfetchone(self):
|
||||
row = self.fetchone()
|
||||
if row:
|
||||
return self.__build_dict(row)
|
||||
else:
|
||||
return row
|
||||
|
||||
def dictfetchmany(self, size):
|
||||
rows = self.fetchmany(size)
|
||||
return [self.__build_dict(row) for row in rows]
|
||||
|
||||
def dictfetchall(self):
|
||||
rows = self.fetchall()
|
||||
return [self.__build_dict(row) for row in rows]
|
||||
|
||||
def fetchall(self):
|
||||
return list(super(_Cursor, self).fetchall())
|
||||
|
||||
|
||||
class Cursor(CursorInterface):
|
||||
|
||||
def __init__(self, conn, database_name):
|
||||
@@ -279,7 +254,7 @@ class Cursor(CursorInterface):
|
||||
self._conn = conn
|
||||
self.database_name = database_name
|
||||
self.dbname = self.database_name # XXX to remove
|
||||
self.cursor = conn.cursor(_Cursor)
|
||||
self.cursor = conn.cursor()
|
||||
|
||||
def __getattr__(self, name):
|
||||
return getattr(self.cursor, name)
|
||||
|
||||
@@ -15,7 +15,6 @@ try:
|
||||
except ImportError:
|
||||
pass
|
||||
from psycopg2.pool import ThreadedConnectionPool
|
||||
from psycopg2.extensions import cursor as PsycopgCursor
|
||||
from psycopg2.extensions import ISOLATION_LEVEL_REPEATABLE_READ
|
||||
from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT
|
||||
from psycopg2.extensions import register_type, register_adapter
|
||||
@@ -269,28 +268,6 @@ class Database(DatabaseInterface):
|
||||
(0, module_id, dependency))
|
||||
|
||||
|
||||
class _Cursor(PsycopgCursor):
|
||||
|
||||
def __build_dict(self, row):
|
||||
return dict((desc[0], row[i])
|
||||
for i, desc in enumerate(self.description))
|
||||
|
||||
def dictfetchone(self):
|
||||
row = self.fetchone()
|
||||
if row:
|
||||
return self.__build_dict(row)
|
||||
else:
|
||||
return row
|
||||
|
||||
def dictfetchmany(self, size):
|
||||
rows = self.fetchmany(size)
|
||||
return [self.__build_dict(row) for row in rows]
|
||||
|
||||
def dictfetchall(self):
|
||||
rows = self.fetchall()
|
||||
return [self.__build_dict(row) for row in rows]
|
||||
|
||||
|
||||
class Cursor(CursorInterface):
|
||||
|
||||
def __init__(self, connpool, conn, database):
|
||||
@@ -298,7 +275,7 @@ class Cursor(CursorInterface):
|
||||
self._connpool = connpool
|
||||
self._conn = conn
|
||||
self._database = database
|
||||
self.cursor = conn.cursor(cursor_factory=_Cursor)
|
||||
self.cursor = conn.cursor()
|
||||
self.commit()
|
||||
self.sql_from_log = {}
|
||||
self.sql_into_log = {}
|
||||
|
||||
@@ -321,28 +321,6 @@ class Database(DatabaseInterface):
|
||||
cursor.execute(*insert)
|
||||
|
||||
|
||||
class _Cursor(sqlite.Cursor):
|
||||
|
||||
def __build_dict(self, row):
|
||||
return dict((desc[0], row[i])
|
||||
for i, desc in enumerate(self.description))
|
||||
|
||||
def dictfetchone(self):
|
||||
row = self.fetchone()
|
||||
if row:
|
||||
return self.__build_dict(row)
|
||||
else:
|
||||
return row
|
||||
|
||||
def dictfetchmany(self, size):
|
||||
rows = self.fetchmany(size)
|
||||
return [self.__build_dict(row) for row in rows]
|
||||
|
||||
def dictfetchall(self):
|
||||
rows = self.fetchall()
|
||||
return [self.__build_dict(row) for row in rows]
|
||||
|
||||
|
||||
class Cursor(CursorInterface):
|
||||
IN_MAX = 200
|
||||
|
||||
@@ -351,7 +329,7 @@ class Cursor(CursorInterface):
|
||||
self._conn = conn
|
||||
self.database_name = database_name
|
||||
self.dbname = self.database_name # XXX to remove
|
||||
self.cursor = conn.cursor(_Cursor)
|
||||
self.cursor = conn.cursor()
|
||||
|
||||
def __getattr__(self, name):
|
||||
if _FIX_ROWCOUNT and name == 'rowcount':
|
||||
|
||||
Reference in new issue
Block a user