jupyterlab-contrib / search-replace

Search and replace accross files
BSD 3-Clause "New" or "Revised" License
23 stars 5 forks source link

Unable to Use Search and Replace with Real Time Collaboration because of No Support for Custom Drives #107

Open BwL1289 opened 8 months ago

BwL1289 commented 8 months ago

Description

The Search and Replace plugin and RTC plugins are not compatible because Search and Replace does not support Custom Drives.

Because Search and replace plugin does not support custom drives, it raises FileNotFoundError: [Errno 2] No such file or directory

See discussions here and here.

This is a Bug Report and a Feature Request

Reproduce

  1. Install search and replace
  2. Install RTC
  3. Try to use search and replace
  4. See error 'Unhandled error'

Expected behavior

Search and Replace and RTC should be able to work together.

Context

2024-02-22T14:44:45.082-06:00[E 2024-02-22 20:44:45.081 ServerApp] Uncaught exception GET /user/my_username/search/RTC:?query=hi&case_sensitive=false&whole_word=false&use_regex=false&max_count=100&exclude=**%2F.ipynb_checkpoints&1708634684909 (10.0.28.207)Copy | [E 2024-02-22 20:44:45.081 ServerApp] Uncaught exception GET /user/my_username/search/RTC:?query=hi&case_sensitive=false&whole_word=false&use_regex=false&max_count=100&exclude=**%2F.ipynb_checkpoints&1708634684909 (10.0.28.207)
-- | --
  | 2024-02-22T14:44:45.082-06:00    HTTPServerRequest(protocol='http', host='064540118126.host.io', method='GET', uri='/user/my_username/search/RTC:?query=hi&case_sensitive=false&whole_word=false&use_regex=false&max_count=100&exclude=**%2F.ipynb_checkpoints&1708634684909', version='HTTP/1.1', remote_ip='10.0.28.207')Copy | HTTPServerRequest(protocol='http', host='064540118126.host.io', method='GET', uri='/user/my_username/search/RTC:?query=hi&case_sensitive=false&whole_word=false&use_regex=false&max_count=100&exclude=**%2F.ipynb_checkpoints&1708634684909', version='HTTP/1.1', remote_ip='10.0.28.207')
  | 2024-02-22T14:44:45.082-06:00    Traceback (most recent call last):Copy | Traceback (most recent call last):
  | 2024-02-22T14:44:45.082-06:00      File "/usr/local/lib/python3.10/dist-packages/tornado/web.py", line 1786, in _executeCopy | File "/usr/local/lib/python3.10/dist-packages/tornado/web.py", line 1786, in _execute
  | 2024-02-22T14:44:45.082-06:00        result = await resultCopy | result = await result
  | 2024-02-22T14:44:45.082-06:00      File "/usr/local/lib/python3.10/dist-packages/jupyterlab_search_replace/handlers.py", line 42, in getCopy | File "/usr/local/lib/python3.10/dist-packages/jupyterlab_search_replace/handlers.py", line 42, in get
  | 2024-02-22T14:44:45.082-06:00        raise eCopy | raise e
  | 2024-02-22T14:44:45.082-06:00      File "/usr/local/lib/python3.10/dist-packages/jupyterlab_search_replace/handlers.py", line 26, in getCopy | File "/usr/local/lib/python3.10/dist-packages/jupyterlab_search_replace/handlers.py", line 26, in get
  | 2024-02-22T14:44:45.082-06:00        r = await self._engine.search(Copy | r = await self._engine.search(
  | 2024-02-22T14:44:45.082-06:00      File "/usr/local/lib/python3.10/dist-packages/jupyterlab_search_replace/search_engine.py", line 191, in searchCopy | File "/usr/local/lib/python3.10/dist-packages/jupyterlab_search_replace/search_engine.py", line 191, in search
  | 2024-02-22T14:44:45.082-06:00        code, output = await SearchEngine.search_taskCopy | code, output = await SearchEngine.search_task
  | 2024-02-22T14:44:45.082-06:00      File "/usr/local/lib/python3.10/dist-packages/jupyterlab_search_replace/search_engine.py", line 110, in _executeCopy | File "/usr/local/lib/python3.10/dist-packages/jupyterlab_search_replace/search_engine.py", line 110, in _execute
  | 2024-02-22T14:44:45.082-06:00        process = await current_loop.run_in_executor(Copy | process = await current_loop.run_in_executor(
  | 2024-02-22T14:44:45.082-06:00      File "/usr/lib/python3.10/concurrent/futures/thread.py", line 58, in runCopy | File "/usr/lib/python3.10/concurrent/futures/thread.py", line 58, in run
  | 2024-02-22T14:44:45.082-06:00        result = self.fn(*self.args, **self.kwargs)Copy | result = self.fn(*self.args, **self.kwargs)
  | 2024-02-22T14:44:45.082-06:00      File "/usr/lib/python3.10/subprocess.py", line 971, in __init__Copy | File "/usr/lib/python3.10/subprocess.py", line 971, in __init__
  | 2024-02-22T14:44:45.082-06:00        self._execute_child(args, executable, preexec_fn, close_fds,Copy | self._execute_child(args, executable, preexec_fn, close_fds,
  | 2024-02-22T14:44:45.082-06:00      File "/usr/lib/python3.10/subprocess.py", line 1863, in _execute_childCopy | File "/usr/lib/python3.10/subprocess.py", line 1863, in _execute_child
  | 2024-02-22T14:44:45.082-06:00        raise child_exception_type(errno_num, err_msg, err_filename)Copy | raise child_exception_type(errno_num, err_msg, err_filename)
  | 2024-02-22T14:44:45.082-06:00    FileNotFoundError: [Errno 2] No such file or directory: '/home/my_username/RTC:'

Screenshot 2024-02-22 at 2 44 59 PM

BwL1289 commented 8 months ago

@fcollonval FWIW (and for whoever else finds this) there's a lot of great (recent) discussion around this topic going on in https://github.com/jupyterlab/jupyter-collaboration/issues/202.