Skip to main content

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

Metadata

Release files for notipi 1.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for notipi 1.1.1
File Size Uploaded
notipi-1.1.1.tar.gz 44.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for notipi 1.1.1
File Interpreter ABI Platform
notipi-1.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 87.6 kB

Release files / notipi-1.1.1.tar.gz

Download URL notipi-1.1.1.tar.gz
Size 44.8 kB
Tags Source
SHA-256 checksum
How to use checksums
aa90d915bd36484f2eff53833cd049a1997f3686c1c7cdb0b72285fe5433ce6e
BLAKE2b-256 checksum
How to use checksums
3c3a2da41075b476fdf79291539f656583f894de2002c17dae89b320240afd99
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.0 CPython/3.12.4

Release files / notipi-1.1.1-py3-none-any.whl

Download URL notipi-1.1.1-py3-none-any.whl
Size 42.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
60c69c1fb143a7775cc63e47095a7ff39735e9a8288a121a6f64c2487cd57067
BLAKE2b-256 checksum
How to use checksums
6cc83154d95d36f90f09ab9152889c31d5e724919fa0158f26d256448422dbd8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.0 CPython/3.12.4

Release history Release notifications | RSS feed

This release

1.1.1 This release

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page