Minimal reproduction:
>>> from axiom import item, attributes
>>> class Y(item.Item):
... y = attributes.text()
...
>>> from epsilon import spewer
>>> s = spewer.Spewer()
>>> s.toggle(); X(); s.toggle()
Traceback (most recent call last):
File "/home/exarkun/Projects/Divmod/trunk/Axiom/axiom/item.py", line 331, in __repr__
V = atr.reprFor(self)
File "/home/exarkun/Projects/Divmod/trunk/Axiom/axiom/attributes.py", line 287, in reprFor
return repr(self.__get__(oself))
File "/home/exarkun/Projects/Divmod/trunk/Axiom/axiom/attributes.py", line 365, in __get__
st = getattr(oself, 'store') File "/home/exarkun/Projects/Divmod/trunk/Axiom/axiom/item.py", line 292, in get
return self.__store
File "/home/exarkun/Projects/Divmod/trunk/Axiom/axiom/slotmachine.py", line 22, in __get__
raise AttributeError("%r object did not have attribute %r" %(oself.__class__.__name__, self.name))
AttributeError: 'X' object did not have attribute '_Item__store'
Spewer is crazy, so I wouldn't say this is a bug in Item. However, it would be nice if __repr__ worked in all states, so that we could use the Spewer more effectively.