removed unneeded decorator from Item xD

--HG--
extra : convert_revision : svn%3Ab85faa78-f9eb-468e-a121-7cced6da292c%40966
This commit is contained in:
Ismael Carnales 2009-03-03 21:32:37 +00:00
parent 154dded1de
commit b5b6b0cefc
2 changed files with 7 additions and 11 deletions

View File

@ -21,7 +21,7 @@ class ItemAdaptor(Declarative):
def _get_field_adaptors(self):
fa = {}
for field in self.item_instance._fields.keys():
for field in self.item_instance.fields.keys():
try:
fa[field] = object.__getattribute__(self, field)
except:

View File

@ -17,28 +17,24 @@ class Item(Declarative, ScrapedItem):
def __init__(self):
self._values = {}
@property
def _fields(self):
return self.__class__.fields
def __setattr__(self, name, value):
if name.startswith('_'):
return object.__setattr__(self, name, value)
if name in self._fields.keys():
self._values[name] = self._fields[name].assign(value)
if name in self.fields.keys():
self._values[name] = self.fields[name].assign(value)
else:
raise AttributeError(name)
def __getattribute__(self, name):
if name.startswith('_'):
if name.startswith('_') or name == 'fields':
return object.__getattribute__(self, name)
if name in self._fields.keys():
if name in self.fields.keys():
try:
return self._values[name]
except KeyError:
return self._fields[name].default
return self.fields[name].default
else:
raise AttributeError(name)
@ -47,5 +43,5 @@ class Item(Declarative, ScrapedItem):
Generate the following format so that items can be deserialized
easily: ClassName({'attrib': value, ...})
"""
reprdict = dict((field, getattr(self, field)) for field in self._fields)
reprdict = dict((field, getattr(self, field)) for field in self.fields)
return "%s(%s)" % (self.__class__.__name__, repr(reprdict))