Author: phd
Date: 2007-09-07 07:46:47 -0600 (Fri, 07 Sep 2007)
New Revision: 2904
Modified:
SQLObject/trunk/sqlobject/col.py
SQLObject/trunk/sqlobject/converters.py
SQLObject/trunk/sqlobject/tests/test_auto.py
SQLObject/trunk/sqlobject/tests/test_auto_old.py
SQLObject/trunk/sqlobject/tests/test_datetime.py
SQLObject/trunk/sqlobject/versioning/test/test_version.py
Log:
datetime is always available in Python 2.3+, no need to test it.
Modified: SQLObject/trunk/sqlobject/col.py
===================================================================
--- SQLObject/trunk/sqlobject/col.py 2007-09-07 13:24:48 UTC (rev 2903)
+++ SQLObject/trunk/sqlobject/col.py 2007-09-07 13:46:47 UTC (rev 2904)
@@ -36,12 +36,8 @@
NoDefault = sqlbuilder.NoDefault
True, False = 1==1, 0==1
-try:
- import datetime
-except ImportError: # Python 2.2
- datetime_available = False
-else:
- datetime_available = True
+import datetime
+datetime_available = True
try:
from mx import DateTime
@@ -66,18 +62,11 @@
DateTimeType = type(DateTime.DateTime())
TimeType = type(DateTime.DateTime.Time(DateTime.DateTime()))
-if datetime_available:
- default_datetime_implementation = DATETIME_IMPLEMENTATION
-elif mxdatetime_available:
- default_datetime_implementation = MXDATETIME_IMPLEMENTATION
-else:
- default_datetime_implementation = None
+default_datetime_implementation = DATETIME_IMPLEMENTATION
__all__ = ["datetime_available", "mxdatetime_available",
- "default_datetime_implementation"
-]
-if datetime_available:
- __all__.append("DATETIME_IMPLEMENTATION")
+ "default_datetime_implementation", "DATETIME_IMPLEMENTATION"]
+
if mxdatetime_available:
__all__.append("MXDATETIME_IMPLEMENTATION")
@@ -1031,43 +1020,42 @@
baseClass = SOSetCol
-if datetime_available:
- class DateTimeValidator(validators.DateValidator):
- def to_python(self, value, state):
- if value is None:
- return None
- if isinstance(value, (datetime.datetime, datetime.date, datetime.time, sqlbuilder.SQLExpression)):
- return value
- if mxdatetime_available:
- if isinstance(value, DateTimeType):
- # convert mxDateTime instance to datetime
- if (self.format.find("%H") >= 0) or (self.format.find("%T")) >= 0:
- return datetime.datetime(value.year, value.month, value.day,
- value.hour, value.minute, int(value.second))
- else:
- return datetime.date(value.year, value.month, value.day)
- elif isinstance(value, TimeType):
- # convert mxTime instance to time
- if self.format.find("%d") >= 0:
- return datetime.timedelta(seconds=value.seconds)
- else:
- return datetime.time(value.hour, value.minute, int(value.second))
- try:
- stime = time.strptime(value, self.format)
- except:
- raise validators.Invalid("expected a date/time string of the '%s' format in the DateTimeCol '%s', got %s %r instead" % \
- (self.format, self.name, type(value), value), value, state)
- return datetime.datetime(*stime[:6])
+class DateTimeValidator(validators.DateValidator):
+ def to_python(self, value, state):
+ if value is None:
+ return None
+ if isinstance(value, (datetime.datetime, datetime.date, datetime.time, sqlbuilder.SQLExpression)):
+ return value
+ if mxdatetime_available:
+ if isinstance(value, DateTimeType):
+ # convert mxDateTime instance to datetime
+ if (self.format.find("%H") >= 0) or (self.format.find("%T")) >= 0:
+ return datetime.datetime(value.year, value.month, value.day,
+ value.hour, value.minute, int(value.second))
+ else:
+ return datetime.date(value.year, value.month, value.day)
+ elif isinstance(value, TimeType):
+ # convert mxTime instance to time
+ if self.format.find("%d") >= 0:
+ return datetime.timedelta(seconds=value.seconds)
+ else:
+ return datetime.time(value.hour, value.minute, int(value.second))
+ try:
+ stime = time.strptime(value, self.format)
+ except:
+ raise validators.Invalid("expected a date/time string of the '%s' format in the DateTimeCol '%s', got %s %r instead" % \
+ (self.format, self.name, type(value), value), value, state)
+ return datetime.datetime(*stime[:6])
- def from_python(self, value, state):
- if value is None:
- return None
- if isinstance(value, (datetime.datetime, datetime.date, datetime.time, sqlbuilder.SQLExpression)):
- return value
- if hasattr(value, "strftime"):
- return value.strftime(self.format)
- raise validators.Invalid("expected a datetime in the DateTimeCol '%s', got %s %r instead" % \
- (self.name, type(value), value), value, state)
+ def from_python(self, value, state):
+ if value is None:
+ return None
+ if isinstance(value, (datetime.datetime, datetime.date, datetime.time, sqlbuilder.SQLExpression)):
+ return value
+ if hasattr(value, "strftime"):
+ return value.strftime(self.format)
+ raise validators.Invalid("expected a datetime in the DateTimeCol '%s', got %s %r instead" % \
+ (self.name, type(value), value), value, state)
if mxdatetime_available:
class MXDateTimeValidator(validators.DateValidator):
@@ -1076,14 +1064,13 @@
return None
if isinstance(value, (DateTimeType, TimeType, sqlbuilder.SQLExpression)):
return value
- if datetime_available: # convert datetime instance to mxDateTime
- if isinstance(value, datetime.datetime):
- return DateTime.DateTime(value.year, value.month, value.day,
- value.hour, value.minute, value.second)
- elif isinstance(value, datetime.date):
- return DateTime.Date(value.year, value.month, value.day)
- elif isinstance(value, datetime.time):
- return DateTime.Time(value.hour, value.minute, value.second)
+ if isinstance(value, datetime.datetime):
+ return DateTime.DateTime(value.year, value.month, value.day,
+ value.hour, value.minute, value.second)
+ elif isinstance(value, datetime.date):
+ return DateTime.Date(value.year, value.month, value.day)
+ elif isinstance(value, datetime.time):
+ return DateTime.Time(value.hour, value.minute, value.second)
try:
stime = time.strptime(value, self.format)
except:
@@ -1154,19 +1141,19 @@
% DATETIME_IMPLEMENTATION)
now = staticmethod(now)
-if datetime_available:
- class DateValidator(DateTimeValidator):
- def to_python(self, value, state):
- if isinstance(value, datetime.datetime):
- value = value.date()
- if isinstance(value, datetime.date):
- return value
- value = super(DateValidator, self).to_python(value, state)
- if isinstance(value, datetime.datetime):
- value = value.date()
+
+class DateValidator(DateTimeValidator):
+ def to_python(self, value, state):
+ if isinstance(value, datetime.datetime):
+ value = value.date()
+ if isinstance(value, datetime.date):
return value
+ value = super(DateValidator, self).to_python(value, state)
+ if isinstance(value, datetime.datetime):
+ value = value.date()
+ return value
- from_python = to_python
+ from_python = to_python
class SODateCol(SOCol):
dateFormat = '%Y-%m-%d'
@@ -1215,21 +1202,20 @@
baseClass = SODateCol
-if datetime_available:
- class TimeValidator(DateTimeValidator):
- def to_python(self, value, state):
- if isinstance(value, datetime.time):
- return value
- if isinstance(value, datetime.timedelta):
- if value.days:
- raise validators.Invalid(
- "the value for the TimeCol '%s' must has days=0, it has days=%d" %
- (self.name, value.days), value, state)
- return datetime.time(*time.gmtime(value.seconds)[3:6])
- value = super(TimeValidator, self).to_python(value, state)
- if isinstance(value, datetime.datetime):
- value = value.time()
+class TimeValidator(DateTimeValidator):
+ def to_python(self, value, state):
+ if isinstance(value, datetime.time):
return value
+ if isinstance(value, datetime.timedelta):
+ if value.days:
+ raise validators.Invalid(
+ "the value for the TimeCol '%s' must has days=0, it has days=%d" %
+ (self.name, value.days), value, state)
+ return datetime.time(*time.gmtime(value.seconds)[3:6])
+ value = super(TimeValidator, self).to_python(value, state)
+ if isinstance(value, datetime.datetime):
+ value = value.time()
+ return value
class SOTimeCol(SOCol):
timeFormat = '%H:%M:%S'
Modified: SQLObject/trunk/sqlobject/converters.py
===================================================================
--- SQLObject/trunk/sqlobject/converters.py 2007-09-07 13:24:48 UTC (rev 2903)
+++ SQLObject/trunk/sqlobject/converters.py 2007-09-07 13:46:47 UTC (rev 2904)
@@ -15,10 +15,7 @@
DateTimeDeltaType = None
import time
-try:
- import datetime
-except ImportError:
- datetime = None
+import datetime
try:
import Sybase
@@ -202,23 +199,22 @@
registerConverter(time.struct_time, StructTimeConverter)
-if datetime:
- def DateTimeConverter(value, db):
- return "'%04d-%02d-%02d %02d:%02d:%02d'" % (
- value.year, value.month, value.day,
- value.hour, value.minute, value.second)
+def DateTimeConverter(value, db):
+ return "'%04d-%02d-%02d %02d:%02d:%02d'" % (
+ value.year, value.month, value.day,
+ value.hour, value.minute, value.second)
- registerConverter(datetime.datetime, DateTimeConverter)
+registerConverter(datetime.datetime, DateTimeConverter)
- def DateConverter(value, db):
- return "'%04d-%02d-%02d'" % (value.year, value.month, value.day)
+def DateConverter(value, db):
+ return "'%04d-%02d-%02d'" % (value.year, value.month, value.day)
- registerConverter(datetime.date, DateConverter)
+registerConverter(datetime.date, DateConverter)
- def TimeConverter(value, db):
- return "'%02d:%02d:%02d'" % (value.hour, value.minute, value.second)
+def TimeConverter(value, db):
+ return "'%02d:%02d:%02d'" % (value.hour, value.minute, value.second)
- registerConverter(datetime.time, TimeConverter)
+registerConverter(datetime.time, TimeConverter)
if Decimal:
def DecimalConverter(value, db):
Modified: SQLObject/trunk/sqlobject/tests/test_auto.py
===================================================================
--- SQLObject/trunk/sqlobject/tests/test_auto.py 2007-09-07 13:24:48 UTC (rev 2903)
+++ SQLObject/trunk/sqlobject/tests/test_auto.py 2007-09-07 13:46:47 UTC (rev 2904)
@@ -1,3 +1,6 @@
+from datetime import datetime
+now = datetime.now
+
from sqlobject import *
from sqlobject.tests.dbtest import *
from sqlobject import classregistry
@@ -3,10 +6,4 @@
from py.test import raises
-try:
- from datetime import datetime
- now = datetime.now
-except ImportError:
- from mx.DateTime import now
-
########################################
## Dynamic column tests
Modified: SQLObject/trunk/sqlobject/tests/test_auto_old.py
===================================================================
--- SQLObject/trunk/sqlobject/tests/test_auto_old.py 2007-09-07 13:24:48 UTC (rev 2903)
+++ SQLObject/trunk/sqlobject/tests/test_auto_old.py 2007-09-07 13:46:47 UTC (rev 2904)
@@ -1,11 +1,9 @@
+from datetime import datetime
+now = datetime.now
+
from sqlobject import *
from sqlobject.tests.dbtest import *
from sqlobject import classregistry
-try:
- from datetime import datetime
- now = datetime.now
-except ImportError:
- from mx.DateTime import now
########################################
## Auto class generation
Modified: SQLObject/trunk/sqlobject/tests/test_datetime.py
===================================================================
--- SQLObject/trunk/sqlobject/tests/test_datetime.py 2007-09-07 13:24:48 UTC (rev 2903)
+++ SQLObject/trunk/sqlobject/tests/test_datetime.py 2007-09-07 13:46:47 UTC (rev 2904)
@@ -1,43 +1,42 @@
from sqlobject import *
from sqlobject.tests.dbtest import *
-from sqlobject import col
########################################
## Date/time columns
########################################
-if datetime_available:
- col.default_datetime_implementation = DATETIME_IMPLEMENTATION
- from datetime import datetime, date, time
+from sqlobject import col
+col.default_datetime_implementation = DATETIME_IMPLEMENTATION
+from datetime import datetime, date, time
- class DateTime1(SQLObject):
- col1 = DateTimeCol()
- col2 = DateCol()
- col3 = TimeCol()
+class DateTime1(SQLObject):
+ col1 = DateTimeCol()
+ col2 = DateCol()
+ col3 = TimeCol()
- def test_dateTime():
- setupClass(DateTime1)
- _now = datetime.now()
- dt1 = DateTime1(col1=_now, col2=_now, col3=_now.time())
+def test_dateTime():
+ setupClass(DateTime1)
+ _now = datetime.now()
+ dt1 = DateTime1(col1=_now, col2=_now, col3=_now.time())
- assert isinstance(dt1.col1, datetime)
- assert dt1.col1.year == _now.year
- assert dt1.col1.month == _now.month
- assert dt1.col1.day == _now.day
- assert dt1.col1.hour == _now.hour
- assert dt1.col1.minute == _now.minute
- assert dt1.col1.second == int(_now.second)
+ assert isinstance(dt1.col1, datetime)
+ assert dt1.col1.year == _now.year
+ assert dt1.col1.month == _now.month
+ assert dt1.col1.day == _now.day
+ assert dt1.col1.hour == _now.hour
+ assert dt1.col1.minute == _now.minute
+ assert dt1.col1.second == int(_now.second)
- assert isinstance(dt1.col2, date)
- assert not isinstance(dt1.col2, datetime)
- assert dt1.col2.year == _now.year
- assert dt1.col2.month == _now.month
- assert dt1.col2.day == _now.day
+ assert isinstance(dt1.col2, date)
+ assert not isinstance(dt1.col2, datetime)
+ assert dt1.col2.year == _now.year
+ assert dt1.col2.month == _now.month
+ assert dt1.col2.day == _now.day
- assert isinstance(dt1.col3, time)
- assert dt1.col3.hour == _now.hour
- assert dt1.col3.minute == _now.minute
- assert dt1.col3.second == int(_now.second)
+ assert isinstance(dt1.col3, time)
+ assert dt1.col3.hour == _now.hour
+ assert dt1.col3.minute == _now.minute
+ assert dt1.col3.second == int(_now.second)
if mxdatetime_available:
col.default_datetime_implementation = MXDATETIME_IMPLEMENTATION
Modified: SQLObject/trunk/sqlobject/versioning/test/test_version.py
===================================================================
--- SQLObject/trunk/sqlobject/versioning/test/test_version.py 2007-09-07 13:24:48 UTC (rev 2903)
+++ SQLObject/trunk/sqlobject/versioning/test/test_version.py 2007-09-07 13:46:47 UTC (rev 2904)
@@ -9,9 +9,7 @@
from sqlobject.versioning import Versioning
from sqlobject.tests.dbtest import *
-from datetime import datetime
-
class MyClass(SQLObject):
name = StringCol()
versions = Versioning()
|