def METHOD_NAME(self, config: AuthClientPassword) -> OAuth2Session:
    scope: List[str] = self._default_scopes.copy()
    scope.extend(config.scope_list)
    session = OAuth2Session(
        client_id=self._client_id,
        token_endpoint=self._token_endpoint,
        grant_type="password",
        scope=scope,
        default_timeout=AUTH_DEFAULT_TIMEOUT,
    )
    token = session.fetch_token(username=config.username, password=config.password)
    if "refresh_token" not in token:
        _Warnings.auth_no_refresh_token(token["expires_in"])
    return session