Make psycopg2 requirement optional
This commit is contained in:
@@ -4,6 +4,12 @@ Changelog
|
|||||||
Here you can see the full list of changes between each SQLAlchemy-Utils release.
|
Here you can see the full list of changes between each SQLAlchemy-Utils release.
|
||||||
|
|
||||||
|
|
||||||
|
0.30.6 (2015-05-28)
|
||||||
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
- Make psycopg2 requirement optional (#145, #146)
|
||||||
|
|
||||||
|
|
||||||
0.30.5 (2015-05-27)
|
0.30.5 (2015-05-27)
|
||||||
^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
@@ -95,10 +95,18 @@ http://schinckel.net/2014/09/24/using-postgres-composite-types-in-django/
|
|||||||
"""
|
"""
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
import psycopg2
|
psycopg2 = None
|
||||||
|
CompositeCaster = None
|
||||||
|
adapt = None
|
||||||
|
AsIs = None
|
||||||
|
register_adapter = None
|
||||||
|
try:
|
||||||
|
import psycopg2
|
||||||
|
from psycopg2.extras import CompositeCaster
|
||||||
|
from psycopg2.extensions import adapt, AsIs, register_adapter
|
||||||
|
except ImportError:
|
||||||
|
pass
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
from psycopg2.extras import CompositeCaster
|
|
||||||
from psycopg2.extensions import adapt, AsIs, register_adapter
|
|
||||||
from sqlalchemy.dialects.postgresql import ARRAY
|
from sqlalchemy.dialects.postgresql import ARRAY
|
||||||
from sqlalchemy.dialects.postgresql.psycopg2 import PGDialect_psycopg2
|
from sqlalchemy.dialects.postgresql.psycopg2 import PGDialect_psycopg2
|
||||||
from sqlalchemy.ext.compiler import compiles
|
from sqlalchemy.ext.compiler import compiles
|
||||||
@@ -110,6 +118,7 @@ from sqlalchemy.types import (
|
|||||||
TypeDecorator,
|
TypeDecorator,
|
||||||
UserDefinedType
|
UserDefinedType
|
||||||
)
|
)
|
||||||
|
from sqlalchemy_utils import ImproperlyConfigured
|
||||||
|
|
||||||
|
|
||||||
class CompositeElement(FunctionElement):
|
class CompositeElement(FunctionElement):
|
||||||
@@ -166,6 +175,10 @@ class CompositeType(UserDefinedType, SchemaType):
|
|||||||
return CompositeElement(self.expr, key, type_)
|
return CompositeElement(self.expr, key, type_)
|
||||||
|
|
||||||
def __init__(self, name, columns):
|
def __init__(self, name, columns):
|
||||||
|
if psycopg2 is None:
|
||||||
|
raise ImproperlyConfigured(
|
||||||
|
"'psycopg2' package is required in order to use CompositeType."
|
||||||
|
)
|
||||||
SchemaType.__init__(self)
|
SchemaType.__init__(self)
|
||||||
self.name = name
|
self.name = name
|
||||||
self.columns = columns
|
self.columns = columns
|
||||||
|
Reference in New Issue
Block a user