code: def rule(ctxt, name):
      
  
      # If the result of evaluation is in the rule cache, bypass
      # evaluation
      if name in ctxt.rule_cache:
          ctxt.stack.append(ctxt.rule_cache[name])
          return
  
      # Obtain the rule we're to evaluate
      try:
          rule = ctxt.policy[name]
      except KeyError:
          # Rule doesn't exist; log a message and assume False
          log = logging.getLogger('policies')
          log.warn("Request to evaluate non-existant rule %r "
                   "while evaluating rule %r" % (name, ctxt.name))
          ctxt.stack.append(False)
          ctxt.rule_cache[name] = False
          return
  
      # Evaluate the rule, stopping at the set_authz instruction
      with ctxt.push_rule(name):
          rule.instructions(ctxt, True)
  
      # Cache the result
      ctxt.rule_cache[name] = ctxt.stack[-1]
docs: Allows evaluation of another rule while evaluating a rule.
  
      :param ctxt: The evaluation context for the rule.
      :param name: The name of the rule to evaluate.