Code Monkey home page Code Monkey logo

notebook's Introduction

Jupyter Notebook

Github Actions Status Documentation Status Binder Gitpod

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

Jupyter notebook example

Maintained versions

We maintain the two most recently released major versions of Jupyter Notebook, Classic Notebook v6 and Notebook v7. Notebook v5 is no longer maintained. All Notebook v5 users are strongly advised to upgrade to Classic Notebook v6 as soon as possible.

Upgrading to Notebook v7 may require more work, if you use custom extensions, as extensions written for Notebook v5 or Classic Notebook v6 are not compatible with Notebook v7.

Notebook v7

The newest major version of Notebook is based on:

  • JupyterLab components for the frontend
  • Jupyter Server for the Python server

This represents a significant change to the jupyter/notebook code base.

To learn more about Notebook v7: https://jupyter.org/enhancement-proposals/79-notebook-v7/notebook-v7.html

Classic Notebook v6

Maintenance and security-related issues only are now being addressed in the 6.5.x branch. It depends on nbclassic for the HTML/JavaScript/CSS assets.

New features and continuous improvement is now focused on Notebook v7 (see section above).

If you have an open pull request with a new feature or if you were planning to open one, we encourage switching over to the Jupyter Server and JupyterLab architecture, and distribute it as a server extension and / or JupyterLab prebuilt extension. That way your new feature will also be compatible with the new Notebook v7.

Jupyter notebook, the language-agnostic evolution of IPython notebook

Jupyter notebook is a language-agnostic HTML notebook application for Project Jupyter. In 2015, Jupyter notebook was released as a part of The Big Split™ of the IPython codebase. IPython 3 was the last major monolithic release containing both language-agnostic code, such as the IPython notebook, and language specific code, such as the IPython kernel for Python. As computing spans across many languages, Project Jupyter will continue to develop the language-agnostic Jupyter notebook in this repo and with the help of the community develop language specific kernels which are found in their own discrete repos.

Installation

You can find the installation documentation for the Jupyter platform, on ReadTheDocs. The documentation for advanced usage of Jupyter notebook can be found here.

For a local installation, make sure you have pip installed and run:

pip install notebook

Usage - Running Jupyter notebook

Running in a local installation

Launch with:

jupyter notebook

Running in a remote installation

You need some configuration before starting Jupyter notebook remotely. See Running a notebook server.

Development Installation

See CONTRIBUTING.md for how to set up a local development installation.

Contributing

If you are interested in contributing to the project, see CONTRIBUTING.md.

Community Guidelines and Code of Conduct

This repository is a Jupyter project and follows the Jupyter Community Guides and Code of Conduct.

Resources

About the Jupyter Development Team

The Jupyter Development Team is the set of all contributors to the Jupyter project. This includes all of the Jupyter subprojects.

The core team that coordinates development on GitHub can be found here: https://github.com/jupyter/.

Our Copyright Policy

Jupyter uses a shared copyright model. Each contributor maintains copyright over their contributions to Jupyter. But, it is important to note that these contributions are typically only changes to the repositories. Thus, the Jupyter source code, in its entirety is not the copyright of any single person or institution. Instead, it is the collective copyright of the entire Jupyter Development Team. If individual contributors want to maintain a record of what changes/contributions they have specific copyright on, they should indicate their copyright in the commit message of the change, when they commit the change to one of the Jupyter repositories.

With this in mind, the following banner should be used in any source code file to indicate the copyright and license terms:

# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.

notebook's People

Contributors

blink1073 avatar bollwyvl avatar brichet avatar captainsafia avatar carreau avatar chronitis avatar dependabot[bot] avatar ellisonbg avatar fperez avatar github-actions[bot] avatar gnestor avatar ivanov avatar jakirkham avatar jasongrout avatar jdfreder avatar jhamrick avatar joshuazeltser avatar jtpio avatar kevin-bates avatar mgeier avatar minrk avatar mpacer avatar parente avatar pre-commit-ci[bot] avatar rgbkrk avatar ssanderson avatar sylvaincorlay avatar takluyver avatar willingc avatar zsailer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

notebook's Issues

requirements.txt missing terminado

(ipn)carl@twist:~/src/jupyter_notebook$ jupyter notebook
Traceback (most recent call last):
...
pkg_resources.DistributionNotFound: terminado>=0.3.3

pip install terminado
seems to fix it.

support mimebundles

@minrk opened ipython/ipython#7824

msgspec 5 uses mimebundles in a few new places (pager, inspect_reply), but the mimebundle code in OutputArea still needs to be pulled out in order to be re-used in these places. The new mime-bundle areas only handle text/plain as of 3.0.

dependecy version check fail simplegeneric>0.8

In a virtualenvironment following the installation instructions after successful install
I try to run

jupyther notebook

and get the error:

Traceback (most recent call last):
  File "/home/meuser/.virtualenvs/jupyter-dev/bin/jupyter-notebook", line 4, in <module>
    __import__('pkg_resources').require('jupyter-notebook==4.0.0.dev0')
  File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 2944, in <module>
    def _initialize(g):
  File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 563, in _build_master
    return cls._build_from_requirements(__requires__)
  File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 576, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 755, in resolve
    raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: simplegeneric>0.8

This leads me to belive that simplegeneric is not installed but running:

pip list

gives

backports.ssl-match-hostname (3.4.0.2)
certifi (2015.4.28)
decorator (3.4.2)
ipykernel (4.0.0.dev0, /home/meuser/.virtualenvs/jupyter-dev/src/ipykernel)
ipython (4.0.0.dev0, /home/meuser/.virtualenvs/jupyter-dev/src/ipython)
ipython-genutils (0.1.0)
Jinja2 (2.7.3)
jsonschema (2.4.0)
jupyter-client (4.0.0.dev0, /home/meuser/.virtualenvs/jupyter-dev/src/jupyter-client)
jupyter-core (4.0.0.dev0, /home/meuser/.virtualenvs/jupyter-dev/src/jupyter-core)
jupyter-notebook (4.0.0.dev0, /home/meuser/projects/pyCon_Sweden_2015/jupyter_notebook)
MarkupSafe (0.23)
mistune (0.5.1)
nbconvert (4.0.0.dev0, /home/meuser/.virtualenvs/jupyter-dev/src/nbconvert)
nbformat (4.0.0.dev0, /home/meuser/.virtualenvs/jupyter-dev/src/nbformat)
path.py (7.3)
pexpect (3.3)
pickleshare (0.5)
pip (6.1.1)
ptyprocess (0.4)
Pygments (2.0.2)
pyzmq (14.6.0)
setuptools (8.2)
simplegeneric (0.8.1)
terminado (0.5)
tornado (4.1)
traitlets (4.0.0.dev0, /home/meuser/.virtualenvs/jupyter-dev/src/traitlets)
virtualenvwrapper (4.3.1)

I also tried installing simplegeneric 0.8 but without luck.
Any help would be appreciated

Non-escaped ANSI sequence.

!pip3 install scipy in a notebook :

Collecting scipy
  Downloading scipy-0.15.1-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (19.0MB)
    100% |████████████████████████████████| 19.0MB 26kB/s 
�[?25hInstalling collected packages: scipy
Successfully installed scipy-0.15.1

see the [?25h, github show an extra non-viewable character before the [ so here is a screenshot:

screen shot 2015-05-15 at 10 12 52

Notebook file list shows files with "hidden" attribute set on Windows

Starting a Jupyter notebook on my home directory on Windows, I see a bunch of files that have the "hidden" attribute set on Windows (like user registry files, etc.). Given that the likelihood of needing to open these hidden files in a notebook is very small, it would be nice if they were also hidden by default, so as not to needlessly pollute the list of files in Windows.

Export notebooks from browser

Hi
I just tried to export a notebook to .py from my browser
I encountered 2 problems
1: I needed mistune - I have installed it now but it would be helpful if this could be displayed as an optional add on through the interface. If I was offline I'd be stuck :/
2: And when I did export to .py it actually made a .py.html file so it was a faff to read.
I just want to run the notebook basically using cProfile.

If this could be improved it would really boast the functionality thanks ):

Installation Issue

I'm using Ubuntu trusty. I executed all the commands and pip seemed to install everything in requirements.txt fine. However I get the following error when executing jupyter notebook

  File "/home/alex/.virtualenvs/jupyter_notebook/bin/jupyter-notebook", line 6, in 
    exec(compile(open(__file__).read(), __file__, 'exec'))
  File "/home/alex/jupyter_notebook/scripts/jupyter-notebook", line 3, in 
    from jupyter_notebook.notebookapp import main
  File "/home/alex/jupyter_notebook/jupyter_notebook/notebookapp.py", line 49, in 
    from tornado import web
  File "/home/alex/.virtualenvs/jupyter_notebook/lib/python2.7/site-packages/tornado/web.py", line 63, in 
    import hmac
  File "/home/alex/anaconda/lib/python2.7/hmac.py", line 8, in 
    from operator import _compare_digest as compare_digest
ImportError: cannot import name _compare_digest

Invalid pager payload can break the notebook

If a kernel sends pager output like msgspec 4, without a mimebundle (IRkernel/IRkernel#112), the notebook gets in a state where you can't execute any more cells. This is a bug in IRkernel, but it shouldn't completely break the notebook UI.

From Firefox's JS Console when seeing the error:

Object { fileName: "http://localhost:8888/static/base/js/utils.js", lineNumber: 697, columnNumber: 18, stack: "WrappedError@http://localhost:8888/static/base/js/utils.js:697:19
reject/<@http://localhost:8888/static/base/js/utils.js:776:33
", message: "Couldn't process kernel message", error_stack: Array[2] } utils.js:777:21

Object { fileName: "http://localhost:8888/static/base/js/utils.js", lineNumber: 697, columnNumber: 18, stack: "WrappedError@http://localhost:8888/static/base/js/utils.js:697:19
reject/<@http://localhost:8888/static/base/js/utils.js:776:33
", message: "Couldn't process kernel message", error_stack: Array[7] } utils.js:777:21

Object { fileName: "http://localhost:8888/static/base/js/utils.js", lineNumber: 697, columnNumber: 18, stack: "WrappedError@http://localhost:8888/static/base/js/utils.js:697:19
reject/<@http://localhost:8888/static/base/js/utils.js:776:33
", message: "Couldn't process kernel message", error_stack: Array[7] } utils.js:777:21

Object { fileName: "http://localhost:8888/static/base/js/utils.js", lineNumber: 697, columnNumber: 18, stack: "WrappedError@http://localhost:8888/static/base/js/utils.js:697:19
reject/<@http://localhost:8888/static/base/js/utils.js:776:33
", message: "Couldn't process kernel message", error_stack: Array[7] } utils.js:777:21

Object { fileName: "http://localhost:8888/static/base/js/utils.js", lineNumber: 697, columnNumber: 18, stack: "WrappedError@http://localhost:8888/static/base/js/utils.js:697:19
reject/<@http://localhost:8888/static/base/js/utils.js:776:33
", message: "Couldn't process kernel message", error_stack: Array[7] } utils.js:777:21

Object { fileName: "http://localhost:8888/static/base/js/utils.js", lineNumber: 697, columnNumber: 18, stack: "WrappedError@http://localhost:8888/static/base/js/utils.js:697:19
reject/<@http://localhost:8888/static/base/js/utils.js:776:33
", message: "Couldn't process kernel message", error_stack: Array[7] }

help, the pager, and keyboard shortcuts

currently calling help(some_function) in the R and Python kernels outputs a helppage via normal output mechanisms (inline), which doesn’t fit well to the usual quick-and-volatile access to help pages users want.

it woule be awesome to fix #1135, and introduce a keyboard shortcut (e.g. F1) which sends a help request. help requests are defined that they receive a variable name or string and return a mimebundle which then is displayed in the pager.

Missing .py import as .ipynb

In the old notebook one could import a .py file as a notebook by dragging it into the list of existing notebooks in the folder. If the .py contained special markup for text cells etc it was possible to import it as a multi-cell ipynb. Now it is just possible to import the .py into the folder in that way, without converting it to a notebook or splitting cells.
This feature was very important to me because I used it to compare several versions of my notebooks by exporting the .py files, doing a diff or merge on them, and reimporting the results as a new notebook.

Building image from Dockerfile fails

I recently tried building from the most recent Dockerfile as of this commit (89380e4) on master, but I run into the following failure:

Unpacking /srv/ipython
  Running setup.py (path:/tmp/pip_build_root/ipython/setup.py) egg_info for package ipython
    Traceback (most recent call last):
      File "<string>", line 17, in <module>
    IOError: [Errno 2] No such file or directory: '/tmp/pip_build_root/ipython/setup.py'
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

  File "<string>", line 17, in <module>

IOError: [Errno 2] No such file or directory: '/tmp/pip_build_root/ipython/setup.py'

----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /tmp/pip_build_root/ipython
Storing debug log for failure in /root/.pip/pip.log
INFO[13453] The command [/bin/sh -c pip2 install file:///srv/ipython#egg=ipython[all]] returned a non-zero code: 1 

This is as far as I get. Resolution kindly appreciated.

Rpy/rmagic problem: ReferenceError: marked is not defined "ipython notebook"

Had some older notebooks. Updated to the latest IPython, and so am now into Jupyter. Opened up some notebooks and was surprised to see warnings about lack of backward compatibility. Oh well. But when I opened the notebooks with rmagic in them, I was even more surprised to see the notebooks could be opened. I got this error:

ReferenceError: marked is not defined "ipython notebook"

and a blank notebook. Thanks goodness I didn't save the blank notebook, or the data would have been gone!

Is this a known problem? Now what?

Support display of assignment result (for didactic resons)

Imagine the following situation: somewhere in my notebook full of nontrivial math I want to solve an equation. I want the solution to be stored in a variable and I want to display the solution for better understandability of what is going on.

Until now I write in a cell:

sol = sympy.solve(eqn, var)
sol

This requires the extra line sol.

In a teaching context (especially when not much experience with the used language (e.g. Python) can be assumed) it is often useful to display many intermediate results. However this causes a big amount of 'extra lines' which consume space, typing time and potentially reduce the clarity of the document.
And those lines contradict the programming principle "Don repeat yourself!".

I thus suggest the following feature:

If the line contains a special comment like e.g.#: and an variable assignment, then the result of the assignment is displayed as output of the cell.

The example above would then read:

sol = sympy.solve(eqn, var) #:

but also cause the content of sol to be displayed.

This feature could also be extended to trigger the display of more than the last result from one cell.

sol1 = sympy.solve(eqn1, var) #:
sol2 = sympy.solve(eqn2, var) #:

Obviously the details are up do discussion, but I am convinced that the clarity and thus the "didactic value" of notebooks would benefit.

Update git hooks

The git hooks still refer to IPython/html, and to invoke etc.

UI doesn't render if custom.js missing

We load custom/custom.js using require along with all of our own modules, and page.show() is called in the success callback for that require call. So if there's a 404 on custom.js, you're left with a blank page, and only a message at the JS console says what the problem is.

We should load custom.js separately, since it doesn't matter if it's not there.

It would also be good to have something more informative than a blank page if something fails to load, but that's not the focus of this issue.

Improve keyboard shortcut accessibility

The keyboard shortcut are really useful, but because they're not very standard (not many other apps do or can share shortcuts with these notebooks, because they're so different), they're hard to remember.

Two ideas to help make keyboard shortcuts more learnable:

  • Add shortcut hints to all menu items and tooltips. Similar to most desktop applications.
  • Add a filter bar to the help > keyboard shortcuts dialogue, such that if you type a few letters, the dialogue filters out all items that don't contain that string.

missing js files

following the steps here:
https://github.com/jupyter/jupyter_notebook#jupyter-notebook
Dev quickstart:

I see:

(jup)carl@twist:~/src/jupyter_notebook$ jupyter notebook
[I 22:45:35.585 NotebookApp] Serving notebooks from local directory: /home/carl/src/jupyter_notebook
[I 22:45:35.585 NotebookApp] 0 active kernels 
[I 22:45:35.585 NotebookApp] The IPython Notebook is running at: http://localhost:8888/
[I 22:45:35.585 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

(process:23904): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
[E 22:45:35.848 NotebookApp] Could not open static file ''
[W 22:45:36.028 NotebookApp] 404 GET /static/components/jquery-ui/themes/smoothness/jquery-ui.min.css (::1) 14.14ms referer=http://localhost:8888/tree
[W 22:45:36.029 NotebookApp] 404 GET /static/style/style.min.css (::1) 0.66ms referer=http://localhost:8888/tree
[W 22:45:36.030 NotebookApp] 404 GET /static/components/es6-promise/promise.min.js (::1) 0.78ms referer=http://localhost:8888/tree
[W 22:45:36.032 NotebookApp] 404 GET /static/components/requirejs/require.js (::1) 0.93ms referer=http://localhost:8888/tree

trying setup.py:

(jup)carl@twist:~/src/jupyter_notebook$ python setup.py install
running install
running build
running build_py
running jsversion
running css
running js
npm unavailable
Failed to run bower: [Errno 2] No such file or directory
You can install js dependencies with `npm install`
rebuilding css and sourcemaps failed (not a problem)
[Errno 2] No such file or directory
checking package data
Traceback (most recent call last):
  File "setup.py", line 187, in <module>
    main()
  File "setup.py", line 184, in main
    setup(**setup_args)
  File "/usr/lib/python2.7/distutils/core.py", line 151, in setup
    dist.run_commands()
  File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "/usr/lib/python2.7/distutils/command/install.py", line 601, in run
    self.run_command('build')
  File "/usr/lib/python2.7/distutils/cmd.py", line 326, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "/usr/lib/python2.7/distutils/command/build.py", line 128, in run
    self.run_command(cmd_name)
  File "/usr/lib/python2.7/distutils/cmd.py", line 326, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "/home/carl/src/jupyter_notebook/setupbase.py", line 450, in run
    command.run(self)
  File "/home/carl/src/jupyter_notebook/setupbase.py", line 193, in run
    check_package_data(self.package_data)
  File "/home/carl/src/jupyter_notebook/setupbase.py", line 183, in check_package_data
    assert os.path.exists(path), "Missing package data: %s" % path
AssertionError: Missing package data: jupyter_notebook/static/components/backbone/backbone-min.js

js build tool.

Would a gulp-file, or any other js-based tool that is usefull be accepted here ?
Something like watching js/css file and build or are we still in a everything-should-be-in-setup.py ?

Should symlink option in nbextensions API fall back to copy?

install_nbextension() takes a symlink= boolean parameter, which instructs it to symlink the extension rather than copying it. In most cases this will fail on Windows, and the docstring says as much.

If symlink fails, should it automatically fall back on copying (the default without symlink=True)?

In favour: this is what most extensions probably want, and if we don't have a fallback, they have to have that fallback themselves.

Against: some extensions may rely on it actually making a symlink (e.g. symlink a directory into nbextensions, then change the contents of that directory). Automatic fallbacks make it harder to know what's really happening.

From ipython/ipython#8440

newer nb/nbviewer does not display plot from R kernel (but nb 3.0 does)

The following notebooks displays a plot when I open them in a local notebook server (v3.0, chrome, win7), but not in nbviewer:

According to IRkernel/IRkernel#89 (comment) it also does not display in a notebook server v3.1 and v4-dev

Not sure what's the problem here: does the R kernel has to split the lines as the python kernel does it? The display_data spec is kind of silent how to format the data: https://ipython.org/ipython-doc/dev/development/messaging.html#display-data

CC: @randy3k (original bugreport)

Move cell keyboard shortcut disappeared

Hello,

I can't find keyboard shortcut for moving cell in Jupyter. I have long notebooks (like 100+ cells) and moving cells by mouse clicking on menu is unbearable...

Is there a reason for disabling this future? It used to be ctrl+k,j.

Paste into Jupyter terminal?

Is there any way to paste text into the Jupyter terminal?

On chrome I'm able to copy from the terminal no problem, but can't figure out how to get text in.

The terminal is quite handy, but being unable to paste in snippets of text makes it difficult to execute larger commands. I may just not have been able to figure out how to do it.

Support `%edit` in the notebook

Now that we have a text editor in the notebook UI, we can almost make %edit work in the notebook.

A %edit command is sent as a payload with an absolute path (so, in the Qt console, it assumes you're on the same system as the kernel). The only missing bit to translate the path to a URL is knowledge of the root directory for the notebook server. If the frontend knew this, it could build the URL to edit that file, and open a new tab or an iframe to do so.

This touches again on the issue of how to deal with kernels and servers running on different hosts.

improved completions with type hinting

The autocomplete-plus package for the Atom editor (recently bundled into Atom) shows how powerful types in autocomplete can be.

atom completions

Something similar would be a huge boon to Jupyter. Instead of just showing text matches for variables in the running kernel (already very powerful!), show what they are: a variable of type String, a function that takes two integers and returns a float, etc.

This would be a huge step forward for interactive programming of interpreted languages, and would truly showcase the power of having a live kernel to introspect into.

/tmp/test-req/bin/python: No module named virtualenvwrapper

When I open a new term, I get this:

/tmp/test-req/bin/python: No module named virtualenvwrapper                                                       
virtualenvwrapper.sh: There was a problem running the initialization hooks.                                       

If Python could not import the module virtualenvwrapper.hook_loader,                                              
check that virtualenv has been installed for                                                                      
VIRTUALENVWRAPPER_PYTHON=/tmp/test-req/bin/python and that PATH is                       
set properly.                                                                                                     
carl@twist:~/src/jupyter_notebook$                                                                                

not sure if this matters at all:

carl@twist:~/temp$ grep virtualenvwrapper /.bashrc
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
carl@twist:
/temp$ ls -l /usr/share/virtualenvwrapper/virtualenvwrapper.sh
-rw-r--r-- 1 root root 35435 Jul 16 2013 /usr/share/virtualenvwrapper/virtualenvwrapper.sh

Not sure how to tell what version that is.

Pulling static assets from the Jupyter CDN

Now that we've set up assets on cdn.jupyter.org (specifically for jupyter/nbconvert#20), I'd like to be able to use this for the try.jupyter.org deployment as well as JupyterHub (instead of the Rube Goldberg nginx machinery I've set up before).

To run a notebook server but relying on a CDN, I use:

jupyter notebook --NotebookApp.tornado_settings="{'static_url_prefix':'https://cdn.jupyter.org/notebook/4.0.0-dev/'}"

This has worked great so far, which I've tested by removing the entire static folder. This has the side effect of a single error getting logged:

[E 20:35:58.142 NotebookApp] Could not open static file ''

otherwise it runs flawlessly (this doesn't affect the run).

Right now the CDN has static assets for the current master branch, to be built nightly as 4.0.0-dev, and 3.1.0. My hope is to have this hooked up for try.jupyter.org (tmpnb.org) and a JupyterHub deployment within the week.

Specification of kernel directory on command line?

Kernel specification files can currently be one of two locations - System wide or user specific.

Would it be possible to add the ability to specify a kernel directory on the command line? Something like

ipython notebook --kernel_dir=/Users/me/my_kernels/

This could take precedence over the other 2 locations.

One example where this would be useful:
I'm currently trying to build a portable Jupyter install on windows that includes an R kernel. It's for teaching use on a heavily locked-down managed desktop.

The install is based on the PortablePython project and works reasonably well. I have 2 problems, however:

  • I have to install kernels to the user-profile which defeats the portability somewhat.
  • If I move the directory containing the portable install, I have to regenerate my kernels.

The enhancement proposed here would fix everything since I could specify the kernel_dir as a relative path in a launch shortcut.

Can't open a terminal

In some situations on my Jupyterhub deployment, I can't open a terminal page. It tries to go to that page, but it doesn't open it so just comes right back to the dashboard with a flicker. When this happens I see the following traceback:

[E 2015-04-12 09:57:29.921 localuser handlers:374] Unhandled error in API request
    Traceback (most recent call last):
      File "/usr/local/lib/python3.4/dist-packages/IPython/html/base/handlers.py", line 365, in wrapper
        result = yield gen.maybe_future(method(self, *args, **kwargs))
      File "/usr/local/lib/python3.4/dist-packages/IPython/html/terminal/api_handlers.py", line 18, in post
        name, _ = self.terminal_manager.new_named_terminal()
      File "/usr/local/lib/python3.4/dist-packages/terminado/management.py", line 304, in new_named_terminal
        term = self.new_terminal()
      File "/usr/local/lib/python3.4/dist-packages/terminado/management.py", line 161, in new_terminal
        pty = PtyProcessUnicode.spawn(argv, env=env, cwd=options.get('cwd', None))
      File "/usr/local/lib/python3.4/dist-packages/ptyprocess/ptyprocess.py", line 203, in spawn
        'executable: %s.' % command)
    FileNotFoundError: The command was not found or was not executable: .
[E 2015-04-12 09:57:29.922 localuser log:46] {
      "Referer": "https://dirac1.calpoly.edu/user/localuser/tree/home/localuser",
      "X-Forwarded-Port": "80",
      "X-Requested-With": "XMLHttpRequest",
      "Content-Length": "0",
      "Host": "dirac1.calpoly.edu",
      "Connection": "close",
      "X-Real-Ip": "129.65.101.140",
      "X-Nginx-Proxy": "true",
      "X-Forwarded-For": "129.65.101.140,129.65.23.43",
      "Accept": "application/json, text/javascript, */*; q=0.01",
      "Cookie": "I have removed this content...",
      "X-Forwarded-Proto": "http",
      "Accept-Encoding": "gzip, deflate",
      "Accept-Language": "en-US,en;q=0.8,gl;q=0.6,sq;q=0.4",
      "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36",
      "Origin": "https://dirac1.calpoly.edu"
    }

Make markdown header ID and anchor ID unique

Currently, two headlines with the same text (say "Plots") get the same ID for the appended anchor. This is problematic, if you use repetitive headlines (think "Analysis 1" -> "Plots", "Analysis 2" -> "Plots"...) and @minrk TOC script which links to headers and so links to the second "Plots" go to the first ones, as that's the first with such an ID.

The place which adds the links is this here:
https://github.com/jupyter/notebook/blob/master/jupyter_notebook/static/notebook/js/textcell.js#L281

I replaced that locally with:

                html.find(":header").addBack(":header").each(function (i, h) {
                    h = $(h);
-                     var hash = h.text().replace(/ /g, '-');
+                     var hash = h.text().replace(/ /g, '-')  + "_" + that.cell_id;
                    h.attr('id', hash);

and now my header IDs and the anchor ID are unique (and TOC works!) but they are not the same across notebook reloads, so links to a certain headline do not work :-(

Is there any "ID" for a cell which could be used to make the IDs unique?

Move backbone js to widgets?

Since nothing in the notebook ATM relies on backbone.js, should we move it to the widgets? The only reason I could see for us to leave it is if @Carreau wants to use it sometime soon with the notebook model stuff.

Support animation as an extension to the interact function?

We currently have interact that allows us to do this

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-2*np.pi,2*np.pi,100) 
def plotsin(f=2):
    plt.plot(x,sin(x*f))
interact(plotsin,f=(2,10,0.1));

very nice it is too! Could we extend this function so that it worked as an animator?
For example, perhaps if I were to write

interact(plotsin,f=(2,10,0.1),auto=True);

it would behave exactly like the interactive version but automatically step through the values of f. Perhaps there could be a 'stop' button for when we are tired of the animation. Maybe we could go a step further and do

interact(plotsin,f=(2,10,0.1),auto=True,show_controls=False);

Which would remove the slider and just show the results of the animation.

Cannot escape keyboard shortcut window with escape

Title says it all. I was surprised that, of all the windows, the keyboard shortcut overlay cannot be closed with escape. I hope you appreciate the irony!

This is on the 3 series release, I haven't checked the current master.

Export ipynb directly to Gist (feature idea)

An export option that interacts with the gist API would be very useful for sharing notebooks. Currently this involves: Download as > Open in text editor > Copy contents > paste into Gist. Copy/paste can be replaced by direct file upload to Gist, but really there is no reason to "download" the JSON to upload it to Gist, especially if the notebook server is in the same machine as the browser client.

Shift+Tab behavior is now unhandy for functions

The tool-tip behavior changed with Jupyter update and now before the method signature it shows some, well, irrelevant information, and signature below sometimes doesn't even fit fully in the box and hence is partially invisible.

fresh install of IPython error .ipython does not exist.

Full error log https://gist.github.com/Carreau/23793d6fd08d063932d4

But mostly I guess due to ipyparallel missing.

File "/usr/local/Cellar/python3/HEAD/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/tornado/web.py", line 1346, in _execute
        result = method(*self.path_args, **self.path_kwargs)
      File "/usr/local/Cellar/python3/HEAD/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/tornado/web.py", line 2626, in wrapper
        return method(self, *args, **kwargs)
      File "/Users/bussonniermatthias/dev/notebook/jupyter_notebook/services/clusters/handlers.py", line 21, in get
        self.finish(json.dumps(self.cluster_manager.list_profiles()))
      File "/Users/bussonniermatthias/dev/notebook/jupyter_notebook/services/clusters/clustermanager.py", line 81, in list_profiles
        self.update_profiles()
      File "/Users/bussonniermatthias/dev/notebook/jupyter_notebook/services/clusters/clustermanager.py", line 63, in update_profiles
        for profile in list_profiles_in(path):
      File "/Users/bussonniermatthias/dev/ipython/IPython/core/profileapp.py", line 101, in list_profiles_in
        files = os.listdir(path)
    FileNotFoundError: [Errno 2] No such file or directory: '/Users/bussonniermatthias/.ipython'

Uploading large files crashes the browser

If you try to upload a file that is larger than ~35mb the browser tab will crash about 5 seconds after clicking "Upload".

If we could warn the user about large files or implement a file uploader the user expirience would be better.

screen shot 2015-05-15 at 1 44 38 pm

screen shot 2015-05-15 at 1 47 11 pm

screen shot 2015-05-15 at 1 47 35 pm

# python -c "import IPython; print(IPython.sys_info())"
{'commit_hash': u'fd4ede2',
 'commit_source': 'installation',
 'default_encoding': 'UTF-8',
 'ipython_path': '/usr/local/lib/python2.7/dist-packages/IPython',
 'ipython_version': '4.0.0-dev',
 'os_name': 'posix',
 'platform': 'Linux-3.13.0-49-generic-x86_64-with-Ubuntu-14.04-trusty',
 'sys_executable': '/usr/bin/python',
 'sys_platform': 'linux2',
 'sys_version': '2.7.6 (default, Mar 22 2014, 22:59:56) \n[GCC 4.8.2]'}

Feature request for improved user interface

Coming from Matlab, Jupyter has the potential of being a replacement but as it is right now it is a bit cumbersome to work with. For example I would like to a small window of all my notebooks and run each of them with a double click. And write algorithms in one file and plot in another. And being able to see defined variables. As it is right now I find myself writing really big notebooks instead of organizing them in different files.

This ticket is a feature request. Keep up the good work!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.