<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def TxKazooClient(reactor, pool, client):
 """Create a client for txkazoo. :param twisted.internet.interfaces.IReactorThreads reactor: The reactor used to interact with the thread pool. :param ThreadPool pool: The thread pool to which blocking calls will be deferred. :param kazoo.client.KazooClient client: The blocking Kazoo client, whose blocking methods will be deferred to the thread pool. :return: An object with a similar interface to the Kazoo client, but returning deferreds for all blocking methods. The actual method calls will be executed in the thread pool. """

    make_thimble = partial(Thimble, reactor, pool)

    wrapper = _RunCallbacksInReactorThreadWrapper(reactor, client)
    client_thimble = make_thimble(wrapper, _blocking_client_methods)

    def _Lock(path, identifier=None):
        """Return a wrapped :class:`kazoo.recipe.lock.Lock` for this client."""
        lock = client.Lock(path, identifier)
        return Thimble(reactor, pool, lock, _blocking_lock_methods)

    client_thimble.Lock = _Lock
    client_thimble.SetPartitioner = partial(_SetPartitionerWrapper,
                                            reactor, pool, client)

    # Expose these so e.g. recipes can access them from the kzclient
    client.reactor = reactor
    client.pool = pool
    client.kazoo_client = client

    return client_thimble