Skip to main content

Utility functions to send Slack notifications using slack_sdk.

Project description

py2slack

py2slack provides utility functions to send notifications to Slack using the slack_sdk library.

Installation

Install the package via pip:

pip install py2slack

Configuration

Before using the package, you must provide your Slack credentials and default channel information. To do so, prepare one of the following configuration files in your project root (and add them to your .gitignore to protect sensitive data):

Option 1: Using a .env file

Create a file named .env with the following contents:

SLACK_OAUTH_TOKEN=<Your OAuth token>
SLACK_DEFAULT_CHANNEL=<Slack default channel ID (not the name)>

Note: The .env file requires the python-dotenv library. Install it via pip install python-dotenv if you choose this option.

Option 2: Using a slack_config.json file

Alternatively, create a file named slack_config.json with the following JSON content:

{
    "oauth_token": "<Your OAuth token>",
    "default_channel": "<Slack default channel ID (not the name)>"
}

OAuth Token Setup

To use py2slack, you need to create a Slack App Bot and obtain an OAuth token. Refer to this guide for instructions.
Your Bot must have at least the following token scopes:

  • chat:write – to send messages as your bot.
  • files:write – to upload, edit, and delete files as your bot.
  • groups:read – to view basic information about private channels your bot is added to.

After creating your Bot, make sure to invite it to the Slack channel where you want to send notifications.

Basic Usage

After installing the package and preparing your configuration file, you can send messages as follows:

from py2slack import send_slack

# Send a simple text notification
send_slack("Hello, Slack!")

You can also pass a file or specify a channel by using the additional parameters of the send_slack function. Refer to the function’s documentation for further details.

Automatic Error Handling & Notifications Using the @slack_notify Decorator

py2slack now offers additional functionality to automatically wrap your application's main processing code with error handling and Slack notifications. This can help notify you when your process completes successfully or if an unhandled exception occurs. You can integrate this feature using one of the following approaches:

Wrap your main function with the @slack_notify decorator to automatically send a success notification upon normal completion or an error notification if an exception occurs.

from py2slack import send_slack, slack_notify

@slack_notify
def main():
    # Your main process here
    print("Running main process...")
    # Uncomment the following line to simulate an error
    # raise ValueError("Sample error")

if __name__ == '__main__':
    main()

Requirements

  • slack_sdk: Install with pip install slack_sdk
  • python-dotenv: Required only if you are using a .env file for configuration (pip install python-dotenv)

Notes

  • Configuration: Prepare either the .env file or the slack_config.json file—not both.
  • Security: Ensure that your configuration files (i.e., .env and slack_config.json) are added to your .gitignore to avoid committing sensitive data.
  • Module Import: The package’s __init__.py is set up to allow you to import the send_slack function (and additional utilities) directly:
    from py2slack import send_slack, slack_notify
    

License

This project is licensed under the MIT License. See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py2slack-0.3.2.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py2slack-0.3.2-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file py2slack-0.3.2.tar.gz.

File metadata

  • Download URL: py2slack-0.3.2.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.19

File hashes

Hashes for py2slack-0.3.2.tar.gz
Algorithm Hash digest
SHA256 1a568ff686dc601dce220fa8026f91cadc926c2781c6411f463990023ff50fce
MD5 557894aac451ee8cef5e144b45b1bfe7
BLAKE2b-256 39acbf54d69c86e15e03f6d2f86d846456ce38b1a16a573fa6b6fa7941ba3049

See more details on using hashes here.

File details

Details for the file py2slack-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: py2slack-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 7.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.19

File hashes

Hashes for py2slack-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 feb9b6713c39eeb5dc845b2c268afd9524d018a8e1625c481b8a844cada74123
MD5 8e849d44e035a87456c0ef5ad493bd67
BLAKE2b-256 15930059e74ced2900a9e26e2261365050aaa1084d2e5160916a05cdd8ad59e2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page