You could try something like this instead
class ChangeAttribute:
implements(IRenderable)
def __init__(self, attr):
self.attr = attr
def getRenderingFor(self, props):
try:
return getattr(props.getBuild().allChanges[0], self.attr)
except:
return ""
And then instead of using WithProperties, you use ChangeAttribute.
Tom
P.S. The code above is untested.