I just updated my trunk only to find several scripts not working properly
and acting strangely. I thought it was a change made to MSSQL, but I have
narrowed down the problem to revision 1980 titled, 'many semplifications'. A
change made to storage.py's __getattr__() function is causing the problem.
The old function used to read:
def __getattr__(self, key):
if key in self:
return self[key]
else:
return None
That means that if you create a new Storage object like so:
data = Storage()
data.foo = 'bar'
And you tried to access a field that didn't exist:
return data.some_field
This would return None. However, the new __getattr__ now reads:
def __getattr__(self,key):
if not key in self:
self[key] = Storage()
return self[key]
So the same exact code would return <Storage {}> instead of None.
This is causing a lot of problems for me, as I rely on the Storage object
throughout my application.