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
$ pip install notipi
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 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_TOKEN
to 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>
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)
from notipi.notipi import notify
def func():
for i in range(1000):
if i%100==0:
notify(f"Currently at {i}")
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.
$ noticli -c python example.py
A notification will be sent once example.py
finishes execution
- Extend compatibility to Windows platforms