always deiter on ItemField value assignation

--HG--
extra : convert_revision : svn%3Ab85faa78-f9eb-468e-a121-7cced6da292c%40877
This commit is contained in:
Ismael Carnales 2009-02-19 12:39:58 +00:00
parent 22549161a5
commit 76c84bda38
2 changed files with 10 additions and 4 deletions

View File

@ -12,6 +12,12 @@ class ItemField(object):
self.required = required
self.default = default
def assign(self, value):
if hasattr(value, '__iter__'):
return self.to_python(self.deiter(value))
else:
return self.to_python(value)
def to_python(self, value):
"""
Converts the input value into the expected Python data type.
@ -19,9 +25,9 @@ class ItemField(object):
"""
return value
def from_list(self, list):
"Converts the input list into the expected Python data type."
return self.to_python(list.join(''))
def deiter(self, value):
"Converts the input iterable into a single value."
return ' '.join(value)
def default_value(self):
"Returns the default value for this field"

View File

@ -17,7 +17,7 @@ class Item(object):
def __setattr__(self, name, value):
if not name.startswith('_'):
if name in self._fields.keys():
self._values[name] = self._fields[name].to_python(value)
self._values[name] = self._fields[name].assign(value)
else:
raise AttributeError(name)
else: