twsl / whos-there

The spiritual successor to knockknock for PyTorch Lightning, get notified when your training ends

Home Page:https://twsl.github.io/whos-there/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Who's there?

PyPI - Package Version Conda - Platform Conda (channel only)

Build PyPI - Python Version Dependencies Status

Code style: black Security: bandit Pre-commit Semantic Versions GitHub - License

The spiritual successor to knockknock for PyTorch Lightning, to get a notification when your training is complete or when it crashes during the process with a single callback.

πŸš€ Features

  • Supports E-Mail, Discord, Slack, Teams, Telegram

🎯 Installation

You can install whos-there with pip or poetry or conda.

with pip

pip install -U whos-there

with poetry

poetry add whos-there

with conda

conda install -c conda-forge whos-there

🀯 How to use it

from whos_there.callback import NotificationCallback
from whos_there.senders.debug import DebugSender

trainer = pl.Trainer(
    callbacks=[
        NotificationCallback(senders=[
            # Add your senders here
            DebugSender(),
        ])
    ]
)

E-Mail

Requires your e-mail provider specific SMTP settings.

from whos_there.senders.email import EmailSender
# ...
EmailSender(
    host="smtp.example.de",
    port=587,
    sender_email="from@example.com",
    password="*********",
    recipient_emails=[
        "to1@example.com",
        "to2@example.com",
    ]
)

Discord

Requires your Discord channel's webhook URL.

from whos_there.senders.discord import DiscordSender
# ...
DiscordSender(
    webhook_url="https://discord.com/api/webhooks/XXXXXXXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
)

Slack

Requires your Slack room webhook URL and optionally your user id (if you want to tag yourself or someone else).

from whos_there.senders.slack import SlackSender
# ...
SlackSender(
    webhook_url="https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX",
    channel="channel_name",
    user_mentions=[
        "XXXXXXXX"
    ]
)

Teams

Requires your Team Channel webhook URL.

from whos_there.senders.teams import TeamsSender
# ...
TeamsSender(
    webhook_url="https://XXXXX.webhook.office.com/",
    user_mentions=[
        "twsl"
    ]
)

Telegram

You can also use Telegram Messenger to get notifications. You'll first have to create your own notification bot by following the three steps provided by Telegram here and save your API access TOKEN. Telegram bots are shy and can't send the first message so you'll have to do the first step. By sending the first message, you'll be able to get the chat_id required (identification of your messaging room) by visiting https://api.telegram.org/bot<YourBOTToken>/getUpdates and get the int under the key message['chat']['id'].

from whos_there.senders.telegram import TelegramSender
# ...
TelegramSender(
    chat_id=1234567890,
    token="XXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXX"
)

πŸ›‘ License

License

This project is licensed under the terms of the MIT license. See LICENSE for more details.

πŸ… Credits

This project was generated with πŸš€ Your next Python package needs a bleeding-edge project structure.

Big thanks to knockknock for the idea and code snippets.

About

The spiritual successor to knockknock for PyTorch Lightning, get notified when your training ends

https://twsl.github.io/whos-there/

License:MIT License


Languages

Language:Python 91.8%Language:Dockerfile 8.2%