Added URLType

This commit is contained in:
Konsta Vesterinen
2013-10-23 08:27:09 +03:00
parent 98ba5cd5a7
commit b43214429d

View File

@@ -0,0 +1,28 @@
furl = None
try:
from furl import furl
except ImportError:
pass
import six
from sqlalchemy import types
from .scalar_coercible import ScalarCoercible
class UrlType(types.TypeDecorator, ScalarCoercible):
impl = types.UnicodeText
def process_bind_param(self, value, dialect):
if isinstance(value, furl):
return value.code
if isinstance(value, six.string_types):
return value
def process_result_value(self, value, dialect):
if value is not None:
return furl(value)
def _coerce(self, value):
if value is not None and not isinstance(value, furl):
return furl(value)
return value