def transaction_guard(f):
    @functools.wraps(f)
    def inner(self, context, *args, **kwargs):
        if context.session.is_active:
            raise RuntimeError(_("Method cannot be called within a "
                                 "transaction."))
        return f(self, context, *args, **kwargs)
    return inner
Does this pattern exactly match a sequence of nodes?
dataset/ETHPy150Open openstack/neutron/neutron/common/utils.py/transaction_guard--crossover with--dataset/ETHPy150Open ctxis/canape/CANAPE.Scripting/Lib/lib2to3/pytree.py/BasePattern.match_seq