(self, source, credentials, connect=False)
Save a set of authentication credentials.

        The credentials are used to login a socket whenever one is created.
        If `connect` is True, verify the credentials on the server first.
Save a set of authentication credentials.
Save a set of authentication credentials .
def _cache_credentials(self, source, credentials, connect=False):
        """Save a set of authentication credentials.

        The credentials are used to login a socket whenever one is created.
        If `connect` is True, verify the credentials on the server first.
        """
        # Don't let other threads affect this call's data.
        all_credentials = self.__all_credentials.copy()

        if source in all_credentials:
            # Nothing to do if we already have these credentials.
            if credentials == all_credentials[source]:
                return
            raise OperationFailure('Another user is already authenticated '
                                   'to this database. You must logout first.')

        if connect:
            server = self._get_topology().select_server(
                writable_preferred_server_selector)

            # get_socket() logs out of the database if logged in with old
            # credentials, and logs in with new ones.
            with server.get_socket(all_credentials) as sock_info:
                sock_info.authenticate(credentials)

        # If several threads run _cache_credentials at once, last one wins.
        self.__all_credentials[source] = credentials
def _cache_credentials ( self , source , credentials , connect = False ) : # Don't let other threads affect this call's data. all_credentials = self . __all_credentials . copy ( ) if source in all_credentials : # Nothing to do if we already have these credentials. if credentials == all_credentials [ source ] : return raise OperationFailure ( 'Another user is already authenticated ' 'to this database. You must logout first.' ) if connect : server = self . _get_topology ( ) . select_server ( writable_preferred_server_selector ) # get_socket() logs out of the database if logged in with old # credentials, and logs in with new ones. with server . get_socket ( all_credentials ) as sock_info : sock_info . authenticate ( credentials ) # If several threads run _cache_credentials at once, last one wins. self . __all_credentials [ source ] = credentials