From e744e875170a392cb4511171ce99c653102c900a Mon Sep 17 00:00:00 2001 From: Ismael Carnales Date: Tue, 3 Mar 2009 21:18:40 +0000 Subject: [PATCH] code style changes for newitem, and only return fields or special attrs in Item --HG-- extra : convert_revision : svn%3Ab85faa78-f9eb-468e-a121-7cced6da292c%40964 --- .../scrapy/contrib_exp/newitem/models.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/scrapy/trunk/scrapy/contrib_exp/newitem/models.py b/scrapy/trunk/scrapy/contrib_exp/newitem/models.py index 0d38316b2..b102526aa 100644 --- a/scrapy/trunk/scrapy/contrib_exp/newitem/models.py +++ b/scrapy/trunk/scrapy/contrib_exp/newitem/models.py @@ -22,22 +22,25 @@ class Item(Declarative, ScrapedItem): return self.__class__.fields def __setattr__(self, name, value): - if not name.startswith('_'): - if name in self._fields.keys(): - self._values[name] = self._fields[name].assign(value) - else: - raise AttributeError(name) + if name.startswith('_'): + return object.__setattr__(self, name, value) + + if name in self._fields.keys(): + self._values[name] = self._fields[name].assign(value) else: - object.__setattr__(self, name, value) + raise AttributeError(name) def __getattribute__(self, name): - if not name.startswith('_') and name in self._fields.keys(): + if name.startswith('_'): + return object.__getattribute__(self, name) + + if name in self._fields.keys(): try: return self._values[name] except KeyError: return self._fields[name].default else: - return object.__getattribute__(self, name) + raise AttributeError(name) def __repr__(self): """