def evaluate(self, name, variables=None):
        """
        Evaluate a named rule.

        :param name: The name of the rule to evaluate.
        :param variables: An optional dictionary of variables to make
                          available during evaluation of the rule.

        :returns: An instance of
                  ``policies.authorization.Authorization`` with the
                  result of the rule evaluation.  This will include
                  any authorization attributes.
        """

        # Get the rule and predeclaration
        rule = self._rules.get(name)
        default = self._defaults.get(name)

        # Short-circuit if we don't have either
        if rule is None and default is None:
            return authorization.Authorization(False)

        # Marry the attribute defaults
        attrs = {}
        if default:
            attrs.update(default.attrs)
        if rule:
            attrs.update(rule.attrs)

        # Select the rule we'll actually use
        if rule is None:
            rule = default

        # Construct the context
        ctxt = self.context_class(self, attrs, variables or {})

        # Execute the rule
        try:
            with ctxt.push_rule(name):
                rule.instructions(ctxt)
        except Exception as exc:
            # Fail closed
            return authorization.Authorization(False, attrs)

        # Return the authorization result
        return ctxt.authz
def evaluate ( self , name , variables = None ) : rule = self . _rules . get ( name ) default = self . _defaults . get ( name ) if rule is None and default is None : return authorization . Authorization ( False ) attrs = { } if default : attrs . update ( default . attrs ) if rule : attrs . update ( rule . attrs ) if rule is None : rule = default ctxt = self . context_class ( self , attrs , variables or { } ) try : with ctxt . push_rule ( name ) : rule . instructions ( ctxt ) except Exception as exc : return authorization . Authorization ( False , attrs ) return ctxt . authz
Evaluate a named rule.

        :param name: The name of the rule to evaluate.
        :param variables: An optional dictionary of variables to make
                          available during evaluation of the rule.

        :returns: An instance of
                  ``policies.authorization.Authorization`` with the
                  result of the rule evaluation.  This will include
                  any authorization attributes.