notebook icon indicating copy to clipboard operation
notebook copied to clipboard

Find & replace function also replaces text in read-only cells

Open goekce opened this issue 1 year ago • 2 comments
trafficstars

Description

Find & replace function also replaces text in read-only cells

Reproduce

  1. Create a Python notebook
  2. Create two cells with the content a
  3. Click on the first cell
  4. View -> Right sidebar -> show notebook tools
  5. On the notebook tools use Editable to make the first cell read-only
  6. Use Ctrlf and click on ▶ to activate the replace feature
  7. replace a with bb
  8. You will see that both as get replaced even the first cell is read-only

image

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/bin

sys.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.

goekce avatar Jul 25 '24 14:07 goekce