docs/reference/oauth/async_internals.html
def get_or_create_default_installation_store(client_id: str) ‑> slack_sdk.oauth.installation_store.async_installation_store.AsyncInstallationStore#Expand source code
def get_or_create_default_installation_store(client_id: str) -> AsyncInstallationStore:
store = default_installation_stores.get(client_id)
if store is None:
store = FileInstallationStore(client_id=client_id)
default_installation_stores[client_id] = store
return store
def select_consistent_installation_store(client_id: str,app_store: slack_sdk.oauth.installation_store.async_installation_store.AsyncInstallationStore | None,oauth_flow_store: slack_sdk.oauth.installation_store.async_installation_store.AsyncInstallationStore | None,logger: logging.Logger) ‑> slack_sdk.oauth.installation_store.async_installation_store.AsyncInstallationStore | None#Expand source code
def select_consistent_installation_store(
client_id: str,
app_store: Optional[AsyncInstallationStore],
oauth_flow_store: Optional[AsyncInstallationStore],
logger: Logger,
) -> Optional[AsyncInstallationStore]:
default = get_or_create_default_installation_store(client_id)
if app_store is not None:
if oauth_flow_store is not None:
if oauth_flow_store is default:
# only app_store is intentionally set in this case
return app_store
# if both are intentionally set, prioritize app_store
if oauth_flow_store is not app_store:
logger.warning(warning_installation_store_conflicts())
return oauth_flow_store
else:
# only app_store is available
return app_store
else:
# only oauth_flow_store is available
return oauth_flow_store