diff --git a/scrapy/trunk/scrapy/contrib_exp/newitem/fields.py b/scrapy/trunk/scrapy/contrib_exp/newitem/fields.py index 6a8959578..3cd5a7b22 100644 --- a/scrapy/trunk/scrapy/contrib_exp/newitem/fields.py +++ b/scrapy/trunk/scrapy/contrib_exp/newitem/fields.py @@ -3,15 +3,15 @@ import decimal import re -__all__ = ['BooleanItemField', 'DateItemField', 'DecimalItemField', - 'FloatItemField', 'IntegerItemField', 'StringItemField'] +__all__ = ['BooleanField', 'DateField', 'DecimalField', + 'FloatField', 'IntegerField', 'StringField'] -class ItemFieldValueError(Exception): +class FieldValueError(Exception): pass -class ItemField(object): +class Field(object): def __init__(self, required=False, default=None): self.required = required self.default = default or self.to_python(None) @@ -34,18 +34,18 @@ class ItemField(object): return ' '.join(value) -class BooleanItemField(ItemField): +class BooleanField(Field): def to_python(self, value): if value in (True, False): return value if value in ('t', 'True', '1'): return True if value in ('f', 'False', '0'): return False - raise ItemFieldValueError("This value must be either True or False.") + raise FieldValueError("This value must be either True or False.") ansi_date_re = re.compile(r'^\d{4}-\d{1,2}-\d{1,2}$') -class DateItemField(ItemField): +class DateField(Field): def to_python(self, value): if value is None: return value @@ -55,51 +55,51 @@ class DateItemField(ItemField): return value if not ansi_date_re.search(value): - raise ItemFieldValueError( + raise FieldValueError( "Enter a valid date in YYYY-MM-DD format.") year, month, day = map(int, value.split('-')) try: return datetime.date(year, month, day) except ValueError, e: - raise ItemFieldValueError("Invalid date: %s" % str(e)) + raise FieldValueError("Invalid date: %s" % str(e)) -class DecimalItemField(ItemField): +class DecimalField(Field): def to_python(self, value): if value is None: return value try: return decimal.Decimal(value) except decimal.InvalidOperation: - raise ItemFieldValueError("This value must be a decimal number.") + raise FieldValueError("This value must be a decimal number.") -class FloatItemField(ItemField): +class FloatField(Field): def to_python(self, value): if value is None: return value try: return float(value) except (TypeError, ValueError): - raise ItemFieldValueError("This value must be a float.") + raise FieldValueError("This value must be a float.") -class IntegerItemField(ItemField): +class IntegerField(Field): def to_python(self, value): if value is None: return value try: return int(value) except (TypeError, ValueError): - raise ItemFieldValueError("This value must be an integer.") + raise FieldValueError("This value must be an integer.") -class StringItemField(ItemField): +class StringField(Field): def to_python(self, value): if isinstance(value, basestring): return value if value is None: return value - raise ItemFieldValueError("This field must be a string.") + raise FieldValueError("This field must be a string.") diff --git a/scrapy/trunk/scrapy/contrib_exp/newitem/models.py b/scrapy/trunk/scrapy/contrib_exp/newitem/models.py index add535f9b..a7c6e62df 100644 --- a/scrapy/trunk/scrapy/contrib_exp/newitem/models.py +++ b/scrapy/trunk/scrapy/contrib_exp/newitem/models.py @@ -1,4 +1,4 @@ -from scrapy.contrib_exp.newitem.fields import ItemField +from scrapy.contrib_exp.newitem.fields import Field class Item(object): @@ -12,7 +12,7 @@ class Item(object): def _get_fields(self): return dict(i for i in self.__class__.__dict__.iteritems() \ - if isinstance(i[1], ItemField)) + if isinstance(i[1], Field)) def __setattr__(self, name, value): if not name.startswith('_'):