Skip to main content

deco_slack notifies you if a method has completed successfully or not.

Project description

decoslack

decoslack notifies you via Slack if a method has completed successfully or not.

Description

  • Notify Slack when a process starts, ends normally, or ends abnormally.
  • Each notification can be set on or off.
  • Support dynamic message formatting based on function results or errors.

Configurations

Environment variables to set

  • {DECO_SLACK_PREFIX}SLACK_TOKEN
    • Slack bot token that can be used with chat:write.public scope.
  • {DECO_SLACK_PREFIX}SLACK_CHANNEL
    • Channel name to be notified without # (like notify_xxx not #notify_xxx)
  • DECO_SLACK_PREFIX (optional)
    • Prefix for environment variables.
      • If not set, defaults to "".

Example

from deco_slack import deco_slack


@deco_slack(
    # These parameters are all optional
    start={
        "text": "start text",
        "title": 'start',
        "color": "good"
    },
    success={
        "text": "success text",
        "title": 'success',
        "color": "good"
    },
    error={
        "title": 'error',
        "color": "danger",
        "stacktrace": True # Set True if you need stacktrace in a notification
    },
)
def test1():
    print('test1')


# Dynamic message formatting example
@deco_slack(
    success={
        "text_formatter": lambda result: f"Process completed with result: {result}",
        "title": "Success",
        "color": "good"
    },
    error={
        "text_formatter": lambda e: f"Error occurred: {str(e)}",
        "title": "Error",
        "color": "danger",
        "stacktrace": True
    }
)
def process_data(data):
    result = data * 2
    return result

Advanced Features

Dynamic Message Formatting

You can customize notification messages based on function results or errors using text_formatter and title_formatter:

@deco_slack(
    success={
        "text_formatter": lambda result: f"Process completed with result: {result}",
        "title_formatter": lambda result: f"Success: {result}",
        "color": "good"
    },
    error={
        "text_formatter": lambda e: f"Error details: {str(e)}",
        "color": "danger"
    }
)
def your_function():
    # Your code here
    pass

The formatters receive:

  • success: The function's return value
  • error: The exception object

This allows you to create more informative and context-aware notifications.

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

deco_slack-0.0.5.tar.gz (3.4 kB view details)

Uploaded Source

Built Distribution

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

deco_slack-0.0.5-py3-none-any.whl (3.8 kB view details)

Uploaded Python 3

File details

Details for the file deco_slack-0.0.5.tar.gz.

File metadata

  • Download URL: deco_slack-0.0.5.tar.gz
  • Upload date:
  • Size: 3.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.14.6 Linux/6.17.0-1018-azure

File hashes

Hashes for deco_slack-0.0.5.tar.gz
Algorithm Hash digest
SHA256 49d0c9fda4410e1e4dac04c1f4b2bd578b858289ec311f15656ca050e4b33af2
MD5 671dac3669332f4d63e9acdbebbfe168
BLAKE2b-256 d58df2eecdbc7cf15a1c629ff41938c98a69747117c47cc8bae9bc8e220f4bea

See more details on using hashes here.

File details

Details for the file deco_slack-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: deco_slack-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 3.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.14.6 Linux/6.17.0-1018-azure

File hashes

Hashes for deco_slack-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 1a52218554329a00512d634b3585e8b9857d0950b14f8023d659fa5cb72ee088
MD5 4b407bf6e20fe2f9382a3170ae00d2d2
BLAKE2b-256 87fc0b65dd351709b4abaa5f26a267c67a4a7a60d52756790375fb302a9987e4

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