Re-factor dict* methods on each cursor into the interface

issue4807
review7241002
This commit is contained in:
Cédric Krier committed 2015-06-15 01:18:07 +02:00
1 parent 5478e5463f
commit eddb17dea7
4 files changed
+22 -73

No files matched your search

+19
View File
@@ -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]
+1 -26
View File
@@ -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)
+1 -24
View File
@@ -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 = {}
+1 -23
View File
@@ -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':