summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/postgresql/psycopg2.py
diff options
context:
space:
mode:
authorShaun Stanworth <shaun.stanworth@onefinestay.com>2014-11-09 14:52:31 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2015-01-26 18:43:19 -0500
commitf94d75ede5f5d2ed28d72ff98ca7caca016e5506 (patch)
treecb10a74016216a849423d0878219d15e5bc3b371 /lib/sqlalchemy/dialects/postgresql/psycopg2.py
parent987f40b5aa325fe8a6655bcb0be2329c0a24025d (diff)
downloadsqlalchemy-f94d75ede5f5d2ed28d72ff98ca7caca016e5506.tar.gz
Added psycopg2cffi dialect
Diffstat (limited to 'lib/sqlalchemy/dialects/postgresql/psycopg2.py')
-rw-r--r--lib/sqlalchemy/dialects/postgresql/psycopg2.py17
1 files changed, 14 insertions, 3 deletions
diff --git a/lib/sqlalchemy/dialects/postgresql/psycopg2.py b/lib/sqlalchemy/dialects/postgresql/psycopg2.py
index fe27da8b6..5246abf1c 100644
--- a/lib/sqlalchemy/dialects/postgresql/psycopg2.py
+++ b/lib/sqlalchemy/dialects/postgresql/psycopg2.py
@@ -512,9 +512,19 @@ class PGDialect_psycopg2(PGDialect):
import psycopg2
return psycopg2
+ @classmethod
+ def _psycopg2_extensions(cls):
+ from psycopg2 import extensions
+ return extensions
+
+ @classmethod
+ def _psycopg2_extras(cls):
+ from psycopg2 import extras
+ return extras
+
@util.memoized_property
def _isolation_lookup(self):
- from psycopg2 import extensions
+ extensions = self._psycopg2_extensions()
return {
'AUTOCOMMIT': extensions.ISOLATION_LEVEL_AUTOCOMMIT,
'READ COMMITTED': extensions.ISOLATION_LEVEL_READ_COMMITTED,
@@ -536,7 +546,8 @@ class PGDialect_psycopg2(PGDialect):
connection.set_isolation_level(level)
def on_connect(self):
- from psycopg2 import extras, extensions
+ extras = self._psycopg2_extras()
+ extensions = self._psycopg2_extensions()
fns = []
if self.client_encoding is not None:
@@ -586,7 +597,7 @@ class PGDialect_psycopg2(PGDialect):
@util.memoized_instancemethod
def _hstore_oids(self, conn):
if self.psycopg2_version >= (2, 4):
- from psycopg2 import extras
+ extras = self._psycopg2_extras()
oids = extras.HstoreAdapter.get_oids(conn)
if oids is not None and oids[0]:
return oids[0:2]