You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
langchain/libs/community/langchain_community/tools/slack/utils.py

43 lines
1.1 KiB
Python

"""Slack tool utils."""
from __future__ import annotations
import logging
import os
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from slack_sdk import WebClient
logger = logging.getLogger(__name__)
def login() -> WebClient:
"""Authenticate using the Slack API."""
try:
from slack_sdk import WebClient
except ImportError as e:
raise ImportError(
"Cannot import slack_sdk. Please install the package with \
`pip install slack_sdk`."
) from e
if "SLACK_BOT_TOKEN" in os.environ:
token = os.environ["SLACK_BOT_TOKEN"]
client = WebClient(token=token)
logger.info("slack login success")
return client
elif "SLACK_USER_TOKEN" in os.environ:
token = os.environ["SLACK_USER_TOKEN"]
client = WebClient(token=token)
logger.info("slack login success")
return client
else:
logger.error(
"Error: The SLACK_BOT_TOKEN or SLACK_USER_TOKEN \
environment variable have not been set."
)
UTC_FORMAT = "%Y-%m-%dT%H:%M:%S%z"
"""UTC format for datetime objects."""