A PyPI package to deliver notifications via your own telegram bot
Project description
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
/newbotas the message to@BotFatherand provide a new name and username for your bot account as per the instructions. @BotFatherwill reply with a unique api token - this is yourBOT_API_TOKEN
(Note: Detailed instructions to create a new bot can be found at Telegram website)
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_TOKENto get yourCHAT_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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa90d915bd36484f2eff53833cd049a1997f3686c1c7cdb0b72285fe5433ce6e
|
|
| MD5 |
7d2898142222b8b0b6666a33a7d9d221
|
|
| BLAKE2b-256 |
3c3a2da41075b476fdf79291539f656583f894de2002c17dae89b320240afd99
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
60c69c1fb143a7775cc63e47095a7ff39735e9a8288a121a6f64c2487cd57067
|
|
| MD5 |
bf4a7df4542e080e3ca290fa6a5f89ff
|
|
| BLAKE2b-256 |
6cc83154d95d36f90f09ab9152889c31d5e724919fa0158f26d256448422dbd8
|