[Zope-Checkins] CVS: Zope/lib/python/ZPublisher - Converters.py:1.21
Andreas Jung
andreas@andreas-jung.com
Sat, 30 Nov 2002 03:06:24 -0500
Update of /cvs-repository/Zope/lib/python/ZPublisher
In directory cvs.zope.org:/tmp/cvs-serv17113/lib/python/ZPublisher
Modified Files:
Converters.py
Log Message:
added converter for international date formats
=== Zope/lib/python/ZPublisher/Converters.py 1.20 => 1.21 ===
--- Zope/lib/python/ZPublisher/Converters.py:1.20 Mon Oct 14 11:01:49 2002
+++ Zope/lib/python/ZPublisher/Converters.py Sat Nov 30 03:06:22 2002
@@ -14,6 +14,7 @@
import re
from types import ListType, TupleType, UnicodeType
+from DateTime import DateTime
from cgi import escape
def field2string(v):
@@ -47,7 +48,7 @@
raise ValueError, 'No input for required field<p>'
def field2int(v):
- if type(v) in (ListType, TupleType):
+ if isinstance(v, (ListType, TupleType)):
return map(field2int, v)
v = field2string(v)
if v:
@@ -59,7 +60,7 @@
raise ValueError, 'Empty entry when <strong>integer</strong> expected'
def field2float(v):
- if type(v) in (ListType, TupleType):
+ if isinstance(v, (ListType, TupleType)):
return map(field2float, v)
v = field2string(v)
if v:
@@ -73,7 +74,7 @@
'Empty entry when <strong>floating-point number</strong> expected')
def field2long(v):
- if type(v) in (ListType, TupleType):
+ if isinstance(v, (ListType, TupleType)):
return map(field2long, v)
v = field2string(v)
# handle trailing 'L' if present.
@@ -92,7 +93,7 @@
return v.split()
def field2lines(v):
- if type(v) in (ListType, TupleType):
+ if isinstance(v, (ListType, TupleType)):
result=[]
for item in v:
result.append(str(item))
@@ -100,7 +101,7 @@
return field2text(v).split('\n')
def field2date(v):
- from DateTime import DateTime
+
v = field2string(v)
try:
v = DateTime(v)
@@ -108,6 +109,14 @@
raise DateTime.SyntaxError, escape(e)
return v
+def field2date_international(v):
+ v = field2string(v)
+ try:
+ v = DateTime(v, datefmt="international")
+ except DateTime.SyntaxError, e:
+ raise DateTime.SyntaxError, escape(e)
+ return v
+
def field2boolean(v):
return not not v
@@ -152,6 +161,7 @@
'long': field2long,
'string': field2string,
'date': field2date,
+ 'date_international': field2date_international,
'required': field2required,
'tokens': field2tokens,
'lines': field2lines,