<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _override_runner(runner):
 """ Context manager that monkey patches `bonobo.run` function with our current command logic. :param runner: the callable that will handle the `run()` logic. """

    import bonobo

    _get_argument_parser = bonobo.util.environ.get_argument_parser
    _run = bonobo.run
    try:
        # Original get_argument_parser would create or update an argument parser with environment options, but here we
        # already had them parsed so let's patch with something that creates an empty one instead.
        def get_argument_parser(parser=None):
            return parser or argparse.ArgumentParser()

        bonobo.util.environ.get_argument_parser = get_argument_parser
        bonobo.run = runner

        yield runner
    finally:
        # Restore our saved values.
        bonobo.util.environ.get_argument_parser = _get_argument_parser
        bonobo.run = _run