Infinity ok in Zope (closes: #122)

This commit is contained in:
Federico Di Gregorio 2006-09-30 06:39:51 +00:00
parent 4820213b7f
commit 5689f07de4
2 changed files with 14 additions and 3 deletions

View File

@ -1,5 +1,7 @@
2006-09-30 Federico Di Gregorio <fog@initd.org> 2006-09-30 Federico Di Gregorio <fog@initd.org>
* ZpsycopgDA/DA.py: applied the infinity patch from 1.1 (fixes #122).
* psycopg/adapter_datetime.py: fixed conversion problem with seconds * psycopg/adapter_datetime.py: fixed conversion problem with seconds
in the (59,60) range (fixes #131). in the (59,60) range (fixes #131).

View File

@ -221,7 +221,10 @@ for icon in ('table', 'view', 'stable', 'what', 'field', 'text', 'bin',
# convert an ISO timestamp string from postgres to a Zope DateTime object # convert an ISO timestamp string from postgres to a Zope DateTime object
def _cast_DateTime(iso, curs): def _cast_DateTime(iso, curs):
if iso: if iso:
return DateTime(re.split("GMT\+?|GMT-?|\+|-", iso)[0]) if iso in ['-infinity', 'infinity']:
return iso
else:
return DateTime(re.split("GMT\+?|GMT-?|\+|-", iso)[0])
# this will split us into [date, time, GMT/AM/PM(if there)] # this will split us into [date, time, GMT/AM/PM(if there)]
# dt = str.split(' ') # dt = str.split(' ')
@ -236,14 +239,20 @@ def _cast_DateTime(iso, curs):
# convert an ISO date string from postgres to a Zope DateTime object # convert an ISO date string from postgres to a Zope DateTime object
def _cast_Date(iso, curs): def _cast_Date(iso, curs):
if iso: if iso:
return DateTime(iso) if iso in ['-infinity', 'infinity']:
return iso
else:
return DateTime(iso)
# Convert a time string from postgres to a Zope DateTime object. # Convert a time string from postgres to a Zope DateTime object.
# NOTE: we set the day as today before feeding to DateTime so # NOTE: we set the day as today before feeding to DateTime so
# that it has the same DST settings. # that it has the same DST settings.
def _cast_Time(iso, curs): def _cast_Time(iso, curs):
if iso: if iso:
return DateTime(time.strftime('%Y-%m-%d %H:%M:%S', if iso in ['-infinity', 'infinity']:
return iso
else:
return DateTime(time.strftime('%Y-%m-%d %H:%M:%S',
time.localtime(time.time())[:3]+ time.localtime(time.time())[:3]+
time.strptime(iso[:8], "%H:%M:%S")[3:])) time.strptime(iso[:8], "%H:%M:%S")[3:]))