Source code for neuralib.tools.slack_bot

import os

from neuralib.typing import PathLike
from neuralib.util.verbose import fprint
from slack.errors import SlackApiError
from slack.web.client import WebClient

__all__ = ['send_slack_message']


[docs] def send_slack_message(env_file: PathLike, message: str) -> None: """ Send message to slack channel :param env_file: env file with fields ``SLACK_TOKEN`` (i.e., SLACK_TOKEN=xoxb-<USER_SLACK_TOKEN>), and ``CHANNEL_ID`` (i.e., ``#general`` or ``ID``) :param message: message to send :return: """ try: from dotenv import load_dotenv # pyright: ignore[reportMissingImports] load_dotenv(dotenv_path=env_file) try: client = WebClient(token=os.environ['SLACK_TOKEN']) except KeyError: fprint('To get the slack notification, generate token in local machine first', vtype='warning') else: try: client.chat_postMessage( channel=os.environ['CHANNEL_ID'], text=message, ) except SlackApiError as e: print(f"Error sending message: {e.response['error']}") except BaseException as e: # not care, internet disconnected fprint(e, vtype='error')