import re, datetime, inspect, warnings, weakref, operator
from array import array as _array
-from decimal import Decimal
from sqlalchemy import sql, schema, ansisql
from sqlalchemy.engine import default
return value
def convert_result_value(self, value, dialect):
- if not self.asdecimal and isinstance(value, Decimal):
+ if not self.asdecimal and isinstance(value, util.decimal_type):
return float(value)
else:
return value
import re, random, warnings, operator
-from sqlalchemy import sql, schema, ansisql, exceptions
+from sqlalchemy import sql, schema, ansisql, exceptions, util
from sqlalchemy.engine import base, default
import sqlalchemy.types as sqltypes
-from decimal import Decimal
try:
import mx.DateTime.DateTime as mxDateTime
return value
def convert_result_value(self, value, dialect):
- if not self.asdecimal and isinstance(value, Decimal):
+ if not self.asdecimal and isinstance(value, util.decimal_type):
return float(value)
else:
return value
import inspect
import datetime as dt
-from decimal import Decimal
try:
import cPickle as pickle
except:
import pickle
from sqlalchemy import exceptions
+from sqlalchemy.util import Decimal
class AbstractType(object):
def __init__(self, *args, **kwargs):
i -= 1
raise StopIteration()
+try:
+ # Try the standard decimal for > 2.3 or the compatibility module
+ # for 2.3, if installed.
+ from decimal import Decimal
+ decimal_type = Decimal
+except ImportError:
+ def Decimal(arg):
+ if Decimal.warn:
+ warnings.warn(RuntimeWarning(
+ "True Decimal types not available on this Python, "
+ "falling back to floats."))
+ Decimal.warn = False
+ return float(arg)
+ Decimal.warn = True
+ decimal_type = float
+
if sys.version_info >= (2, 5):
class PopulateDict(dict):
"""a dict which populates missing values via a creation function.