notebook
notebook copied to clipboard
Find & replace function also replaces text in read-only cells
Description
Find & replace function also replaces text in read-only cells
Reproduce
- Create a Python notebook
- Create two cells with the content
a - Click on the first cell
View->Right sidebar->show notebook tools- On the notebook tools use
Editableto make the first cell read-only - Use Ctrlf and click on ▶ to activate the replace feature
- replace
awithbb - You will see that both
as get replaced even the first cell is read-only
The behavior also exists in Jupyterlab.
Expected behavior
Only the a in the second cell should be replaced.
Context
- Operating System and version: ArchLinux
- Browser and version: Firefox 128
- Jupyter Notebook version: 7.2.1
Troubleshoot Output
Paste the output from running `jupyter troubleshoot` from the command line here. You may want to sanitize the paths in the output. PATH: /home/u/venv/bin /usr/lib/ccache/bin /usr/local/sbin /usr/local/bin /usr/bin /usr/lib/jvm/default/bin /usr/bin/site_perl /usr/bin/vendor_perl /usr/bin/core_perl /home/u/.local/binsys.path: /home/u/venv/bin /usr/lib/python312.zip /usr/lib/python3.12 /usr/lib/python3.12/lib-dynload /home/u/venv/lib/python3.12/site-packages
sys.executable: /home/u/venv/bin/python
sys.version: 3.12.4 (main, Jun 7 2024, 06:33:07) [GCC 14.1.1 20240522]
platform.platform(): Linux-6.9.9-arch1-1-x86_64-with-glibc2.39
which -a jupyter: /home/user/venv/bin/jupyter
pip list: Package Version ------------------------- -------------- anyio 4.4.0 argon2-cffi 23.1.0 argon2-cffi-bindings 21.2.0 arrow 1.3.0 asttokens 2.4.1 async-lru 2.0.4 attrs 23.2.0 Babel 2.15.0 beautifulsoup4 4.12.3 bleach 6.1.0 certifi 2024.7.4 cffi 1.16.0 charset-normalizer 3.3.2 comm 0.2.2 debugpy 1.8.2 decorator 5.1.1 defusedxml 0.7.1 executing 2.0.1 fastjsonschema 2.20.0 fqdn 1.5.1 h11 0.14.0 httpcore 1.0.5 httpx 0.27.0 idna 3.7 ipykernel 6.29.5 ipython 8.26.0 isoduration 20.11.0 jedi 0.19.1 Jinja2 3.1.4 json5 0.9.25 jsonpointer 3.0.0 jsonschema 4.23.0 jsonschema-specifications 2023.12.1 jupyter_client 8.6.2 jupyter_core 5.7.2 jupyter-events 0.10.0 jupyter-lsp 2.2.5 jupyter_server 2.14.2 jupyter_server_terminals 0.5.3 jupyterlab 4.2.4 jupyterlab_pygments 0.3.0 jupyterlab_server 2.27.3 MarkupSafe 2.1.5 matplotlib-inline 0.1.7 mistune 3.0.2 nbclient 0.10.0 nbconvert 7.16.4 nbformat 5.10.4 nest-asyncio 1.6.0 notebook 7.2.1 notebook_shim 0.2.4 overrides 7.7.0 packaging 24.1 pandocfilters 1.5.1 parso 0.8.4 pexpect 4.9.0 pip 24.1.2 platformdirs 4.2.2 prometheus_client 0.20.0 prompt_toolkit 3.0.47 psutil 6.0.0 ptyprocess 0.7.0 pure_eval 0.2.3 pycparser 2.22 Pygments 2.18.0 python-dateutil 2.9.0.post0 python-json-logger 2.0.7 PyYAML 6.0.1 pyzmq 26.0.3 referencing 0.35.1 requests 2.32.3 rfc3339-validator 0.1.4 rfc3986-validator 0.1.1 rpds-py 0.19.1 Send2Trash 1.8.3 setuptools 71.1.0 six 1.16.0 sniffio 1.3.1 soupsieve 2.5 stack-data 0.6.3 terminado 0.18.1 tinycss2 1.3.0 tornado 6.4.1 traitlets 5.14.3 types-python-dateutil 2.9.0.20240316 uri-template 1.3.0 urllib3 2.2.2 wcwidth 0.2.13 webcolors 24.6.0 webencodings 0.5.1 websocket-client 1.8.0
I believe this is a frontend issue. I don't see any change in the command line output nor browser output, so I will not include them. If these are needed nevertheless, please let me know.
Background: I use nbgrader that uses read-only cells for info that is given by the instructor and must not be changed. If the students use find & replace, then data in the read-only data may also be changed. This leads to a situation that is hard to debug.