Jupyterlab requirement
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 18.8k
- Forks
- 2.8k
- Avg merge
- 16h 26m
- Merged PRs (30d)
- 21
Description
Hi all,
This seems to be related to the PR https://github.com/plotly/plotly.py/pull/5104
The check for jupyterlab is still failing on my end. I have a LabEnv that uses other kernels in other environments. It keeps prod environments lean.
Similar to the original poster of the issue linked to the above PR, I get the following error when trying to plot using plotly.
AttributeError Traceback (most recent call last)
Cell In[10], line 88
85 else:
86 colors.append(DECREASING_COLOR)
---> 88 iplot( fig, filename = 'candlestick-ichimoku' )File ~/micromamba/envs/trader/lib/python3.12/site-packages/plotly/offline/offline.py:387, in iplot(figure_or_data, show_link, link_text, validate, image, filename, image_width, image_height, config, auto_play, animation_opts)
382 post_script = build_save_image_post_script(
383 image, filename, image_height, image_width, "iplot"
384 )
386 # Show figure
--> 387 pio.show(
388 figure,
389 validate=validate,
390 config=config,
391 auto_play=auto_play,
392 post_script=post_script,
393 animation_opts=animation_opts,
394 )File ~/micromamba/envs/trader/lib/python3.12/site-packages/plotly/io/_renderers.py:429, in show(fig, renderer, validate, **kwargs)
424 if not nbformat or Version(nbformat.version) < Version("4.2.0"):
425 raise ValueError(
426 "Mime type rendering requires nbformat>=4.2.0 but it is not installed"
427 )
--> 429 display_jupyter_version_warnings()
431 ipython_display.display(bundle, raw=True)
433 # external renderersFile [~/micromamba/envs/trader/lib/python3.12/site-packages/plotly/io/_renderers.py:60]
(http://localhost:8888/home/omagaiii/micromamba/envs/trader/lib/python3.12/site-packages/plotly/io/_renderers.py#line=59), in display_jupyter_version_warnings()
58 elif "jupyter-lab" in parent_process:
59 jupyter_lab = optional_imports.get_module("jupyterlab")
---> 60 if jupyter_lab.version < "3":
61 # Add warning about upgrading jupyterlab
62 warnings.warn(
63 f"Plotly version >= 6 requires JupyterLab >= 3 but you have {jupyter_lab.version} installed. To upgrade JupyterLab, please runpip install jupyterlab --upgrade."
64 )AttributeError: 'NoneType' object has no attribute 'version'
plotly version:
import plotly
plotly.__version__
'6.0.1'
Python version:
from platform import python_version
python_version()
'3.12.10'
Jupyterlab/host version:
jupyter lab --version
4.4.1
Jupyterlab/client version:
import jupyter_client
jupyter_client.__version__
'8.6.3'
BTW, the check above for the jupyter_client is probably what needs to be added in the code to fix remote execution. Below is how I 'fixed' it so I can move on for the time being, but probably missing other nuances.
elif "jupyter-lab" in parent_process:
jupyter_lab = optional_imports.get_module("jupyterlab") or optional_imports.get_module("jupyter_client")
if jupyter_lab.__version__ < "3":
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in plotly/io/_renderers.py at display_jupyter_version_warnings(), then inspect the optional_imports behavior for jupyterlab and jupyter_client. Reproduce the separate JupyterLab and kernel environment described in the issue and verify that plotting no longer raises the NoneType AttributeError while the JupyterLab version warning remains correct.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- jupyter, python
- Domain
- data-visualization
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100