If you want to run a cell that may take a long time, it would be helpful if Jupyter sends a notification when the cell is finished. I implemented the feature by just combining Jupyter’s custom magic and Slack’s Incoming Webhooks.
The following is my implementation. Put it in ~/.ipython/profile_default/startup/nbnotifier.py
to call from Jupyter.
import json
import socket
from IPython.core.magic import register_line_magic
import requests
@register_line_magic
def slack(line):
webhooks_url = '<Incoming Webhooks URL>'
payload = {
'text':
line
if line else 'A cell that was running on *{}* has finished.'.format(
socket.gethostname())
}
r = requests.post(webhooks_url, data=json.dumps(payload))
Note that '<Incoming Webhooks URL>'
should be replaced with yours.
The following shows usage. By writing %slack [message]
at the end of the cell, you can receive notification when it has finished.
Jupyter | Slack | |
---|---|---|
> | ||
> |