Skip to content

Commit 593672d

Browse files
Frédéric Collonvalfcollonval
Frédéric Collonval
authored andcommitted
Merge JS package and create federated extension
1 parent 3fc9c82 commit 593672d

37 files changed

+4165
-240106
lines changed

Diff for: .circleci/config.yml

+2-11
Original file line numberDiff line numberDiff line change
@@ -212,12 +212,13 @@ jobs:
212212
- image: circleci/python:3.7-stretch-node-browsers
213213
environment:
214214
LANG: en_US.UTF-8
215+
resource_class: large
215216

216217
steps:
217218
- checkout
218219
- run:
219220
name: Install dependencies
220-
command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_37_core.txt black inflect"
221+
command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_37_core.txt black inflect jupyterlab~=3.0"
221222
- run:
222223
name: Update jupyterlab-plotly version
223224
command: "cd packages/python/plotly; python setup.py updateplotlywidgetversion"
@@ -232,7 +233,6 @@ jobs:
232233
name: Commit
233234
command: |
234235
cd packages/python/plotly
235-
sudo mkdir /dist
236236
git config --global user.email "[email protected]"
237237
git config --global user.name "Your Name"
238238
git add -A
@@ -243,15 +243,6 @@ jobs:
243243
command: |
244244
cd packages/python/plotly
245245
python setup.py sdist
246-
sudo cp dist/* /dist
247-
when: always
248-
- run:
249-
name: npm-pack widget
250-
command: |
251-
cd packages/javascript/jupyterlab-plotly/
252-
npm install webpack
253-
npm pack
254-
sudo cp ./jupyterlab-plotly* /dist
255246
when: always
256247
- store_artifacts:
257248
path: packages/python/plotly/dist

Diff for: .gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,7 @@ doc/python/.mapbox_token
4848
doc/.ipynb_checkpoints
4949
tags
5050
doc/check-or-enforce-order.py
51+
52+
packages/javascript/plotlywidget/lib/
53+
packages/python/plotly/plotlywidget/labextension/
54+
packages/python/plotly/plotlywidget/nbextension/index.js*

Diff for: README.md

+19-19
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ Our recommended IDE for Plotly’s Python graphing library is Dash Enterprise’
3939

4040
`pip install plotly==4.14.3`
4141

42-
Inside [Jupyter notebook](https://jupyter.org/install) (installable with `pip install "notebook>=5.3" "ipywidgets>=7.5"`):
42+
Inside [Jupyter](https://jupyter.org/install) (installable with `pip install "jupyterlab>=3" "ipywidgets>=7.6"`):
4343

4444
```python
4545
import plotly.graph_objects as go
@@ -95,37 +95,22 @@ or conda.
9595
conda install -c plotly plotly=4.14.3
9696
```
9797

98-
### Jupyter Notebook Support
99-
100-
For use in the Jupyter Notebook, install the `notebook` and `ipywidgets`
101-
packages using `pip`:
102-
103-
```
104-
pip install "notebook>=5.3" "ipywidgets>=7.5"
105-
```
106-
107-
or `conda`:
108-
109-
```
110-
conda install "notebook>=5.3" "ipywidgets>=7.5"
111-
```
112-
11398
### JupyterLab Support
11499

115100
For use in JupyterLab, install the `jupyterlab` and `ipywidgets`
116101
packages using `pip`:
117102

118103
```
119-
pip install jupyterlab "ipywidgets>=7.5"
104+
pip install jupyterlab>=3 "ipywidgets>=7.6"
120105
```
121106

122107
or `conda`:
123108

124109
```
125-
conda install jupyterlab "ipywidgets>=7.5"
110+
conda install jupyterlab>=3 "ipywidgets>=7.6"
126111
```
127112

128-
Then run the following commands to install the required JupyterLab extensions (note that this will require [`node`](https://nodejs.org/) to be installed):
113+
For JupyterLab 2 or earlier, run the following commands to install the required JupyterLab extensions (note that this will require [`node`](https://nodejs.org/) to be installed):
129114

130115
```
131116
# Basic JupyterLab renderer support
@@ -137,6 +122,21 @@ jupyter labextension install @jupyter-widgets/jupyterlab-manager plotlywidget@4.
137122

138123
Please check out our [Troubleshooting guide](https://plotly.com/python/troubleshooting/) if you run into any problems with JupyterLab.
139124

125+
### Jupyter Notebook Support
126+
127+
For use in the Jupyter Notebook, install the `notebook` and `ipywidgets`
128+
packages using `pip`:
129+
130+
```
131+
pip install "notebook>=5.3" "ipywidgets>=7.5"
132+
```
133+
134+
or `conda`:
135+
136+
```
137+
conda install "notebook>=5.3" "ipywidgets>=7.5"
138+
```
139+
140140
### Static Image Export
141141

142142
plotly.py supports [static image export](https://plotly.com/python/static-image-export/),

Diff for: doc/python/getting-started.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -144,16 +144,16 @@ For use in [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/), install t
144144
packages using `pip`:
145145

146146
```
147-
$ pip install jupyterlab "ipywidgets>=7.5"
147+
$ pip install jupyterlab "ipywidgets>=7.6"
148148
```
149149

150150
or `conda`:
151151

152152
```
153-
$ conda install jupyterlab "ipywidgets>=7.5"
153+
$ conda install jupyterlab "ipywidgets>=7.6"
154154
```
155155

156-
Then run the following commands to install the required JupyterLab extensions (note that this will require [`node`](https://nodejs.org/) to be installed):
156+
For JupyterLab 2 or earlier, run the following commands to install the required JupyterLab extensions (note that this will require [`node`](https://nodejs.org/) to be installed):
157157

158158
```
159159
# JupyterLab renderer support

Diff for: doc/python/renderers.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ fig
7272

7373
> To be precise, figures will display themselves using the current default renderer when the two following conditions are true. First, the last expression in a cell must evaluate to a figure. Second, `plotly.py` must be running from within an `IPython` kernel.
7474
75-
**In many contexts, an appropriate renderer will be chosen automatically and you will not need to perform any additional configuration.** These contexts include the classic [Jupyter Notebook](https://jupyter.org/), [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/) (provided the `jupyterlab-plotly` JupyterLab extension is installed), [Visual Studio Code notebooks](https://code.visualstudio.com/docs/python/jupyter-support), [Google Colaboratory](https://colab.research.google.com/notebooks/intro.ipynb), [Kaggle](https://www.kaggle.com/kernels) notebooks, [Azure](https://notebooks.azure.com/) notebooks, and the [Python interactive shell](https://www.python.org/shell/).
75+
**In many contexts, an appropriate renderer will be chosen automatically and you will not need to perform any additional configuration.** These contexts include the classic [Jupyter Notebook](https://jupyter.org/), [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/) (provided the `plotlywidget` JupyterLab extension is installed), [Visual Studio Code notebooks](https://code.visualstudio.com/docs/python/jupyter-support), [Google Colaboratory](https://colab.research.google.com/notebooks/intro.ipynb), [Kaggle](https://www.kaggle.com/kernels) notebooks, [Azure](https://notebooks.azure.com/) notebooks, and the [Python interactive shell](https://www.python.org/shell/).
7676

7777
Additional contexts are supported by choosing a compatible renderer including the [IPython console](https://docs.spyder-ide.org/ipythonconsole.html), [QtConsole](https://qtconsole.readthedocs.io/en/stable/), [Spyder](https://www.spyder-ide.org/), and more.
7878

@@ -169,7 +169,7 @@ This renderer may be useful when working with notebooks than contain lots of lar
169169

170170
###### `plotly_mimetype`
171171

172-
The `plotly_mimetype` renderer creates a specification of the figure (called a MIME-type bundle), and requests that the current user interface displays it. User interfaces that support this renderer include [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/) (requires the [`jupyterlab-plotly`](https://www.npmjs.com/package/jupyterlab-plotly) extension), [nteract](https://nteract.io/), and the Visual Studio Code [notebook interface](https://code.visualstudio.com/docs/python/jupyter-support).
172+
The `plotly_mimetype` renderer creates a specification of the figure (called a MIME-type bundle), and requests that the current user interface displays it. User interfaces that support this renderer include [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/) (requires the [`plotlywidget`](https://www.npmjs.com/package/plotlywidget) extension), [nteract](https://nteract.io/), and the Visual Studio Code [notebook interface](https://code.visualstudio.com/docs/python/jupyter-support).
173173

174174
###### `jupyterlab`, `nteract`, and `vscode`
175175
These are aliases for `plotly_mimetype` since this renderer is a good choice when working in JupyterLab, nteract, and the Visual Studio Code notebook interface. Note that in VSCode Notebooks, the version of Plotly.js that is used to render is provided by the [vscode-python extension](https://code.visualstudio.com/docs/languages/python) and often trails the latest version by several weeks, so the latest features of `plotly` may not be available in VSCode right away. The situation is similar for Nteract.

Diff for: doc/python/troubleshooting.md

+10-3
Original file line numberDiff line numberDiff line change
@@ -65,15 +65,23 @@ IFrame(snippet_url + 'renderers', width='100%', height=630)
6565

6666
### JupyterLab Problems
6767

68-
In order to use `plotly` in JupyterLab, you *must have the extensions installed* as detailed in the [Getting Started guide](/python/getting-started). There are two extensions: `jupyterlab-plotly` for rendering figures with `fig.show()` and `plotlywidget` for the `FigureWidget`. Please note that the *extension version matters*: the extension versions in the [Getting Started](/python/getting-started) guide match the version of `plotly` at the top of the guide and so they should be installed together.
68+
In order to use `plotly` in JupyterLab, you *must have the extensions installed* as detailed in the [Getting Started guide](/python/getting-started). There is one extension: `plotlywidget`. Please note that the *extension version matters*: the extension versions in the [Getting Started](/python/getting-started) guide match the version of `plotly` at the top of the guide and so they should be installed together. Note also that these extensions are meant to work with JupyterLab 1 or above but not 0.x.
6969

7070
To list your current extensions, run the following command in a terminal shell **from the same environment as JupyterLab was launched**:
7171

7272
```bash
7373
$ jupyter labextension list
7474
```
7575

76-
If you have [installed additional python environments](https://ipython.readthedocs.io/en/stable/install/kernel_install.html) (or kernels) to use with JupyterLab, or if you are using a centrally hosted JupyterLab installation, you need to make sure that the extensions are installed in the python environment used to launch JupyterLab (the "server" environment). If you accidentally installed the extensions (and run the command above) in one of the additional python environments ("processing" environments), then it is possible for the command above to list the correct extensions but for them to not be available in the JupyterLab front-end you have loaded in your browser. To check if this is the problem, you can [look at the active extension list through your browser via the JupyterLab Extension Manager](https://jupyterlab.readthedocs.io/en/stable/user/extensions.html#using-the-extension-manager), which will always list the extensions in the "server" environment. To summarize: if you use JupyterLab with multiple python environments, the extensions must be installed in the "server" environment, and the plotly python library must be installed in each "processing" environment that you intend to use.
76+
If you have [installed additional python environments](https://ipython.readthedocs.io/en/stable/install/kernel_install.html) (or kernels) to use with JupyterLab, or if you are using a centrally hosted JupyterLab installation, you need to make sure that the extensions are installed in the python environment used to launch JupyterLab (the "server" environment). If you accidentally installed the extensions (and run the command above) in one of the additional python environments ("processing" environments), then it is possible for the command above to list the correct extensions but for them to not be available in the JupyterLab front-end you have loaded in your browser. To check if this is the problem, you can [look at the active extension list through your browser via the JupyterLab Extension Manager](https://jupyterlab.readthedocs.io/en/stable/user/extensions.html#using-the-extension-manager), which will always list the extensions in the "server" environment. To summarize: if you use JupyterLab with multiple python environments, the extensions must be installed in the "server" environment, and the plotly python library must be installed in each "processing" environment that you intend to use.
77+
78+
> Version 4.14.3 or earlier needed two extensions (`jupyterlab-plotly` and `plotlywidget`) to be installed manually running:
79+
80+
```bash
81+
$ jupyter labextension install jupyterlab-plotly @jupyter-widgets/jupyterlab-manager plotlywidget
82+
```
83+
84+
#### JupyterLab 2 and earlier
7785

7886
If you have the correct version of the extensions installed and active in your active JupyterLab sessions and are still seeing problems, the issue may clear up if you rebuild JupyterLab. This shouldn't be required in principle but many users have resolved their issues this way. To rebuild JupyterLab, shut down JupyterLab and run the following command in a terminal shell **from the same environment as JupyterLab was launched**:
7987

@@ -84,7 +92,6 @@ $ jupyter lab build
8492
To uninstall your Plotly extensions prior to reinstalling them, run the following commands in a terminal shell before reinstalling them by following the instructions in the [Getting Started guide](/python/getting-started):
8593

8694
```bash
87-
$ jupyter labextension uninstall jupyterlab-plotly
8895
$ jupyter labextension uninstall plotlywidget
8996
```
9097

Diff for: packages/javascript/jupyterlab-plotly/README.md

-5
This file was deleted.

0 commit comments

Comments
 (0)