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
This commit is contained in:
Ismael Carnales 2009-03-03 21:18:40 +00:00
parent d26b968f51
commit e744e87517
1 changed files with 11 additions and 8 deletions

View File

@ -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):
"""