<jupyter_start><jupyter_text>Jupyterlab Notification Python DemoFor this demo, make sure to update `minimum_cell_execution_time` to 1 second in Settings > Advanced Settings Editor > Notifications.Try running all the cells in notebooks with the prefix `py3_demo_` to see that notebook name and cell execution duration is correct in the notification.<jupyter_code>!sleep 11
print("hello world!")
!sleep 1
print("hello world!")
!sleep 2
print("hello world again!")
!sleep 5
print("bye world!")<jupyter_output>bye world!<jupyter_text>Notification for Failed Notebook Cell ExecutionIf a cell execution fails, the extension will notify you with the failure and share the failure message in the notification as well.<jupyter_code>!sleep 3
raise Exception('hello world!')<jupyter_output><empty_output><jupyter_text>Last Cell Execution Notification OnlyFor this demo, make sure to update `last_cell_only` to true in Settings > Advanced Settings Editor > Notifications.Please select the following three cells and run them at the same time.The extension will notify you after the last cell execution completion and display the total duration of the selected cells. How to select Multiple Cells Shift + J or Shift + Down selects the next sell in a downwards direction.<jupyter_code>!sleep 4
print("hola!")
!sleep 2
print("bonjour!")
!sleep 3
print("yo!")<jupyter_output>yo!<jupyter_text>Notifications are for code cells only.The extensions will only notify you for non-empty code cell executions, so the following `raw | markdown` cells will not produce any notifications.   Hello World<jupyter_code>Hello World<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.0669122160834868, 'fraction_numerical': 0.006752608962553714, 'mean_word_length': 6.546296296296297, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 19, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '4', 'dir': 'jupyter-structured-clean-dedup', 'id': '572455', 'license': 'BSD-3-Clause', 'n_tokens_mistral': 459, 'n_tokens_neox': 435, 'n_words': 197, 'path': 'tutorial/py3_demo.ipynb', 'repo_name': 'hayashiya18/jupyterlab-notifications', 'size': '1629'}