Thread: [SQLObject] MaxDateTime for DateTimeCol
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: Robert F. <fo...@zi...> - 2005-08-23 07:57:16
|
hi, wouldn't it be useful to include a DateTime module specific MaxDateTime for validation of date-time input (in sqlobject/col.py i guess)? When mxDateTime is not available, MaxDateTime is limited by time.mktime() to somewhen in the year 2037. With mxDateTime its >>> DateTime.MaxDateTime <DateTime object for '5867440-12-31 00:00:00.00' at 403a6d78> I ran into this problem, when trying to set MaxDateTime as default for a DateTimeCol. best regards, robert -- the idea is to keep the green alien landing craft from taking up humans from the ground and changing them into mutants. a mutant is very dangerous to you, because it flies faster than you do and shoots at you. |
From: Oleg B. <ph...@ma...> - 2005-08-23 08:06:05
|
On Tue, Aug 23, 2005 at 09:57:10AM +0200, Robert Forkel wrote: > With mxDateTime its > >>> DateTime.MaxDateTime > <DateTime object for '5867440-12-31 00:00:00.00' at 403a6d78> mxDateTime depends on local C library, so this max date may be incorect on some or many systems. Any idea how to find out a min/max dates instead of hardcoded constants? Oleg. -- Oleg Broytmann http://phd.pp.ru/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |
From: Robert F. <fo...@zi...> - 2005-08-23 08:19:01
|
in my case, a hardcoded constant (like the most restrictive on any supported system) would be helpful enough. i do not care about years after 2037, anyway. it would be just nice to have a default at hand. people knowing more about their particular systems could overwrite this minimal consensus constant. best regards, robert Oleg Broytmann wrote: >On Tue, Aug 23, 2005 at 09:57:10AM +0200, Robert Forkel wrote: > > >>With mxDateTime its >> >> >>>>>DateTime.MaxDateTime >>>>> >>>>> >><DateTime object for '5867440-12-31 00:00:00.00' at 403a6d78> >> >> > > mxDateTime depends on local C library, so this max date may be incorect >on some or many systems. > Any idea how to find out a min/max dates instead of hardcoded constants? > >Oleg. > > -- the idea is to keep the green alien landing craft from taking up humans from the ground and changing them into mutants. a mutant is very dangerous to you, because it flies faster than you do and shoots at you. |
From: Oleg B. <ph...@ma...> - 2005-08-23 08:26:11
|
On Tue, Aug 23, 2005 at 10:18:53AM +0200, Robert Forkel wrote: > in my case SQLObject is a general library, not a collection of hacks. > people knowing more about their particular systems could overwrite this > minimal consensus constant. People knowing more about their preferences could create their own columns and write tests for their own needs. Oleg. -- Oleg Broytmann http://phd.pp.ru/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |
From: Robert F. <fo...@zi...> - 2005-08-23 08:38:19
|
oh sorry, i didn't want to get my personal hack into sqlobject. just wanted to explain my situation and leave it to others to decide whether this might be a general need. anyway, i'd propose to enclose the secs = time.mktime(stime) assignment in DateTimeValidator in a try-except block, raising an Invalid('datetime > MaxDateTime', ...) exception. Which would make more sense to me than the exception raised by time.mktime: >>> time.mktime(s) Traceback (most recent call last): File "<stdin>", line 1, in ? OverflowError: mktime argument out of range regards, robert Oleg Broytmann wrote: >On Tue, Aug 23, 2005 at 10:18:53AM +0200, Robert Forkel wrote: > > >>in my case >> >> > > SQLObject is a general library, not a collection of hacks. > > > >>people knowing more about their particular systems could overwrite this >>minimal consensus constant. >> >> > > People knowing more about their preferences could create their own >columns and write tests for their own needs. > >Oleg. > > -- the idea is to keep the green alien landing craft from taking up humans from the ground and changing them into mutants. a mutant is very dangerous to you, because it flies faster than you do and shoots at you. |
From: Oleg B. <ph...@ma...> - 2005-08-23 09:02:05
|
On Tue, Aug 23, 2005 at 10:38:14AM +0200, Robert Forkel wrote: > anyway, i'd propose to enclose the > secs = time.mktime(stime) > assignment in DateTimeValidator in a try-except block, raising an > Invalid('datetime > MaxDateTime', ...) exception. > Which would make more sense to me than the exception raised by time.mktime: > >>> time.mktime(s) > Traceback (most recent call last): > File "<stdin>", line 1, in ? > OverflowError: mktime argument out of range Ah, that's better! I'll decide what to do. Unfortunately Python does not have an ability to chain exceptions... Oleg. -- Oleg Broytmann http://phd.pp.ru/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |
From: Robert F. <fo...@zi...> - 2005-08-23 09:16:44
|
> Ah, that's better! I'll decide what to do. Unfortunately Python does not >have an ability to chain exceptions... > >Oleg. > > thanx. i guess mapping exceptions which occur during conversion to Invalid exceptions is the closest one can get to determining Min/MaxDateTime for all systems. And i agree, a MaxDateTime constant as proposed in my previous post would not make sense, because default values for columns should rather reflect application specifics than system specifics. regards, robert -- the idea is to keep the green alien landing craft from taking up humans from the ground and changing them into mutants. a mutant is very dangerous to you, because it flies faster than you do and shoots at you. |