summaryrefslogtreecommitdiff
path: root/python/skytools/psycopgwrapper.py
diff options
context:
space:
mode:
authorMarko Kreen2008-04-11 13:58:31 +0000
committerMarko Kreen2008-04-11 13:58:31 +0000
commitd7da0f77316da9e9749980026b375b9788aacdb2 (patch)
treedee5dd9ccc20265a8e46e93fe7db898c54f62620 /python/skytools/psycopgwrapper.py
parentdf96178394c52cd2dfca717e4c9eb1d18167d274 (diff)
drop support for psycopg1
Diffstat (limited to 'python/skytools/psycopgwrapper.py')
-rw-r--r--python/skytools/psycopgwrapper.py99
1 files changed, 43 insertions, 56 deletions
diff --git a/python/skytools/psycopgwrapper.py b/python/skytools/psycopgwrapper.py
index 4ba80a4d..9d23e506 100644
--- a/python/skytools/psycopgwrapper.py
+++ b/python/skytools/psycopgwrapper.py
@@ -13,62 +13,49 @@ import sys
__all__ = []
-try:
- ##from psycopg2.psycopg1 import connect as _pgconnect
- # psycopg2.psycopg1.cursor is too backwards compatible,
- # to the point of avoiding optimized access.
- # only backwards compat thing we need is dict* methods
-
- import psycopg2.extensions, psycopg2.extras
- from sqltools import dbdict
-
- class _CompatRow(psycopg2.extras.DictRow):
- """Make DictRow more dict-like."""
- __slots__ = ('_index',)
-
- def __contains__(self, k):
- """Returns if such row has such column."""
- return k in self._index
-
- def copy(self):
- """Return regular dict."""
- return dbdict(self.iteritems())
-
- def iterkeys(self):
- return self._index.iterkeys()
-
- def itervalues(self):
- return list.__iter__(self)
-
- # obj.foo access
- def __getattr__(self, k):
- return self[k]
-
- class _CompatCursor(psycopg2.extras.DictCursor):
- """Regular psycopg2 DictCursor with dict* methods."""
- def __init__(self, *args, **kwargs):
- psycopg2.extras.DictCursor.__init__(self, *args, **kwargs)
- self.row_factory = _CompatRow
- dictfetchone = psycopg2.extras.DictCursor.fetchone
- dictfetchall = psycopg2.extras.DictCursor.fetchall
- dictfetchmany = psycopg2.extras.DictCursor.fetchmany
-
- class _CompatConnection(psycopg2.extensions.connection):
- """Connection object that uses _CompatCursor."""
- def cursor(self):
- return psycopg2.extensions.connection.cursor(self, cursor_factory = _CompatCursor)
+##from psycopg2.psycopg1 import connect as _pgconnect
+# psycopg2.psycopg1.cursor is too backwards compatible,
+# to the point of avoiding optimized access.
+# only backwards compat thing we need is dict* methods
+
+import psycopg2.extensions, psycopg2.extras
+from skytools.sqltools import dbdict
+
+class _CompatRow(psycopg2.extras.DictRow):
+ """Make DictRow more dict-like."""
+ __slots__ = ('_index',)
+
+ def __contains__(self, k):
+ """Returns if such row has such column."""
+ return k in self._index
+
+ def copy(self):
+ """Return regular dict."""
+ return dbdict(self.iteritems())
- def _pgconnect(cstr):
- """Create a psycopg2 connection."""
- return _CompatConnection(cstr)
-
-except ImportError:
- # use psycopg 1
- try:
- from psycopg import connect as _pgconnect
- except ImportError:
- print "Please install psycopg2 module"
- sys.exit(1)
+ def iterkeys(self):
+ return self._index.iterkeys()
+
+ def itervalues(self):
+ return list.__iter__(self)
+
+ # obj.foo access
+ def __getattr__(self, k):
+ return self[k]
+
+class _CompatCursor(psycopg2.extras.DictCursor):
+ """Regular psycopg2 DictCursor with dict* methods."""
+ def __init__(self, *args, **kwargs):
+ psycopg2.extras.DictCursor.__init__(self, *args, **kwargs)
+ self.row_factory = _CompatRow
+ dictfetchone = psycopg2.extras.DictCursor.fetchone
+ dictfetchall = psycopg2.extras.DictCursor.fetchall
+ dictfetchmany = psycopg2.extras.DictCursor.fetchmany
+
+class _CompatConnection(psycopg2.extensions.connection):
+ """Connection object that uses _CompatCursor."""
+ def cursor(self):
+ return psycopg2.extensions.connection.cursor(self, cursor_factory = _CompatCursor)
def connect_database(connstr):
"""Create a db connection with connect_timeout option.
@@ -81,5 +68,5 @@ def connect_database(connstr):
connstr += " connect_timeout=15"
# create connection
- return _pgconnect(connstr)
+ return _CompatConnection(connstr)