def Lookup(self, name):
    if name == '@':
      return self.stack[-1].context

    parts = name.split('.')
    value = self._LookUpStack(parts[0])

    # Now do simple lookups of the rest of the parts
    for part in parts[1:]:
      try:
        value = value[part]
      except (KeyError, TypeError):  # TypeError for non-dictionaries
        return self._Undefined(part)

    return value
Output and count a warning.  Suppress duplicate warnings.
dataset/ETHPy150Open cloudbuilders/radioedit/jsontemplate.py/_ScopedContext.Lookup--crossover with--dataset/ETHPy150Open benoitc/restkit/doc/sitemap_gen.py/Output.Warn