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.4.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.4-py3-none-any.whl (3.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: deco_slack-0.0.4.tar.gz
  • Upload date:
  • Size: 3.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.14.0 Linux/6.11.0-1018-azure

File hashes

Hashes for deco_slack-0.0.4.tar.gz
Algorithm Hash digest
SHA256 f3f437f67baf84ba2995ec85dfde71a4c83feb70877ce673b90d20d7e831cf04
MD5 4bee396dc42fb2a64c6a43906acaf6e3
BLAKE2b-256 f07d8029bfd92217f2fbe4562f5c4ecd60d967fbf1170027859b0c8665c802c4

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for deco_slack-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 7d7e1fb9c60cae2ccbebd8573b1ec309e1fc3cbdb2f761107fb43a1aa5a5bfb0
MD5 885bf8ab4441a966d3421b1c01bf93e5
BLAKE2b-256 0f44a895c517a89e08436c2dd72f5217d4c2311b67e327e93621a2e669be7075

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