From 3658acd9dac1dbf25266043ca18e6041118c949b Mon Sep 17 00:00:00 2001 From: Pablo Hoffman Date: Thu, 6 Aug 2009 21:29:40 -0300 Subject: [PATCH] newitem: reverting to use 'default' Field key instead of 'default_factory' --- scrapy/newitem/__init__.py | 10 ++++------ scrapy/tests/test_newitem.py | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/scrapy/newitem/__init__.py b/scrapy/newitem/__init__.py index 2d301826b..ab3f2e283 100644 --- a/scrapy/newitem/__init__.py +++ b/scrapy/newitem/__init__.py @@ -30,7 +30,7 @@ class Item(DictMixin, BaseItem): def __init__(self, *args, **kwargs): self._values = {} - if args or kwargs: # avoid instantiating dict for most common case + if args or kwargs: # avoid creating dict for most common case for k, v in dict(*args, **kwargs).iteritems(): self[k] = v @@ -39,11 +39,9 @@ class Item(DictMixin, BaseItem): return self._values[key] except KeyError: field = self.fields[key] - default_factory = field.get('default_factory') - if default_factory: - return default_factory() - else: - raise KeyError(key) + if 'default' in field: + return field['default'] + raise def __setitem__(self, key, value): if key in self.fields: diff --git a/scrapy/tests/test_newitem.py b/scrapy/tests/test_newitem.py index bd801df78..ac936b779 100644 --- a/scrapy/tests/test_newitem.py +++ b/scrapy/tests/test_newitem.py @@ -44,7 +44,7 @@ class NewItemTest(unittest.TestCase): def test_default_value(self): class TestItem(Item): - name = Field(default_factory=lambda: u'John') + name = Field(default=u'John') i = TestItem() self.assertEqual(i['name'], u'John')