Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
jupyterlab-notifications
Advanced tools
Jupyterlab extension to show notebook cell completion browser notifications
Option to get notebook cell completion notifications via browser, slack, mobile, telegram, and many more!
Image of successful notebook cell execution browser notification
Image of failed notebook cell execution browser notification (Available only in >= v0.3.0)
Image of last selected notebook cell execution browser notification (Available only in >= v0.3.0)
Image of mobile phone notifications using ntfy
+ Pushover
Image of slack notification via ntfy + slack_webhook
To test out this extension without any local set-up, please check out the binder link. This will set-up the environment, install the extension, and take you to several demo notebooks for you to play around with to get familiar with the notifications extension.
In the tutorial
directory, there are several example notebooks you can use to test out the notifications extension.
py3_demo_
prefix - Minimal Python3 Notebooks to test out the extension.julia_demo.ipynb
- Minimal Julia Notebook to test out the extension. :warning: Note: The tutorial/julia_demo.ipynb
will not work in the binder environment and will require additional set-up to test the Julia Notebook Kernel locally.jupyterlab-notifications | jupyterlab | Notebook Cell Timing Enabled | Browser Requirements |
---|---|---|---|
>=0.3.0 | >=3.1.0 | Not required | Supports the Notification Web API* |
<0.3.0 | >3.0.0 | Required | Supports the Notification Web API* |
*For Notification Web API support, please check out Browser Compatibility Chart)
For JupyterLab 3.x, the extension can be installed with pip
:
pip install jupyterlab-notifications
or conda
:
conda install -c conda-forge jupyterlab-notifications
Use the following settings to update cell execution time for a notification and information to display in the notification. (in Settings > Advanced Settings Editor
):
{
// Notifications
// jupyterlab-notifications:plugin
// Settings for the Notifications extension
// ****************************************
// Cell Number Type
// Type of cell number to display when the report_cell_number is true. Select from 'cell_index' or ‘cell_execution_count'.
cell_number_type: 'cell_index',
// Enabled Status
// Enable the extension or not.
enabled: true,
// Trigger only for the last selected notebook cell execution.
// Trigger a notification only for the last selected executed notebook cell.
// NOTE: Only Available in version >= v0.3.0
last_cell_only: false,
// Minimum Notebook Cell Execution Time
// The minimum execution time to send out notification for a particular notebook cell (in seconds).
minimum_cell_execution_time: 60,
// Notification Methods
// Option to send a notification with the specified method(s). The available options are 'browser' and 'ntfy'.
notification_methods: ['browser'],
// Report Notebook Cell Execution Time
// Display notebook cell execution time in the notification.
// If last_cell_only is set to true, the total duration of the selected cells will be displayed.
report_cell_execution_time: true,
// Report Notebook Cell Number
// Display notebook cell number in the notification.
report_cell_number: true
}
:warning: For versions < 0.3.0
, Notebook Cell Timing needs to be enabled for Jupyterlab Notifications to work. Please go to Settings -> Advanced Settings Editor -> Notebook and update setting to:
{
// Recording timing
// Should timing data be recorded in cell metadata
recordTiming: true
}
The cell timing doesn't need to be enabled for Jupyterlab >= 3.1 and Jupyterlab notification version >= v0.3.0.
ntfy
You can recieve notifications via ntfy
.
ntfy 2.7.0 documentation https://ntfy.readthedocs.io/en/latest/
ntfy brings notification to your shell. It can automatically provide desktop notifications when long running code executions finish or it can send push notifications to your phone when a specific execution finishes.
ntfy
Install ntfy
.
$ pip install ntfy
You can find configuration instructions for different operating systems in the ntfy official configuration docs
For example, if you want to get notifications via the Pushover mobile app, make sure to create the configuration file in the right location and select pushover
for the backend.
$ vim ~/.config/ntfy/ntfy.yml # Linux
$ vim ~/Library/Application Support/ntfy/ntfy.yml # macOS
Note: You'll need to first install the Pushover mobile app and create an account to generate your user key.
backends:
- pushover
pushover:
user_key: YOUR_PUSHOVER_USER_KEY
Change the notifications settings. Append "ntfy"
into notification_methods
attribute.
browser
implies default conventional method, which uses Webbrowser's Notification API.{
// ...
notification_methods: ['browser', 'ntfy']
// ...
}
Note: You will need NodeJS to build the extension package.
The jlpm
command is JupyterLab's pinned version of
yarn that is installed with JupyterLab. You may use
yarn
or npm
in lieu of jlpm
below.
# Clone the repo to your local environment
# Change directory to the jupyterlab-notifications directory
# Install package in development mode
pip install -e .
# Link your development version of the extension with JupyterLab
jlpm run install:extension
# Rebuild extension Typescript source after making changes
jlpm run build
You can watch the source directory and run JupyterLab at the same time in different terminals to watch for changes in the extension's source and automatically rebuild the extension.
# Watch the source directory in one terminal, automatically rebuilding when needed
jlpm run watch
# Run JupyterLab in another terminal
jupyter lab
With the watch command running, every saved change will immediately be built locally and available in your running JupyterLab. Refresh JupyterLab to load the change in your browser (you may need to wait several seconds for the extension to be rebuilt).
pip uninstall jupyterlab-notifications
FAQs
Jupyterlab extension to show notebook cell completion browser notifications
We found that jupyterlab-notifications demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.