You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
Creating a markdown cell with the # %% [markdown] jupytext format can cause the notebook to crash if using snippets or adding the comment only after writing %% [markdown].
To Reproduce
Steps to reproduce the behavior:
Open a jupynium file and sync it
Create a markdown cell either with a snippet (e.g. with LuaSnip and nvim-cmp) or by first writing %% [markdown] and then adding # at the start of line.
See error
Expected behavior
A markdown cell should be created in the notebook, as is the case when typing # %% [markdown] manually.
Output when using jupynium command
The output below is when using a snippet. to generate the cell.
One thing I noted is that the line right before the notebook call is
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'CursorMovedI', [1, 4, 4]]
when crashing (both with snippet or when manually adding # after the rest), and
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'CursorMovedI', [1, 1, 1]]
when working. The numbers at the end are different. I thought this might be the cause, though I have no idea what they mean, nor how the Selenium and Jupyter APIs work.
Crashing example
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, [''], 4, 5, 5]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['m'], 4, 5, 5]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['ma'], 4, 5, 5]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['mar'], 4, 5, 5]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['mark'], 4, 5, 5]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['mark/'], 4, 5, 5]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['mark/m'], 4, 5, 5]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['mark/ma'], 4, 5, 5]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['mark/mar'], 4, 5, 5]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['mark/mark'], 4, 5, 5]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['mark/markd'], 4, 5, 5]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['mark/markdo'], 4, 5, 5]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['mark/markdow'], 4, 5, 5]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['mark/markdown'], 4, 5, 5]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['m'], 4, 5, 5]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['mark/markdown'], 4, 5, 5]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, [''], 4, 5, 5]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['# %% [markdown]'], 4, 5, 5]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['# %% [markdown]'], 4, 5, 5]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'CursorMovedI', [1, 4, 4]]
jupynium.buffer: 254 - INFO - Inserting cell 1 from Notebook
jupynium.jupyter_notebook_selenium: 19 - INFO - New markdown (jupytext) cell created below cell 0
jupynium.buffer: 398 - INFO - Converting to markdown cells: [1, 2]
jupynium.cmds.jupynium: 507 - ERROR - Uncaught exception occurred while processing events. Detaching nvim.
Traceback (most recent call last):
File "/home/vandal/.local/pipx/venvs/jupynium/lib/python3.10/site-packages/jupynium/cmds/jupynium.py", line 502, in main
status, rpcrequest_event = process_events(nvim_info, driver)
File "/home/vandal/.local/pipx/venvs/jupynium/lib/python3.10/site-packages/jupynium/events_control.py", line 217, in process_events
prev_lazy_args_per_buf.process_all(nvim_info, driver)
File "/home/vandal/.local/pipx/venvs/jupynium/lib/python3.10/site-packages/jupynium/events_control.py", line 137, in process_all
lazy_args.process(nvim_info, driver, bufnr)
File "/home/vandal/.local/pipx/venvs/jupynium/lib/python3.10/site-packages/jupynium/events_control.py", line 116, in process
process_on_lines_event(nvim_info, driver, bufnr, self.on_lines_args)
File "/home/vandal/.local/pipx/venvs/jupynium/lib/python3.10/site-packages/jupynium/events_control.py", line 546, in process_on_lines_event
nvim_info.jupbufs[bufnr].process_on_lines(
File "/home/vandal/.local/pipx/venvs/jupynium/lib/python3.10/site-packages/jupynium/buffer.py", line 134, in process_on_lines
self._partial_sync_to_notebook(
File "/home/vandal/.local/pipx/venvs/jupynium/lib/python3.10/site-packages/jupynium/buffer.py", line 400, in _partial_sync_to_notebook
driver.execute_script(
File "/home/vandal/.local/pipx/venvs/jupynium/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 500, in execute_script
return self.execute(command, {"script": script, "args": converted_args})["value"]
File "/home/vandal/.local/pipx/venvs/jupynium/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 440, in execute
self.error_handler.check_response(response)
File "/home/vandal/.local/pipx/venvs/jupynium/lib/python3.10/site-packages/selenium/webdriver/remote/errorhandler.py", line 245, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.JavascriptException: Message: TypeError: string is undefined
Stacktrace:
splitLinesAuto<@http://localhost:8888/static/notebook/js/main.min.js?v=bac2262d97e0eab7b445494fe686be11796512a6902a434d05aa653112727106f1684f27b88c5d6
f856ec07bf47f23b510f08badb65d627f757e61eca804345b:774:27
splitLines@http://localhost:8888/static/notebook/js/main.min.js?v=bac2262d97e0eab7b445494fe686be11796512a6902a434d05aa653112727106f1684f27b88c5d6f856e
c07bf47f23b510f08badb65d627f757e61eca804345b:6557:14
Doc.prototype<.setValue<@http://localhost:8888/static/notebook/js/main.min.js?v=bac2262d97e0eab7b445494fe686be11796512a6902a434d05aa653112727106f1684f
27b88c5d6f856ec07bf47f23b510f08badb65d627f757e61eca804345b:6211:36
docMethodOp/<@http://localhost:8888/static/notebook/js/main.min.js?v=bac2262d97e0eab7b445494fe686be11796512a6902a434d05aa653112727106f1684f27b88c5d6f8
56ec07bf47f23b510f08badb65d627f757e61eca804345b:4038:22
CodeMirror.prototype[prop]@http://localhost:8888/static/notebook/js/main.min.js?v=bac2262d97e0eab7b445494fe686be11796512a6902a434d05aa653112727106f168
4f27b88c5d6f856ec07bf47f23b510f08badb65d627f757e61eca804345b:9845:40
TextCell.prototype.set_text@http://localhost:8888/static/notebook/js/main.min.js?v=bac2262d97e0eab7b445494fe686be11796512a6902a434d05aa653112727106f16
84f27b88c5d6f856ec07bf47f23b510f08badb65d627f757e61eca804345b:59692:26
Notebook.prototype.transfer_to_new_cell@http://localhost:8888/static/notebook/js/main.min.js?v=bac2262d97e0eab7b445494fe686be11796512a6902a434d05aa653
112727106f1684f27b88c5d6f856ec07bf47f23b510f08badb65d627f757e61eca804345b:68324:21
Notebook.prototype.to_markdown@http://localhost:8888/static/notebook/js/main.min.js?v=bac2262d97e0eab7b445494fe686be11796512a6902a434d05aa653112727106
f1684f27b88c5d6f856ec07bf47f23b510f08badb65d627f757e61eca804345b:68408:22
Notebook.prototype.cells_to_markdown@http://localhost:8888/static/notebook/js/main.min.js?v=bac2262d97e0eab7b445494fe686be11796512a6902a434d05aa653112
727106f1684f27b88c5d6f856ec07bf47f23b510f08badb65d627f757e61eca804345b:68391:18
@http://localhost:8888/notebooks/Untitled5.ipynb?kernel_name=comm8-plan:2:24
@http://localhost:8888/notebooks/Untitled5.ipynb?kernel_name=comm8-plan:3:8
[I 16:13:52.416 NotebookApp] Starting buffering for 929e72b9-1150-4ee6-9588-49430fe1eaf0:21863c760c7f45509e6789f6d9574497
Working example
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['# %% [markd]'], 0, 1, 1]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'CursorMovedI', [1, 0, 0]]
jupynium.buffer: 258 - INFO - Cell 0 type change to code from Notebook
jupynium.buffer: 391 - INFO - Converting to code cells: [1]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['# %% [markdo]'], 0, 1, 1]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'CursorMovedI', [1, 0, 0]]
jupynium.buffer: 258 - INFO - Cell 0 type change to code from Notebook
jupynium.buffer: 391 - INFO - Converting to code cells: [1]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['# %% [markdow]'], 0, 1, 1]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'CursorMovedI', [1, 0, 0]]
jupynium.buffer: 258 - INFO - Cell 0 type change to code from Notebook
jupynium.buffer: 391 - INFO - Converting to code cells: [1]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['# %% [markdown]'], 0, 1, 1]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'CursorMovedI', [1, 0, 0]]
jupynium.buffer: 258 - INFO - Cell 0 type change to markdown (jupytext) from Notebook
jupynium.buffer: 398 - INFO - Converting to markdown cells: [1]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'CursorMovedI', [1, 0, 0]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['# %% [markdown]', '# '], 0, 1, 2]]
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'CursorMovedI', [1, 1, 1]]
jupynium.buffer: 258 - INFO - Cell 0 type change to markdown (jupytext) from Notebook
jupynium.buffer: 398 - INFO - Converting to markdown cells: [1]
Output of jupynium --version
Jupynium v0.1.2.dev55+g8a1b2be.d20230311
Output of nvim --version
NVIM v0.8.3
Build type: Release
LuaJIT 2.1.0-beta3
Compiled by builduser
Features: +acl +iconv +tui
See ":help feature-compile"
system vimrc file: "$VIM/sysinit.vim"
fall-back for $VIM: "/usr/share/nvim"
Run :checkhealth for more info
The text was updated successfully, but these errors were encountered:
Thanks for reporting. Based on the log, it looks like after creating a cell it wants to set the cell content, and the type of the content is not a string and rater is undefined. It looks like a simple type mismatch issue. Does it only happen with markdown cells though?
I still can't figure out what the exact cause is. Based on the fact that it only happens with Jupytext style markdown separator, it looks like a problem with the implementation of #52 (removing comments for the markdown cells)
Describe the bug
Creating a markdown cell with the
# %% [markdown]
jupytext format can cause the notebook to crash if using snippets or adding the comment only after writing%% [markdown]
.To Reproduce
Steps to reproduce the behavior:
nvim-cmp
) or by first writing%% [markdown]
and then adding#
at the start of line.Expected behavior
A markdown cell should be created in the notebook, as is the case when typing
# %% [markdown]
manually.Output when using
jupynium
commandThe output below is when using a snippet. to generate the cell.
One thing I noted is that the line right before the notebook call is
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'CursorMovedI', [1, 4, 4]]
when crashing (both with snippet or when manually adding
#
after the rest), andjupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'CursorMovedI', [1, 1, 1]]
when working. The numbers at the end are different. I thought this might be the cause, though I have no idea what they mean, nor how the Selenium and Jupyter APIs work.
Crashing example
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, [''], 4, 5, 5]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['m'], 4, 5, 5]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['ma'], 4, 5, 5]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['mar'], 4, 5, 5]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['mark'], 4, 5, 5]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['mark/'], 4, 5, 5]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['mark/m'], 4, 5, 5]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['mark/ma'], 4, 5, 5]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['mark/mar'], 4, 5, 5]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['mark/mark'], 4, 5, 5]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['mark/markd'], 4, 5, 5]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['mark/markdo'], 4, 5, 5]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['mark/markdow'], 4, 5, 5]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['mark/markdown'], 4, 5, 5]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['m'], 4, 5, 5]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['mark/markdown'], 4, 5, 5]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, [''], 4, 5, 5]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['# %% [markdown]'], 4, 5, 5]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['# %% [markdown]'], 4, 5, 5]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'CursorMovedI', [1, 4, 4]] jupynium.buffer: 254 - INFO - Inserting cell 1 from Notebook jupynium.jupyter_notebook_selenium: 19 - INFO - New markdown (jupytext) cell created below cell 0 jupynium.buffer: 398 - INFO - Converting to markdown cells: [1, 2] jupynium.cmds.jupynium: 507 - ERROR - Uncaught exception occurred while processing events. Detaching nvim. Traceback (most recent call last): File "/home/vandal/.local/pipx/venvs/jupynium/lib/python3.10/site-packages/jupynium/cmds/jupynium.py", line 502, in main status, rpcrequest_event = process_events(nvim_info, driver) File "/home/vandal/.local/pipx/venvs/jupynium/lib/python3.10/site-packages/jupynium/events_control.py", line 217, in process_events prev_lazy_args_per_buf.process_all(nvim_info, driver) File "/home/vandal/.local/pipx/venvs/jupynium/lib/python3.10/site-packages/jupynium/events_control.py", line 137, in process_all lazy_args.process(nvim_info, driver, bufnr) File "/home/vandal/.local/pipx/venvs/jupynium/lib/python3.10/site-packages/jupynium/events_control.py", line 116, in process process_on_lines_event(nvim_info, driver, bufnr, self.on_lines_args) File "/home/vandal/.local/pipx/venvs/jupynium/lib/python3.10/site-packages/jupynium/events_control.py", line 546, in process_on_lines_event nvim_info.jupbufs[bufnr].process_on_lines( File "/home/vandal/.local/pipx/venvs/jupynium/lib/python3.10/site-packages/jupynium/buffer.py", line 134, in process_on_lines self._partial_sync_to_notebook( File "/home/vandal/.local/pipx/venvs/jupynium/lib/python3.10/site-packages/jupynium/buffer.py", line 400, in _partial_sync_to_notebook driver.execute_script( File "/home/vandal/.local/pipx/venvs/jupynium/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 500, in execute_script return self.execute(command, {"script": script, "args": converted_args})["value"] File "/home/vandal/.local/pipx/venvs/jupynium/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 440, in execute self.error_handler.check_response(response) File "/home/vandal/.local/pipx/venvs/jupynium/lib/python3.10/site-packages/selenium/webdriver/remote/errorhandler.py", line 245, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.JavascriptException: Message: TypeError: string is undefined Stacktrace: splitLinesAuto<@http://localhost:8888/static/notebook/js/main.min.js?v=bac2262d97e0eab7b445494fe686be11796512a6902a434d05aa653112727106f1684f27b88c5d6 f856ec07bf47f23b510f08badb65d627f757e61eca804345b:774:27 splitLines@http://localhost:8888/static/notebook/js/main.min.js?v=bac2262d97e0eab7b445494fe686be11796512a6902a434d05aa653112727106f1684f27b88c5d6f856e c07bf47f23b510f08badb65d627f757e61eca804345b:6557:14 Doc.prototype<.setValue<@http://localhost:8888/static/notebook/js/main.min.js?v=bac2262d97e0eab7b445494fe686be11796512a6902a434d05aa653112727106f1684f 27b88c5d6f856ec07bf47f23b510f08badb65d627f757e61eca804345b:6211:36 docMethodOp/<@http://localhost:8888/static/notebook/js/main.min.js?v=bac2262d97e0eab7b445494fe686be11796512a6902a434d05aa653112727106f1684f27b88c5d6f8 56ec07bf47f23b510f08badb65d627f757e61eca804345b:4038:22 CodeMirror.prototype[prop]@http://localhost:8888/static/notebook/js/main.min.js?v=bac2262d97e0eab7b445494fe686be11796512a6902a434d05aa653112727106f168 4f27b88c5d6f856ec07bf47f23b510f08badb65d627f757e61eca804345b:9845:40 TextCell.prototype.set_text@http://localhost:8888/static/notebook/js/main.min.js?v=bac2262d97e0eab7b445494fe686be11796512a6902a434d05aa653112727106f16 84f27b88c5d6f856ec07bf47f23b510f08badb65d627f757e61eca804345b:59692:26 Notebook.prototype.transfer_to_new_cell@http://localhost:8888/static/notebook/js/main.min.js?v=bac2262d97e0eab7b445494fe686be11796512a6902a434d05aa653 112727106f1684f27b88c5d6f856ec07bf47f23b510f08badb65d627f757e61eca804345b:68324:21 Notebook.prototype.to_markdown@http://localhost:8888/static/notebook/js/main.min.js?v=bac2262d97e0eab7b445494fe686be11796512a6902a434d05aa653112727106 f1684f27b88c5d6f856ec07bf47f23b510f08badb65d627f757e61eca804345b:68408:22 Notebook.prototype.cells_to_markdown@http://localhost:8888/static/notebook/js/main.min.js?v=bac2262d97e0eab7b445494fe686be11796512a6902a434d05aa653112 727106f1684f27b88c5d6f856ec07bf47f23b510f08badb65d627f757e61eca804345b:68391:18 @http://localhost:8888/notebooks/Untitled5.ipynb?kernel_name=comm8-plan:2:24 @http://localhost:8888/notebooks/Untitled5.ipynb?kernel_name=comm8-plan:3:8
[I 16:13:52.416 NotebookApp] Starting buffering for 929e72b9-1150-4ee6-9588-49430fe1eaf0:21863c760c7f45509e6789f6d9574497
Working example
jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['# %% [markd]'], 0, 1, 1]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'CursorMovedI', [1, 0, 0]] jupynium.buffer: 258 - INFO - Cell 0 type change to code from Notebook jupynium.buffer: 391 - INFO - Converting to code cells: [1] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['# %% [markdo]'], 0, 1, 1]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'CursorMovedI', [1, 0, 0]] jupynium.buffer: 258 - INFO - Cell 0 type change to code from Notebook jupynium.buffer: 391 - INFO - Converting to code cells: [1] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['# %% [markdow]'], 0, 1, 1]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'CursorMovedI', [1, 0, 0]] jupynium.buffer: 258 - INFO - Cell 0 type change to code from Notebook jupynium.buffer: 391 - INFO - Converting to code cells: [1] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['# %% [markdown]'], 0, 1, 1]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'CursorMovedI', [1, 0, 0]] jupynium.buffer: 258 - INFO - Cell 0 type change to markdown (jupytext) from Notebook jupynium.buffer: 398 - INFO - Converting to markdown cells: [1] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'CursorMovedI', [1, 0, 0]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'on_lines', [1, ['# %% [markdown]', '# '], 0, 1, 2]] jupynium.events_control: 195 - INFO - Event from nvim: ['notification', 'CursorMovedI', [1, 1, 1]] jupynium.buffer: 258 - INFO - Cell 0 type change to markdown (jupytext) from Notebook jupynium.buffer: 398 - INFO - Converting to markdown cells: [1]
Output of
jupynium --version
Output of
nvim --version
The text was updated successfully, but these errors were encountered: