def __makeattr(self, name):
<EOL>target = None<EOL>if '<STR_LIT>' in self.__map__:<EOL><INDENT>target = self.__map__.pop('<STR_LIT>')<EOL>importobj(*target)()<EOL><DEDENT>try:<EOL><INDENT>modpath, attrname = self.__map__[name]<EOL><DEDENT>except KeyError:<EOL><INDENT>if target is not None and name != '<STR_LIT>':<EOL><INDENT>return getattr(self, name)<EOL><DEDENT>raise AttributeError(name)<EOL><DEDENT>else:<EOL><INDENT>result = importobj(modpath, attrname)<EOL>setattr(self, name, result)<EOL>try:<EOL><INDENT>del self.__map__[name]<EOL><DEDENT>except KeyError:<EOL><INDENT>pass  <EOL><DEDENT>return result<EOL><DEDENT>
lazily compute value for name or raise AttributeError if unknown.