notebook/jupyter_notebook
Thomas Kluyver bdc226a638 Alternative way to do atomic writing
This is a hopefully more robust way of doing atomic writing of a file.

Previously, we wrote a new temporary file on each write, and renamed it
over the target file on success. This is technically neat, but
constantly recreating the file causes problems with some network
filesystems, and with sync tools like Dropbox.

The new approach copies the old file contents to a temporary file,
overwrites the target using standard open() and write() calls, and then
removes the temporary file. In case of a failure during writing, the
temporary file is renamed over the target, which should preserve the old
data.

This way, we're only using a new inode in case of a write failure, which
is hopefully rare, instead of on successful writes.
2015-05-04 14:05:57 -07:00
..
auth Set secure cookie by default if login handler is hit. 2015-04-21 15:37:12 -07:00
base add _sysinfo subset from IPython 2015-04-21 15:37:07 -07:00
edit update dependency imports 2015-04-21 15:37:07 -07:00
files update dependency imports 2015-04-21 15:37:07 -07:00
kernelspecs move IPython.html to jupyter_notebook 2015-04-08 23:04:17 -07:00
nbconvert update dependency imports 2015-04-21 15:37:07 -07:00
notebook update dependency imports 2015-04-21 15:37:07 -07:00
services Alternative way to do atomic writing 2015-05-04 14:05:57 -07:00
static Fix print preview in Firefox 2015-04-29 00:15:49 -05:00
templates 🍰 Added a widget JS deprecation warning! 2015-04-21 15:37:16 -07:00
terminal disable set_default_headers on TermSocket 2015-04-24 13:49:11 -07:00
tests check FILE_ATTRIBUTE_HIDDEN on Windows 2015-04-30 10:12:48 -07:00
tree update dependency imports 2015-04-21 15:37:07 -07:00
__init__.py update dependency imports 2015-04-21 15:37:07 -07:00
__main__.py jupyter_notebook imports 2015-04-08 23:04:21 -07:00
_sysinfo.py add _sysinfo subset from IPython 2015-04-21 15:37:07 -07:00
_version.py add _version.py 2015-04-21 15:37:06 -07:00
allow76.py move IPython.html to jupyter_notebook 2015-04-08 23:04:17 -07:00
jstest.py remove js_prefix for js tests 2015-04-22 15:40:58 -07:00
log.py update dependency imports 2015-04-21 15:37:07 -07:00
nbextensions.py Notebook is a JupyterApp 2015-04-21 15:37:07 -07:00
notebookapp.py 🍰 Added a widget JS deprecation warning! 2015-04-21 15:37:16 -07:00
submodule.py update submodule utility with new paths 2015-04-21 15:37:06 -07:00
utils.py check FILE_ATTRIBUTE_HIDDEN on Windows 2015-04-30 10:12:48 -07:00