code: def get_database(self, database_name=None, username=None, password=None):
          
          if database_name is None:
              database_name = self._database_name
          if database_name is None:
              raise ValueError('No database_name supplied, and no default provided to __init__')
          db = self._connection[database_name]
          if username and password:
              db.authenticate(username, password)
          elif self._parsed_uri.get("username", None):
              if 'authSource' in self._options and self._options['authSource'] is not None:
                  db.authenticate(
                      self._parsed_uri.get("username", None),
                      self._parsed_uri.get("password", None),
                      source=self._options['authSource']
                  )
              else:
                  db.authenticate(
                      self._parsed_uri.get("username", None),
                      self._parsed_uri.get("password", None)
                  )
          return db
docs: Get a pymongo database handle, after authenticating.
  
          Authenticates using the username/password in the DB URI given to
          __init__() unless username/password is supplied as arguments.
  
          :param database_name: (optional) Name of database
          :param username: (optional) Username to login with
          :param password: (optional) Password to login with
          :return: Pymongo database object