Skip to main content

A PyPI package to deliver notifications via your own telegram bot

Project description

PyPI - Downloads PyPI - Version

Logo

Introduction

notipi is a python library to send custom notifications on Telegram and MacOS

Use cases include:

  • Getting notified whenever a long running scripts finishes execution
  • Knowing whenever a milestone is reached during ML / DL trainings

Installation

$ pip install notipi 

Setup

If you wish to use just the MacOS notifications and not Telegram - you don't need anymore steps and start using the library right away. Refer the Usage examples below.

To use Telegram - you would be needing two environment variables: BOT_API_TOKEN and CHAT_ID

To get BOT_API_TOKEN:

  • In the telegram app, initiate conversation with @BotFather (you can also click here).
  • Send /newbot as the message to @BotFather and provide a new name and username for your bot account as per the instructions.
  • @BotFather will reply with a unique api token - this is your BOT_API_TOKEN
    (Note: Detailed instructions to create a new bot can be found at Telegram website)

Logo

To get CHAT_ID:

  • Once a new bot is created, send a dummy message to the bot via Telegram app so that your chat gets assigned an ID.
  • Run the following script with your BOT_API_TOKEN to get your CHAT_ID
from notipi.notipi import get_chat_id
get_chat_id(BOT_API_TOKEN)

This will give the following output:

Your CHAT ID: 1234567890

Once the BOT_API_TOKEN and CHAT_ID are obtained, set the environment variables

export BOT_API_TOKEN=<bot_api_token>
export CHAT_ID=<chat_id>

Usage

Once the required environment variables are in place, you can use notipi in the following ways to send messages via Telegram.
(NOTE: If the environment variables are not set - the messages will be sent only via MacOS notifications by default)

(1) As a regular function

from notipi.notipi import notify

def func():
    for i in range(1000):
        if i%100==0:
            notify(f"Currently at {i}")

(2) As a decorator

from notipi.notipi import notify

@notify
def func():
    for i in range(1000):
        pass

When func() is invoked - you will be notified once it finishes execution

NOTE: Both Approaches (1) and (2) are compatible inside Jupyter Notebook as well

Once func3() is invoked - you will receive two notifications - first one after func1() is processed and second one after func2() is executed.

(3) As a command line tool

$ noticli -c python example.py

A notification will be sent once example.py finishes execution

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

notipi-1.1.1.tar.gz (44.8 kB view details)

Uploaded Source

Built Distribution

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

notipi-1.1.1-py3-none-any.whl (42.7 kB view details)

Uploaded Python 3

File details

Details for the file notipi-1.1.1.tar.gz.

File metadata

  • Download URL: notipi-1.1.1.tar.gz
  • Upload date:
  • Size: 44.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for notipi-1.1.1.tar.gz
Algorithm Hash digest
SHA256 aa90d915bd36484f2eff53833cd049a1997f3686c1c7cdb0b72285fe5433ce6e
MD5 7d2898142222b8b0b6666a33a7d9d221
BLAKE2b-256 3c3a2da41075b476fdf79291539f656583f894de2002c17dae89b320240afd99

See more details on using hashes here.

File details

Details for the file notipi-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: notipi-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 42.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for notipi-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 60c69c1fb143a7775cc63e47095a7ff39735e9a8288a121a6f64c2487cd57067
MD5 bf4a7df4542e080e3ca290fa6a5f89ff
BLAKE2b-256 6cc83154d95d36f90f09ab9152889c31d5e724919fa0158f26d256448422dbd8

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