Giter VIP home page Giter VIP logo

jupyterlab's Introduction

Installation | Documentation | Contributing | License | Team | Getting help |

PyPI version Downloads Build Status Build Status Documentation Status Crowdin GitHub Discourse Gitter Gitpod

Binder

An extensible environment for interactive and reproducible computing, based on the Jupyter Notebook and Architecture.

JupyterLab is the next-generation user interface for Project Jupyter offering all the familiar building blocks of the classic Jupyter Notebook (notebook, terminal, text editor, file browser, rich outputs, etc.) in a flexible and powerful user interface.

JupyterLab can be extended using npm packages that use our public APIs. The prebuilt extensions can be distributed via PyPI, conda, and other package managers. The source extensions can be installed directly from npm (search for jupyterlab-extension) but require an additional build step. You can also find JupyterLab extensions exploring GitHub topic jupyterlab-extension. To learn more about extensions, see the user documentation.

Read the current JupyterLab documentation on ReadTheDocs.

Important

JupyterLab 3 will reach its end of maintenance date on May 15, 2024, anywhere on Earth. To help us make this transition, fixes for critical issues will still be backported until December 31, 2024. If you are still running JupyterLab 3, we strongly encourage you to upgrade to JupyterLab 4 as soon as possible. For more information, see JupyterLab 3 end of maintenance on the Jupyter Blog.


Getting started

Installation

If you use conda, mamba, or pip, you can install JupyterLab with one of the following commands.

  • If you use conda:
    conda install -c conda-forge jupyterlab
  • If you use mamba:
    mamba install -c conda-forge jupyterlab
  • If you use pip:
    pip install jupyterlab
    If installing using pip install --user, you must add the user-level bin directory to your PATH environment variable in order to launch jupyter lab. If you are using a Unix derivative (e.g., FreeBSD, GNU/Linux, macOS), you can do this by running export PATH="$HOME/.local/bin:$PATH". If you are using a macOS version that comes with Python 2, run pip3 instead of pip.

For more detailed instructions, consult the installation guide. Project installation instructions from the git sources are available in the contributor documentation.

Installing with Previous Versions of Jupyter Notebook

When using a version of Jupyter Notebook earlier than 5.3, the following command must be run after installing JupyterLab to enable the JupyterLab server extension:

jupyter serverextension enable --py jupyterlab --sys-prefix

Running

Start up JupyterLab using:

jupyter lab

JupyterLab will open automatically in the browser. See the documentation for additional details.

If you encounter an error like "Command 'jupyter' not found", please make sure PATH environment variable is set correctly. Alternatively, you can start up JupyterLab using ~/.local/bin/jupyter lab without changing the PATH environment variable.

Prerequisites and Supported Browsers

The latest versions of the following browsers are currently known to work:

  • Firefox
  • Chrome
  • Safari

See our documentation for additional details.


Getting help

We encourage you to ask questions on the Discourse forum. A question answered there can become a useful resource for others.

Bug report

To report a bug please read the guidelines and then open a Github issue. To keep resolved issues self-contained, the lock bot will lock closed issues as resolved after a period of inactivity. If a related discussion is still needed after an issue is locked, please open a new issue and reference the old issue.

Feature request

We also welcome suggestions for new features as they help make the project more useful for everyone. To request a feature please use the feature request template.


Development

Extending JupyterLab

To start developing an extension for JupyterLab, see the developer documentation and the API docs.

Contributing

To contribute code or documentation to JupyterLab itself, please read the contributor documentation.

JupyterLab follows the Jupyter Community Guides.

License

JupyterLab uses a shared copyright model that enables all contributors to maintain the copyright on their contributions. All code is licensed under the terms of the revised BSD license.

Team

JupyterLab is part of Project Jupyter and is developed by an open community. The maintenance team is assisted by a much larger group of contributors to JupyterLab and Project Jupyter as a whole.

JupyterLab's current maintainers are listed in alphabetical order, with affiliation, and main areas of contribution:

  • Mehmet Bektas, Netflix (general development, extensions).
  • Alex Bozarth, IBM (general development, extensions).
  • Eric Charles, Datalayer, (general development, extensions).
  • Frédéric Collonval, WebScIT (general development, extensions).
  • Martha Cryan, Mito (general development, extensions).
  • Afshin Darian, QuantStack (co-creator, application/high-level architecture, prolific contributions throughout the code base).
  • Vidar T. Fauske, JPMorgan Chase (general development, extensions).
  • Brian Granger, AWS (co-creator, strategy, vision, management, UI/UX design, architecture).
  • Jason Grout, Databricks (co-creator, vision, general development).
  • Michał Krassowski, Quansight (general development, extensions).
  • Max Klein, JPMorgan Chase (UI Package, build system, general development, extensions).
  • Gonzalo Peña-Castellanos, QuanSight (general development, i18n, extensions).
  • Fernando Perez, UC Berkeley (co-creator, vision).
  • Isabela Presedo-Floyd, QuanSight Labs (design/UX).
  • Steven Silvester, MongoDB (co-creator, release management, packaging, prolific contributions throughout the code base).
  • Jeremy Tuloup, QuantStack (general development, extensions).

Maintainer emeritus:

  • Chris Colbert, Project Jupyter (co-creator, application/low-level architecture, technical leadership, vision, PhosphorJS)
  • Jessica Forde, Project Jupyter (demo, documentation)
  • Tim George, Cal Poly (UI/UX design, strategy, management, user needs analysis).
  • Cameron Oelsen, Cal Poly (UI/UX design).
  • Ian Rose, Quansight/City of LA (general core development, extensions).
  • Andrew Schlaepfer, Bloomberg (general development, extensions).
  • Saul Shanabrook, Quansight (general development, extensions)

This list is provided to give the reader context on who we are and how our team functions. To be listed, please submit a pull request with your information.


Weekly Dev Meeting

We have videoconference meetings every week where we discuss what we have been working on and get feedback from one another.

Anyone is welcome to attend, if they would like to discuss a topic or just listen in.

Notes are archived on GitHub Jupyter Frontends team compass.

jupyterlab's People

Contributors

afshin avatar aschlaep avatar blink1073 avatar bollwyvl avatar cameronoelsen avatar dependabot[bot] avatar dwillmer avatar echarles avatar ellisonbg avatar fcollonval avatar github-actions[bot] avatar gnestor avatar hbcarlos avatar ian-r-rose avatar jasongrout avatar johanmabille avatar jtpio avatar jzf2101 avatar kgryte avatar krassowski avatar ksavinn avatar markellekelly avatar marthacryan avatar mbektas avatar saulshanabrook avatar sccolbert avatar telamonian avatar vidartf avatar willingc avatar zuoyuanh 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

jupyterlab's Issues

UI should indicate keyboard focus

Like for example creating a new notebook:

screen shot 2016-06-04 at 11 08 00

I have no clue if I have focus to rename, chose the kernel, if enter will cancel or validate.
And Tab/shift-tab key should cycle through these.

dev install on windows fails

After cloning npm install appears to work but pip install -e . fails due to apparently not recognising npm even though it is on the path.

λ pip install -e .
Obtaining file:///C:/dev/code/jupyterlab
    Complete output from command python setup.py egg_info:
    setup.py entered
    running egg_info
    running jsdeps
    C:\Python\envs\py-dev\lib\distutils\dist.py:261: UserWarning: Unknown distribution option: 'License'
      warnings.warn(msg)
    `npm` unavailable.  If you're running this command using sudo, make sure `npm` is available to sudo
    Installing extension build dependencies with npm.  This may take a while...
    rebuilding js and css failed
    missing files: ['C:\\dev\\code\\jupyterlab\\jupyterlab\\build\\bundle.js']
    error: [WinError 2] The system cannot find the file specified

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\dev\code\jupyterlab\

What icon font to use in JupyterLab?

Updated status

  • We are currently using FontAwesome for the icon set in JupyterLab
  • However, the @jupyter/designers feel the FA set is too heavy and complex for JupyterLab
  • There is agreement from the @jupyter/designers that moving the the Material Design icons is a good idea.
  • The MD icons are optimized for 24/18 px display, but in our UI a size of 16px is best for the MD icons.
  • If we display the MD icons at 16px, users on low resolutions screens will see aliasing effects.

There is a PR here that implements the MD icons in the notebook toolbar: #686

Original comment

As discussed in #29 with @ellisonbg, font-based icons are generally designed to be "pixel" perfect at specific font sizes. This is especially important on non-retina displays and font-engines that force font-hinting on the user.

Both FontAwesome and Material icons are pixel perfect with a font-size that is a multiple of 14px, and the current font-size for the toolbar is 13px.

Here are some screenshots of the current toolbar with 13 and 14 px sizes:

13px:
13

14px:
14

Now, zoomed-in versions:

13px
13-large

14px
14-large

The latter is pixel perfect and much more crisp, and we can already see the difference in the original size. It become even clearer with the older font rendering engines of windows which does all kinds of ugly font hinting which cannot be disabled.

Hence we should

  • always use multiples of 14px for iconic fonts
  • design new icons on the same grid size for all the glyphs, and preferably the one of FontAwesome which is 1792x1792. It is also important to pay attention to not have too large font bearings.

When shoudl I use Jupyterlab?

Jupyterlab looks very cool (and I'm thinking about something very similiar to it), but I'm wondering when should I use it? Is there anyone using it for your project? and can I see an example?

If I run it in local machine, I dont' understand why I need a tab in browser for console?

HTML embedded elements not behaving correctly

screen shot 2016-06-13 at 2 52 35 pm

The above image is from the current Jupyterlab build, the below image is from the current Jupyternotebook build. Each of these cells have an html element linking to an image

screen shot 2016-06-13 at 2 53 05 pm

Only the Jupyternotebook interprets HTML correctly, Jupyterlab is still a little behind in that regard.

This is not exclusive to img elements, but a href don't display their link either, leading me to believe there is something wrong with HTML support as a whole.

Web version of Qt Console

In addition to the notebook interface, we need to implement a web-based version of the console interface. Here are some of the tasks that will get us there:

  • Create a ConsolePanel as a container that holds a ConsoleWidget, similar to the way the notebook works.
  • Create a ConsoleModel that is similar to a NotebookModel but does not have a notion of arbitrary cell insertion.
  • The first child of the ConsoleWidget needs to be a RawCellWidget to hold a banner and the second needs to be a CodeCellWidget to hold the prompt.
  • The ConsoleWidget needs a set of keyboard bindings to emulate the Qt Console application.
  • The execution of the code cell needs to be separated from the notebook because it is common functionality.
  • After every prompt execution, a new CodeCell needs to be generated to become the new prompt.
  • The history functionality of the Qt Console needs to be implemented (i.e. navigating through past commands via arrow keys).
  • The contextual tooltip feature of the Qt Console needs to be implemented.
  • The pager functionality of leaving the prompt and residing within a different interactive context (i.e., entering the interactive help) needs to be implemented.
  • The completion functionality (i.e., tab completion) of the Qt Console needs to be implemented. This should be done in a way that allows the notebook, or other widgets potentially, to use it as well.

Markup not being read correctly in Jupyter Lab

screen shot 2016-06-14 at 11 08 22 am

The image on the left is the Jupyter notebook. In this image it is correctly interpreting markdown text and formatting, correctly showing a numbered list along with stylized functions.

On the right we have Jupyter lab. The numbered list is incomplete and the functions are not stylized. When I looked further into this problem, I found that the text simply stops displaying once it hits a less than ('<') character. The only reason this issue isn't occurring at the end of list item 1 is because I put a space around the less than character and it is now being interpreted as '&lt'. Not too sure why this is, just putting this issue out there.

Create a high level doc that provides definitions for project elements

Since widgets, extensions, custom, basic, terminal, etc. are overloaded terms that have meanings from multiple contexts, it would be helpful to have a brief document that explains what these terms mean in the context of JupyterLab.

As a start:

Widgets

  • "Basic ipywidgets" are ipython widgets provided in the ipywidgets repository/package. These are currently (mostly) work with JupyterLab if you have the development master branch of ipywidgets installed (i.e., version 6 or later). We are still working on getting the Output widget working, along with the @interact decorators.
  • "Custom" or "third party" ipython widgets are those widgets created by the community that are not included within the ipywidgets repository. Examples are bqplot, pythreejs, ipyleaflet. Each is a separate python package that provides a new ipython widget (begs the question what are we defining as an ipython widget). We are working on a way to install these into JupyterLab.
  • "Phosphor widgets" - In JupyterLab the basic UI building block is a "phosphor widget". Examples include the notebook, cells inside the notebook, individual outputs, the code editor, terminal, command palette, etc. The entire JupyterLab UI is a nested collection of Phosphor widgets. Phosphor widgets are completely distinct from ipython widgets (it's a little unfortunate that the two worlds overlapped there).

Extensions

Terminal

  • the terminal on the call was the OS terminal using the xterm.js package. For example for OS X, it is a view to what you would see in iterm2 but in the browser
  • the “console” is an implementation of the Qt console in the browser

cc/ @blink1073 @jasongrout @SylvainCorlay @ellisonbg @sccolbert @afshin

Ctrl-M should switch to command mode

Well i did not even remembered we had that shortcut that ctrl-M==Esc, but apparently my muscle memory does remember (and esc is too far from my pinkie). And with the new MacBook Pro apparently going to lose the Esc-Key, I guess it's nice to have a second usable shortcut to switch mode.

Development build instructions off in README

The instructions in the README for dev builds work fine if you haven't made any changes. But if you want to actually do development, there are missing pieces. I thought I could get away with just doing an npm run build in the top-level directory, but that doesn't seem to do it.

I dug around and found that python setup.py jsdeps does the trick. Is this the preferred approach? Do we want to add a top level npm command that does everything?

Make notebook have only one active editor at a time

Currently there are massive slowdowns (see #15) which could be mitigated by having only one active editor in a notebook.

  • When an editor receives focus in a notebook in edit mode, a codemirror widget is constructed and displayed with the current content (or maybe a single codemirror is kept around and reused...)
  • When the editor blurs, the codemirror editor is replaced with a rendered version of the editor contents.

jupyterlab link returns 404 when running from a multiuser Jupyterhub

On a server running the multiuser jupyterhub, the link pointing to jupyterlab:

http://jupyterhub.host:port/user/$USERNAME/lab

returns a 404 error. Below the log in the JS console:

require.js?v=6da8be3…:900 TypeError: Cannot read property 'scrollHeight' of undefined
    at http://epinux.com:8888/user/epinux/lab:259:20
    at Object.context.execCb (http://epinux.com:8888/user/epinux/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:1690:33)
    at Object.Module.check (http://epinux.com:8888/user/epinux/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:865:51)
    at Object.Module.enable (http://epinux.com:8888/user/epinux/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:1177:22)
    at Object.Module.init (http://epinux.com:8888/user/epinux/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:783:26)
    at http://epinux.com:8888/user/epinux/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:1453:36Module.check @ require.js?v=6da8be3…:900Module.enable @ require.js?v=6da8be3…:1177Module.init @ require.js?v=6da8be3…:783(anonymous function) @ require.js?v=6da8be3…:1453

from the shell where the hub is started:

[W 2016-06-10 18:29:03.071 epinux log:47] 404 GET /user/epinux/lab (89.10.169.253) 13.10ms referer=http://epinux.com:8888/user/epinux/tree
[I 2016-06-10 18:29:21.808 epinux log:47] 302 GET /user/epinux/lab/ (89.10.169.253) 0.62ms
[W 2016-06-10 18:29:21.875 epinux log:47] 404 GET /user/epinux/lab (89.10.169.253) 2.27ms referer=None

Moving between cell in edit mode.

When text cursor is at (0,0), and pressing "up", the previous cell shoudl become selected.

Same with "down" when cursor is the last line, last caracter.

a wheel ?

Would it be possible to have it as a wheel on Pypi ?

Licensing of files

@sccolbert, @blink1073, @afshin - would it be all right with you to relicense the two files that have a PhosphorJS copyright/license with the standard Jupyter license statement (same BSD license, but copyright Jupyter dev team)? The two files in question are:

https://github.com/jupyter/jupyterlab/blob/ba0a1b7e14509afaf59afb1a9afa0ba1aa9a01b3/src/codemirror/widget.ts

https://github.com/jupyter/jupyterlab/blob/f2a4b8d99218aef83f110e67e348ed21d9196cee/src/notebook/common/json.ts

Having a single common license for all the files in JupyterLab will make adoption and messaging simpler, and follows the project policy more closely (https://github.com/jupyter/governance/blob/master/projectlicense.md#our-copyright-policy).

Make updates to the jupyterlab extension painless while developing

Workflow A: have npm run build build the jupyterlab code, then install it into the extension, then update the extension bundle. It would be great to have an npm run watch or something that could do this automatically when a file changed too.

Workflow B: have an npm run watch in the jupyterlab directory, so you first go into the jupyterlab directory and run npm run watch, then as you make changes to the jupyterlab ts source, and run npm run build, the extension updates itself.

Need UI element to go back to classic notebook

Seem obvious to change the URI, but we literally had classed in Berkley, where student would reissue jupyter notebook in a new terminal each time they wanted to access the dashboard, ence having up to 50 servers running at the end of class.

Close notebook / saving / saving kernel is annoying.

We don't have one on the current notebook, I'm starting to get develop the same feeling against this dialog than the UAC on windows vista.

I understand why you want that, but I think that it will annoying people.

Also, we have the "are you sure you want to leave" dialog on the other notebook, because we have no way of saving in the background. Imho closing a tab should automatically autosave, as anyway once we have the RT collab that will be the case. So no need for another change of behavior.

I guess @fperez , @ian-r-rose, @ellisonbg want to be part of this conversation.

Tab should not pick-up a completion.

Tab should not pick-up a completion, when the completer is (already) open, tab is supposed to complete to the common longest prefix[1] of all the completions.

Well technically not prefix, but common longuest contiguous subsequence, as mat<tab> returns matplotlib and %matplotlib so the longuest prefix would be empty string.

Test failure in Chrome

I also see this error on 4e59585 when doing npm run test:chrome (but not under firefox). I've replaced the system path to the jupyterlab repo with <<<PATH>>>.

FAILED TESTS:
  jupyter-ui
    PDFRenderer
      ✖ should output the correct HTML
        Chrome 51.0.2704 (Mac OS X 10.10.5)
      Error: expected '<a target="_blank" href="data:application/pdf;<<PATH>>64,I don\'t have a b64\'d PDF">View PDF</a>' to equal '<a href="data:application/pdf;<<PATH>>64,I don\'t have a b64\'d PDF" target="_blank">View PDF</a>'
          at Assertion.assert (<<PATH>>/test/build/bundle.js:309:14)
          at Assertion.be.Assertion.equal (<<PATH>>/test/build/bundle.js:429:11)
          at Assertion.(anonymous function) [as be] (<<PATH>>/test/build/bundle.js:282:25)
          at Context.<anonymous> (<<PATH>>/test/build/bundle.js:25369:42)

trying with some existing notebook, jupyterlab seems to hang at opening of the notebook

(with jupyterlab-0.0.5.tar.gz)

this notebook hangs at opening, before even trying to execute the mere first cell:
https://github.com/winpython/winpython_afterdoc/blob/master/docs/Winpython_checker.ipynb

maybe it's an incompatibility with bokeh/bqplot/ipywidgets ? Still, to hang at opening is a bit strange to me, as I open a notebook with cleared output cells.

Windows/python3.5.1:

Name Version Description
Python 3.5.1 Python programming language with standard library
adodbapi 2.6.0.7 A pure Python package implementing PEP 249 DB-API using Microsoft ADO.
alabaster 0.7.8 A configurable sidebar-enabled Sphinx theme
astroid 1.4.5 Rebuild a new abstract syntax tree from Python's ast (required for pylint)
astroml 0.3 tools for machine learning and data mining in Astronomy
babel 2.3.2 Internationalization utilities
backports-abc 0.4 A backport of recent additions to the 'collections.abc' module.
backports.shutil-get-terminal-size 1.0.0 A backport of the get_terminal_size function from Python 3.3's shutil.
baresql 0.7.3 playing SQL directly on Python datas
bcolz 1.0.0 columnar and compressed data containers.
beautifulsoup4 4.4.1 Screen-scraping library
blaze 0.10.1 Blaze
blosc 1.3.2 Blosc data compressor
bloscpack 0.9.0 Command line interface to and serialization format for Blosc
bokeh 0.11.1 Statistical and novel interactive HTML plots for Python
boto3 1.3.1 The AWS SDK for Python
botocore 1.4.24 Low-level, data-driven core of boto 3.
bottleneck 1.0.0 Fast NumPy array functions written in Cython
bqplot 0.6.1 Interactive plotting for the Jupyter notebook, using d3.js and ipywidgets.
brewer2mpl 1.4.1 Connect colorbrewer2.org color maps to Python and matplotlib
certifi 2016.2.28 Python package for providing Mozilla's CA Bundle.
cffi 1.6.0 Foreign Function Interface for Python calling C code.
click 6.6 A simple wrapper around optparse for powerful command line utilities.
cloudpickle 0.2.1 Extended pickling support for Python objects
colorama 0.3.7 Cross-platform colored terminal text
commonmark 0.5.4 Python parser for the CommonMark Markdown spec
cvxopt 1.1.7 Convex optimization library
cx-freeze 4.3.4 Deployment tool which converts Python scripts into stand-alone Windows executables (i.e. target machine does not require Python or any other library to be installed)
cycler 0.10.0 Composable style cycles
cyordereddict 1.0.0 Cython implementation of Python's collections.OrderedDict
cython 0.24 Cython is a language that makes writing C extensions for the Python language as easy as Python
cytoolz 0.8.0 Cython implementation of Toolz: High performance functional utilities
dask 0.9.0 Minimal task scheduling abstraction
datashape 0.5.2 A data description language
db.py 0.4.4 a db package that doesn't suck
decorator 4.0.10 Better living through Python with decorators
dill 0.2.5 serialize all of python (almost)
distributed 1.10.2 Distributed computing
docopt 0.6.2 Pythonic argument parser, that will make you smile
docrepr 0.1.0 docrepr renders Python docstrings in HTML.
docutils 0.12 Text processing system for processing plaintext documentation into useful formats, such as HTML or LaTeX (includes reStructuredText)
emcee 2.1.0 Kick ass affine-invariant ensemble MCMC sampling
entrypoints 0.2.2 Discover and load entry points from installed packages
fasteners 0.14.1 A python package that provides useful locks.
flask 0.11.1 A microframework based on Werkzeug, Jinja2 and good intentions
flask-cors 2.1.2 A Flask extension adding a decorator for CORS support
formlayout 1.1.0 Module for creating form dialogs/widgets to edit various type of parameters without having to write any GUI code
geopy 1.11.0 Python Geocoding Toolbox
greenlet 0.4.9 Lightweight in-process concurrent programming
guidata 1.7.5 Automatically generated graphical user interfaces for easy data set edition and display
guiqwt 3.0.2 Efficient curve/image plotting and other GUI tools for scientific data processing software development
h5py 2.6.0 General-purpose Python interface to HDF5 files (unlike PyTables, h5py provides direct access to the full HDF5 C library)
holoviews 1.5.0 Composable, declarative data structures for building complex visualizations easily.
html5lib 0.9999999 HTML parser based on the WHATWG HTML specification
husl 4.0.3 Human-friendly HSL (Hue-Saturation-Lightness)
idlex 1.13 IDLE Extensions for Python
imagesize 0.7.1 Getting image size from png/jpeg/jpeg2000/gif file
ipykernel 4.3.1 IPython Kernel for Jupyter
ipyleaflet 0.2.0 A Jupyter widget for dynamic Leaflet maps
ipyparallel 5.0.1 Interactive Parallel Computing with IPython
ipython 4.2.0 Enhanced Python shell
ipython-genutils 0.1.0 Vestigial utilities from IPython
ipython-sql 0.3.7.1 RDBMS access via IPython
ipywidgets 5.1.5 IPython HTML widgets for Jupyter
itsdangerous 0.24 Various helpers to pass trusted data to untrusted environments and back.
jedi 0.9.0 An autocompletion tool for Python that can be used for text editors
jinja2 2.8 Sandboxed template engine (provides a Django-like non-XML syntax and compiles templates into executable python code)
jmespath 0.9.0 JSON Matching Expressions
joblib 0.9.4 Lightweight pipelining: using Python functions as pipeline jobs.
jsonschema 2.5.1 An implementation of JSON Schema validation for Python
julia 0.1.1.8 Python interface to the Julia language
jupyter 1.0.0 Jupyter metapackage. Install all the Jupyter components in one go.
jupyter-client 4.3.0 Jupyter metapackage. Install all the Jupyter components in one go.
jupyter-console 4.1.1 Jupyter metapackage. Install all the Jupyter components in one go.
jupyter-core 4.1.0 Jupyter metapackage. Install all the Jupyter components in one go.
keras 1.0.4 Theano-based Deep Learning library
lasagne 0.2.dev1 neural network tools for Theano
lazy-object-proxy 1.2.2 A fast and thorough lazy object proxy.
llvmlite 0.11.0 lightweight wrapper around basic LLVM functionality
lmfit 0.9.3 Least-Squares Minimization with Bounds and Constraints
locket 0.2.0 File-based locks for Python for Linux and Windows
lxml 3.6.0 Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
markdown 2.6.6 Python implementation of Markdown.
markupsafe 0.23 Implements a XML/HTML/XHTML Markup safe string for Python
matplotlib 1.5.2rc2 2D plotting library (embeddable in GUIs created with PyQt)
mistune 0.7.2 The fastest markdown parser in pure Python, inspired by marked.
mkl-service 1.1.2 Python bindings to some MKL service functions
monotonic 1.1 An implementation of time.monotonic() for Python 2 & < 3.3
mpld3 0.2 D3 Viewer for Matplotlib
mpmath 0.19 Python library for arbitrary-precision floating-point arithmetic
msgpack-python 0.4.7 MessagePack (de)serializer.
multipledispatch 0.4.8 A relatively sane approach to multiple dispatch in Python
mysql-connector-python 2.0.4 MySQL driver written in Python
nbconvert 4.2.0 Converting Jupyter Notebooks
nbformat 4.0.1 The Jupyter Notebook format
nbsphinx 0.2.8 Jupyter Notebook Tools for Sphinx
netcdf4 1.2.4 python/numpy interface to netCDF library (versions 3 and 4)
networkx 1.11 Python package for creating and manipulating graphs and networks
nltk 3.2.1 The Natural Language Toolkit (NLTK) is a Python package for natural language processing.
nose 1.3.7 nose is a discovery-based unittest extension (e.g. NumPy test module is using nose)
notebook 4.2.1 # Jupyter Notebook
numba 0.26.0 compiling Python code using LLVM
numexpr 2.6.0 Fast evaluation of array expressions elementwise by using a vector-based virtual machine
numpy 1.10.4 NumPy: multidimensional array processing for numbers, strings, records and objects (SciPy''s core module)
numpydoc 0.6.0 Sphinx extension to support docstrings in Numpy format
oct2py 3.5.7 Python to GNU Octave bridge --> run m-files from python.
odo 0.5.0 Data migration in Python
pandas 0.18.1 Powerful data structures for data analysis, time series and statistics
pandas-datareader 0.2.0 Data readers extracted from the pandas codebase,should be compatible with recent pandas versions
param 1.3.2 Declarative Python programming using Parameters.
partd 0.3.3 Appendable key-value storage
patsy 0.4.1 Describing statistical models using symbolic formulas
pep8 1.7.0 Python style guide checker
pg8000 1.10.5 PostgreSQL interface library
pickleshare 0.7.2 Tiny 'shelve'-like database with concurrency support
pillow 3.2.0 Python Imaging Library (fork)
pip 8.1.2 A tool for installing and managing Python packages
pkginfo 1.3.2 Query metadatdata from sdists / bdists / installed packages.
prettytable 0.7.2 A simple Python library for easily displaying tabular data in a visually appealing ASCII table format.
prompt-toolkit 1.0.0 Library for building powerful interactive command lines in Python
psutil 4.2.0 Provides an interface for retrieving information on all running processes and system utilization (CPU, disk, memory, network) in a portable way
ptpython 0.34 Python REPL build on top of prompt_toolkit
pulp 1.6.1 PuLP is an LP modeler written in python. PuLP can generate MPS or LP files and call GLPK, COIN CLP/CBC, CPLEX, and GUROBI to solve linear problems
py 1.4.31 library with cross-python path, ini-parsing, io, code, log facilities
pyaudio 0.2.9 Bindings for PortAudio v19, the cross-platform audio input/output stream library.
pybars3 0.9.1 Handlebars.js templating for Python 3 and 2
pycparser 2.14 C parser in Python
pyflakes 1.2.3 passive checker of Python programs
pygments 2.1.3 Generic syntax highlighter for general use in all kinds of software
pylint 1.5.5 Logilab code analysis module: analyzes Python source code looking for bugs and signs of poor quality
pymc 2.3.6 Markov Chain Monte Carlo sampling toolkit.
pymc3 3.0 Markov Chain Monte Carlo sampling toolkit.
pymeta3 0.5.1 Pattern-matching language based on Meta for Python 3 and 2
pymongo 3.2.2 Python driver for MongoDB http://www.mongodb.org
pyodbc 3.0.10 DB API Module for ODBC
pyopengl 3.1.1 Cross platform Python binding to OpenGL and related APIs
pyparsing 2.1.4 A Python Parsing Module
pyqt5 5.6 Python bindings for the Qt cross platform GUI toolkit
pyqtgraph 0.9.10 Scientific Graphics and GUI Library for Python
pyreadline 2.1 IPython needs this module to display color text in Windows command window
pyserial 3.1 Library encapsulating the access for the serial port
pystache 0.5.4 Mustache for Python
pytest 2.9.1 pytest: simple powerful testing with Python
python-dateutil 2.5.3 Powerful extensions to the standard datetime module
python-hdf4 0.9 Python-HDF4: Python interface to the NCSA HDF4 library
pythonnet 2.1.0 .Net and Mono integration for Python
pythonqwt 0.5.5 Qt plotting widgets for Python
pytz 2016.4 World Timezone Definitions for Python
pywin32 220.1 Python library for Windows
pyyaml 3.11 YAML parser and emitter for Python
pyzmq 15.2.0 Lightweight and super-fast messaging based on ZeroMQ library (required for IPython Qt console)
qtawesome 0.3.3 FontAwesome icons in PyQt and PySide applications
qtconsole 4.2.1 Jupyter Qt console
qtpy 1.0.2 Provides an abstraction layer on top of the various Qt bindings (PyQt5, PyQt4 and PySide) and additional custom QWidgets.
recommonmark 0.4.0 A markdown parser for docutils
redis 2.10.5 Python client for Redis key-value store
reportlab 3.3.0 The PDF generation library
requests 2.10.0 Requests is an Apache2 Licensed HTTP library, written in Python, for human beings.
requests-toolbelt 0.6.2 Requests is an Apache2 Licensed HTTP library, written in Python, for human beings.
rope-py3k 0.9.4.post1 a python refactoring library...
rpy2 2.7.8 Python interface to the R language (embedded R)
rx 1.5.2 Reactive Extensions (Rx) for Python
s3fs 0.0.5 Convenient Filesystem interface over S3
scikit-image 0.12.3 Image processing toolbox for SciPy
scikit-learn 0.17.1 A set of Python modules for machine learning and data mining
scikit-neuralnetwork 0.7 Deep neural networks without the learning cliff! A wrapper library compatible with scikit-learn.
scilab2py 0.6 Python to Scilab bridge
scipy 0.17.1 SciPy: Scientific Library for Python (advanced math, signal processing, optimization, statistics, ...)
seaborn 0.7.1 statistical data visualization
setuptools 21.2.2 Download, build, install, upgrade, and uninstall Python packages - easily
simplegeneric 0.8.1 Simple generic functions (similar to Python's own len(), pickle.dump(), etc.)
simplejson 3.8.2 Simple, fast, extensible JSON (JavaScript Object Notation) encoder/decoder
sip 4.18
six 1.10.0 Python 2 and 3 compatibility utilities
snowballstemmer 1.2.1 This package provides 16 stemmer algorithms (15 + Poerter English stemmer) generated from Snowball algorithms.
sphinx 1.4.3 Tool for generating documentation which uses reStructuredText as its markup language
sphinx-rtd-theme 0.1.9 Tool for generating documentation which uses reStructuredText as its markup language
spyder 3.0.0.dev0 Scientific PYthon Development EnviRonment: designed for interactive computing and data visualisation with a simple and intuitive user interface
sqlalchemy 1.0.13 SQL Toolkit and Object Relational Mapper
sqlite-bro 0.8.11 a graphic SQLite Client in 1 Python file
sqlparse 0.1.19 Non-validating SQL parser
statsmodels 0.6.1 Statistical computations and models for use with SciPy
sympy 1.0 Symbolic Mathematics Library
tables 3.2.2 Package based on HDF5 library for managing hierarchical datasets (extremely large amounts of data)
tblib 1.3.0 Traceback serialization library.
theano 0.8.2 Optimizing compiler for evaluating mathematical expressions on CPUs and GPUs.
toolz 0.8.0 List processing tools and functional utilities
tornado 4.3 Scalable, non-blocking web server and tools (required for IPython notebook)
traitlets 4.2.1 Traitlets Python config system
twine 1.6.5 Collection of utilities for interacting with PyPI
twitter 1.17.1 An API and command-line toolset for Twitter (twitter.com)
wcwidth 0.1.6 Measures number of Terminal column cells of wide-character codes
werkzeug 0.11.10 The Swiss Army knife of Python web development
wheel 0.29.0 A built-package format for Python.
widgetsnbextension 1.2.3 IPython HTML widgets for Jupyter
winpython 1.6.20160531 WinPython distribution tools, including WPPM (package manager)
wordcloud 1.2.1 A little word cloud generator
wrapt 1.10.8 A Python module for decorators, wrappers and monkey patching.
xarray 0.7.2 N-D labeled arrays and datasets in Python
xlrd 1.0.0 Extract data from Microsoft Excel spreadsheet files
xlsxwriter 0.9.0 A Python module for creating Excel XLSX files.
zarr 1.0.0 A minimal implementation of chunked, compressed, N-dimensional arrays for Python.

CodeMirror themes in JupyterLab not being processed correctly

screen shot 2016-06-15 at 5 11 22 pm

On the left is Jupyter Notebook, the color scheme is being inherited from the CodeMirror repo. JupyterLab's color scheme is just slightly different and that is a no-go. Brian says this has something to do with iPython/CodeMirror's themes not being processed correctly, but I'm not too sure.

Next Steps

  • Get API docs autobuilt
  • turn on Travis
  • Get notebook tests running again
  • Basic tutorial documentation about the architecture of phosphide, document manager, and our app
  • Add a work-around in phosphide to, from the appshell, get the current dock panel widget and list of dock panel widgets

Toolbar icons look blurry

I might be completely imagining things, or i's an optical effect.
The effect disappears for me as soon as I zoom in.

Could they be anything real like a sub-pixel width or height ?
Or an optical effect as I keep switching between tabs and the color in lab is less dark than classical notebook?

New/upload/refresh at bottom is confusing.

Too far from the rest of the UI element , especially on big screens. I literally searched the button for a minute, went to the command tab...

Buttons should have visual-separations, even when not hovered,
the change of style on hover exists (I can see that the applied style is different), but for me, on my screen I cannot see any differences.

compatibility problem with ipywidgets 5.1.5 ?

this works under classic ipython4.2:

%matplotlib inline
# Pandas interactive
import pandas as pd
import numpy as np
import seaborn as sns

# create a df with random datas
np.random.seed(24)
df = pd.DataFrame({'A': np.linspace(1, 10, 10)})
df = pd.concat([df, pd.DataFrame(np.random.randn(10, 4), columns=list('BCDE'))],
               axis=1)
df.iloc[0, 2] = np.nan

# interactive
from ipywidgets import widgets
@widgets.interact
def f(h_neg=(0, 359, 1), h_pos=(0, 359), s=(0., 99.9), l=(0., 99.9)):
    return (df
             .style
             .background_gradient(
                cmap=sns.palettes.diverging_palette(
                     h_neg=h_neg, h_pos=h_pos, s=s, l=l, as_cmap=True)
             ).highlight_null()

under jupyterlab (and chrome) I get a :
jupyterlab03

Get a minimal non-master widgets solution working

You currently need the master dev branch of widgets installed to have widgets working (what will be widgets 6.x) -- we should note that in the readme and the initial startup page.

  • Release pre-release version of ipywidgets 6.x
  • Make this pre-release a requirement of jupyterlab (maybe an optional prereq? That way people can still experiment with jupyterlab without messing up their ipywidgets installation if they just don't use ipywidgets)
  • Note in the readme and initial about page that ipywidgets 6.x+ is needed for widgets to 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.