<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def with_single_transaction(resource_name):
 """a class decorator for Crontabber Apps. This decorator will give a class a _run_proxy method that passes a databsase connection as a context manager into the CronApp's 'run' method. The run method may then use the connection at will knowing that after if 'run' exits normally, the connection will automatically be commited. Any abnormal exit from 'run' will result in the connnection being rolledback. In order for this dectorator to function properly, it must be used in conjunction with previous dectorator, "with_transactional_resource" or equivalent. This decorator depends on the mechanims added by that decorator. """

    transaction_executor_attr_name = "%s_transaction_executor" % resource_name

    def class_decorator(cls):
        def _run_proxy(self, *args, **kwargs):
            getattr(self, transaction_executor_attr_name)(
                self.run,
                *args,
                **kwargs
            )
        cls._run_proxy = _run_proxy
        return cls
    return class_decorator