Find and replace (searchandreplace.js) will overwrite the contents of cells even if they are marked as non-editable. Add a check against the cell's is_editable() method to ensure this only happens for editable cells.
* Workaround for wrong errno on socket bind permission errors on Cygwin.
* [ci skip] Add period to comment
Co-authored-by: Steven Silvester <stslve@amazon.com>
This patch prevents creation of a new terminal when handling websocket handshaking request. The default behavior of `terminado.NamedTermManager` is to automatically start a new terminal in response to a websocket handshake, which prevents a terminal from being properly shut down in JupyterLab as reported in this [issue](jupyterlab/jupyterlab#5061).
* This is a potential fix to issue #4669. The fix simply catches the
recusrive symlink error and moves on. It is possibble that the
try/except belongs in the utils but I wanted to limit the scope.
* It looks like too many levels is error number 40 on linux.
* Switch to using errno instead of hardcoding the number.
* Fix spelling, smarter assert methods
* Log unrecognised errors and continue listing directory
* Skip recursive symlink test entirely on Windows
* Fix which test is skipped on Windows
Co-authored-by: Thomas Kluyver <thomas@kluyver.me.uk>
* remove old JS tests, which are already converted to pytest
add test for a markdown heading
* Update markdown.js
remove old test [skip ci]
* remove debug statement
[skip ci]
KernelManager's last_activity attribute is added following the instance's
creation. Culling (independently) uses this attribute and should ensure
it exists prior to its use, else skip the culling check for that instance.
Fixes#5345
* Restore detection of missing terminado package
* Properly handle terminals_enabled config
* Disambiguate terminado availability from web settings
* Further clarity on terminal availability
* Rename terminals_in_use back to terminals_available
* added `--autoreload` flag
When passed, the webapp will watch for any changes to its Python source. On
change, all changed packages will be reimported and the webapp will restart.
Also works on Python source files in Jupyter server extensions. Implemented
using the built in `autoreload` parameter in the constructor of
`tornado.web.Application`.
* updated .gitignore
The modal dialog for entering a custom MIME type for a "Raw NBConvert"-
type cell was broken. This change to the JavaScript code makes the modal
dialog appear correctly again, as well as correctly disabling the
handling of key presses by the cell editor while the dialog is open.
This fixes#3255.
* converted move multiselection to selenium test
* deleted the time library
* Remove move_multiselection
Co-authored-by: Diego Schurch <dschurch@NSL-DSCHURCHs-MacBook-Pro.local>
* Add env variable support for port options
In order to better support use cases relating to containerized environments,
this change adds environment variable support for the `--port` option. Since
anyone setting a specific port probably doesn't want port retry logic enabled,
the `--port-retries` option has also been backed by an env.
Option `--port` will be backed by env `JUPYTER_PORT` and still defaults to `8888`.
Option `--port-retries` will be backed by env `JUPYTER_PORT_RETRIES` and still
defaults to `50`.
The CLI options will override those set via the envrionment, but environment
values override those set via configuration files.
Closes#5212
* Fixup after merge
* Check for invalid characters prior to rename
On Windows platforms, rename operations containing ':' are problematic
since the operation succeeds, but creates an unintended "alternate data
stream" that gives the user the impression their file contents have been
deleted. This change performs cursory validation of the destination
name on platforms in which issues can occur. Currently, non-Windows
systems don't require this level of validation.
Fixes#5190
* Apply changes per review comments
This adds functionality to track a terminal's last activity and
optionally cull terminals that have been inactive for some specified
duration.
Resolves: #3868
Prior to this change, the request timeout for a Gateway request
was synchronized with KERNEL_LAUNCH_TIMEOUT only if KLT
was greater. However, the two are closely associated and KLT
should be adjusted if the configurable request_timeout is greater.
This change ensures that the two values are synchronized to the
greater value. It changes the two configurable timeouts to default
to 40 (to match that of KLT) and removes the 2-second pad,
since that wasn't helpful and only confused the situation.
These changes were prompted by this issue: jupyter/enterprise_gateway#792
This commit uses the approach used in jupyter_server #191 first proposed
by David Brochart. This reduces code duplication and alleviates redundancy
relative to configurable options.
Also, the startup message now includes the version information.
Co-authored-by: David Brochart <david.brochart@gmail.com>
The bug:
When
- the user login for the first file with a token and want to change his/her password
- and if the folder `~/.jupyter` (`jupyter_config_dir()`) does not exist
then the jupyter server will raise a `FileNotFoundError` exception and return a 500 error.
This change tries to fix this bug by ensure the folder exist so that the `config_file` can be opened.