def do_dots(self, value, *dots):
for dot in dots:<EOL><INDENT>try:<EOL><INDENT>value = getattr(value, dot)<EOL><DEDENT>except AttributeError:<EOL><INDENT>value = value[dot]<EOL><DEDENT>if hasattr(value, '<STR_LIT>'):<EOL><INDENT>value = value()<EOL><DEDENT><DEDENT>return value<EOL>
Evaluate dotted expressions at runtime.