Go to file
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
docs Configure watch/livereload extension and document it. 2015-04-21 18:30:05 -07:00
examples remove widgets 2015-04-22 15:40:58 -07:00
git-hooks
jupyter_notebook Alternative way to do atomic writing 2015-05-04 14:05:57 -07:00
scripts Notebook is a JupyterApp 2015-04-21 15:37:07 -07:00
tools/tests update confined output test notebook 2015-03-29 14:06:13 -07:00
.bowerrc add bower.json from ipython-components 2015-04-21 15:37:09 -07:00
.gitignore add package.json for fetching bower, less 2015-04-21 15:37:09 -07:00
.gitmodules remove submodule 2015-04-21 15:37:09 -07:00
.mailmap fix backward n_pulls, n_issues in github stats 2015-04-03 13:05:18 -07:00
.travis.yml Merge pull request #40 from minrk/rm-widgets 2015-04-27 11:36:27 -07:00
bower.json add mathjax to components 2015-04-21 15:37:12 -07:00
CONTRIBUTING.md package skeleton 2015-04-21 15:37:06 -07:00
COPYING.md package skeleton 2015-04-21 15:37:06 -07:00
Dockerfile Bump less to @<3.0 so setup.py css works 2015-01-21 22:08:39 -05:00
gulpfile.js Configure watch/livereload extension and document it. 2015-04-21 18:30:05 -07:00
MANIFEST.in add bower.json from ipython-components 2015-04-21 15:37:09 -07:00
package.json Configure watch/livereload extension and document it. 2015-04-21 18:30:05 -07:00
README.md Pip install all-in-one 2015-04-29 18:13:29 -05:00
requirements.txt Remove genutils from requirements.txt 2015-04-24 15:40:21 -07:00
setup.cfg package skeleton 2015-04-21 15:37:06 -07:00
setup.py add sphinx to extras 2015-04-21 15:37:14 -07:00
setupbase.py properly update package_data after components changes 2015-04-22 16:19:13 -07:00

Jupyter Notebook

The Jupyter HTML notebook is a web-based notebook environment for interactive computing.

Dev quickstart:

  • Create a virtual env (ie jupyter-dev)
  • ensure that you have node/npm installed (ie brew install node on OS X)
  • Clone this repo and cd into it
  • pip install -r requirements.txt -e .

NOTE: For Debian/Ubuntu systems, if you're installing the system node you need to use the 'nodejs-legacy' package and not the 'node' package.

Launch with:

jupyter notebook

For Ubuntu Trusty:

sudo apt-get install nodejs-legacy npm python-virtualenv python-dev
python2 -m virtualenv ~/.virtualenvs/jupyter_notebook
source ~/.virtualenvs/jupyter_notebook/bin/activate
pip install --upgrade setuptools pip
git clone https://github.com/jupyter/jupyter_notebook.git
cd jupyter_notebook
pip install -r requirements.txt -e .
jupyter notebook