parameters: (context, key)
return_statement: return _NOT_FOUND
docstring: Retrieve a key's value from a context item.
  
      Returns _NOT_FOUND if the key does not exist.
  
      The ContextStack.get() docstring documents this function's intended behavior.
docstring_summary: Retrieve a key's value from a context item.
docstring_tokens: Retrieve a key s value from a context item .
function: def _get_value(context, key):
      """
      Retrieve a key's value from a context item.
  
      Returns _NOT_FOUND if the key does not exist.
  
      The ContextStack.get() docstring documents this function's intended behavior.
  
      """
      if isinstance(context, dict):
          # Then we consider the argument a "hash" for the purposes of the spec.
          #
          # We do a membership test to avoid using exceptions for flow control
          # (e.g. catching KeyError).
          if key in context:
              return context[key]
      elif type(context).__module__ != _BUILTIN_MODULE:
          # Then we consider the argument an "object" for the purposes of
          # the spec.
          #
          # The elif test above lets us avoid treating instances of built-in
          # types like integers and strings as objects (cf. issue #81).
          # Instances of user-defined classes on the other hand, for example,
          # are considered objects by the test above.
          try:
              attr = getattr(context, key)
          except AttributeError:
              # TODO: distinguish the case of the attribute not existing from
              #   an AttributeError being raised by the call to the attribute.
              #   See the following issue for implementation ideas:
              #     http://bugs.python.org/issue7559
              pass
          else:
              # TODO: consider using EAFP here instead.
              #   http://docs.python.org/glossary.html#term-eafp
              if callable(attr):
                  return attr()
              return attr
  
      return _NOT_FOUND
function_tokens: def _get_value ( context , key ) : if isinstance ( context , dict ) : # Then we consider the argument a "hash" for the purposes of the spec. # # We do a membership test to avoid using exceptions for flow control # (e.g. catching KeyError). if key in context : return context [ key ] elif type ( context ) . __module__ != _BUILTIN_MODULE : # Then we consider the argument an "object" for the purposes of # the spec. # # The elif test above lets us avoid treating instances of built-in # types like integers and strings as objects (cf. issue #81). # Instances of user-defined classes on the other hand, for example, # are considered objects by the test above. try : attr = getattr ( context , key ) except AttributeError : # TODO: distinguish the case of the attribute not existing from #   an AttributeError being raised by the call to the attribute. #   See the following issue for implementation ideas: #     http://bugs.python.org/issue7559 pass else : # TODO: consider using EAFP here instead. #   http://docs.python.org/glossary.html#term-eafp if callable ( attr ) : return attr ( ) return attr return _NOT_FOUND