<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def client(self):
 """Return a lazy-instantiated pymongo client. When running with eventlet, connection causes IO and can result in more than one MongoDB client getting instantiatied, so we wrap the code in a semaphore to make sure only one mongodb client is instantiated per SimplDB class. """

        if eventlet:
            with self.client_lock:
                self._set_client()
        else:
            self._set_client()
        return self._client