glue-viz / bqplot-image-gl Goto Github PK
View Code? Open in Web Editor NEWJupyter widget for displaying images with a focus on astronomy
License: MIT License
Jupyter widget for displaying images with a focus on astronomy
License: MIT License
Describe the bug
ImageGL mark for a bqplot.Figure does not appear in ipywidgets.Accordion container. You can see it outside of the container, but not inside. I am using the beta version of ipywidgets v8.
To Reproduce
Using the basic example script:
from ipywidgets import *
import numpy as np
from bqplot import Figure, LinearScale, Axis, ColorScale
from bqplot_image_gl import ImageGL
scale_x = LinearScale(min=0, max=1)
scale_y = LinearScale(min=0, max=1)
scales = {'x': scale_x,
'y': scale_y}
axis_x = Axis(scale=scale_x, label='x')
axis_y = Axis(scale=scale_y, label='y', orientation='vertical')
figure = Figure(scales=scales, axes=[axis_x, axis_y])
scales_image = {'x': scale_x,
'y': scale_y,
'image': ColorScale(min=0, max=1)}
image = ImageGL(image=np.random.random((10, 10)), scales=scales_image)
figure.marks = (image,)
figure
Accordion(children=[figure])
Here is my environment:
environment.txt
As mentioned in glue-viz/glue-jupyter#396 , in Jdaviz, when one draws a shape like rectangle or ellipse, and then gives it a non-zero angle, when you click on the shape to drag, there is a gray shadow (AFAIK controlled by this package) that does not understand non-zero angle.
As a result, we see a "gray" shadow that isn't rotated as we drag, but when we finalize the selection, the final shape has the desired rotation. This behavior is very confusing.
Desired outcome: bqplot object in JS to also understand angle (theta).
Example file: https://github.com/glue-viz/bqplot-image-gl/blob/main/js/lib/BrushEllipseSelector.js
Describe the bug
Hi all, had a bit of a weird bug come through our help desk. We had a user trying to use jdaviz
on a Linux VM on their Windows machine, and everything worked except for the profile viewer, which failed to display any marks (the image viewer worked fine). They were able to get the app to work properly by turning off use of WebGL and using the non-GL bqplot
instead, which we have available as a fallback.
This might belong in bqplot-gl
since this repo was initially for images only, but I'm unclear if you've actually migrated to using that repo instead of this one.
One thing that Matplotlib images support that would be good to add here is support for colormaps that have variable opacity - for instance when showing a density map of points, it can be useful to have a colormap that is all the same shade of e.g. glue but using opacity variations for the intensity - this allows multiple different density maps to be shown at the same time.
We could add this here by adding a new scale opacity
that could be set to a LinearScale
, then update the JS code and shader so that it takes this into account.
I set up a minimal Python 3.8 environment with:
$ python -m venv ~/python/minimal
$ source ~/python/minimal/bin/activate
$ pip install bqplot-image-gl bqplot numpy voila
$ pip freeze
async-generator==1.10
attrs==19.3.0
backcall==0.1.0
bleach==3.1.3
bqplot==0.12.6
bqplot-image-gl==0.3.0
decorator==4.4.2
defusedxml==0.6.0
entrypoints==0.3
ipykernel==5.2.0
ipython==7.13.0
ipython-genutils==0.2.0
ipywidgets==7.5.1
jedi==0.16.0
Jinja2==2.11.1
jsonschema==3.2.0
jupyter-client==6.1.1
jupyter-core==4.6.3
jupyter-server==0.1.1
jupyterlab-pygments==0.1.0
MarkupSafe==1.1.1
mistune==0.8.4
nbconvert==5.6.1
nbformat==5.0.4
notebook==6.0.3
numpy==1.18.2
pandas==1.0.3
pandocfilters==1.4.2
parso==0.6.2
pexpect==4.8.0
pickleshare==0.7.5
pkg-resources==0.0.0
prometheus-client==0.7.1
prompt-toolkit==3.0.4
ptyprocess==0.6.0
Pygments==2.6.1
pyrsistent==0.16.0
python-dateutil==2.8.1
pytz==2019.3
pyzmq==19.0.0
Send2Trash==1.5.0
six==1.14.0
terminado==0.8.3
testpath==0.4.4
tornado==6.0.4
traitlets==4.3.3
traittypes==0.2.1
voila==0.1.21
wcwidth==0.1.9
webencodings==0.5.1
widgetsnbextension==3.5.1
If I then execute the following notebook:
https://gist.github.com/astrofrog/45eab0b3b978b7fd4c35a7520e97220a
using jupyter notebook basic.ipynb
, everything works fine. However, if I do voila basic.ipynb
the figure doesn't appear and I get the following errors in the js console:
Starting WebSocket: ws://localhost:8867/api/kernels/36660288-f960-4f42-a56f-5cea42f3b48a default.js:56
Kernel: connected (36660288-f960-4f42-a56f-5cea42f3b48a) default.js:1452
Loading failed for the <script> with source “http://localhost:8867/voila/bqplot.js”. localhost:8867:1:1
Falling back to https://unpkg.com/ for bqplot@^0.5.6 6 loader.js:78
Loading failed for the <script> with source “http://localhost:8867/voila/bqplot-image-gl.js”. localhost:8867:1:1
Falling back to https://unpkg.com/ for bqplot@^0.5.6 2 loader.js:78
Falling back to https://unpkg.com/ for bqplot-image-gl@^0.3.0 loader.js:78
Falling back to https://unpkg.com/ for bqplot-image-gl@^0.2.0 loader.js:78
Could not instantiate widget manager-base.js:273
uncaught exception: Class BrushEllipseSelectorModel not found in module bqplot-image-gl@^0.2.0
From testing #37 , I found that ImageGL does not work (no error message, just nothing shows) on RHEL 7 (has NVidia but the driver is probably very old). Unfortunately, it is a company machine and I am unable to upgrade anything there.
This WebGL requirement should be properly documented.
To avoid too much communication between the frontend and Python in MouseInteraction, I wonder if it might make sense to pre-filter what kind of events one is interested in, e.g.:
interact = MouseInteraction(..., events=['click', 'keydown'])
Otherwise when one is not interested in e.g. move events there is unnecessary constant communication.
When doing:
jupyter labextension install js
I get the following:
ModuleNotFoundError: Module not found: Error: Can't resolve '../shaders/image-fragment.glsl' in '/home/tom/python/dev/share/jupyter/lab/staging/node_modules/jupyter-astroimage/lib'
at factory.create (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/webpack/lib/Compilation.js:535:10)
at factory (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/webpack/lib/NormalModuleFactory.js:397:22)
at resolver (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/webpack/lib/NormalModuleFactory.js:130:21)
at asyncLib.parallel (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/webpack/lib/NormalModuleFactory.js:224:22)
at /home/tom/python/dev/share/jupyter/lab/staging/node_modules/neo-async/async.js:2825:7
at /home/tom/python/dev/share/jupyter/lab/staging/node_modules/neo-async/async.js:6886:13
at normalResolver.resolve (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/webpack/lib/NormalModuleFactory.js:214:25)
at doResolve (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/Resolver.js:184:12)
at hook.callAsync (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/Resolver.js:238:5)
at _fn0 (eval at create (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:15:1)
at resolver.doResolve (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js:37:5)
at hook.callAsync (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/Resolver.js:238:5)
at _fn0 (eval at create (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:15:1)
at hook.callAsync (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/Resolver.js:238:5)
at _fn0 (eval at create (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:27:1)
at resolver.doResolve (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:42:38)
at hook.callAsync (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/Resolver.js:238:5)
at _fn42 (eval at create (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:16:1)
at hook.callAsync (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/Resolver.js:238:5)
at _fn0 (eval at create (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:27:1)
at resolver.doResolve (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:42:38)
at hook.callAsync (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/Resolver.js:238:5)
at _fn1 (eval at create (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:16:1)
at hook.callAsync (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/Resolver.js:238:5)
at _fn0 (eval at create (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:15:1)
at fs.stat (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/DirectoryExistsPlugin.js:22:13)
at process.nextTick (/home/tom/python/dev/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:73:15)
at process._tickCallback (internal/process/next_tick.js:61:11)
resolve '../shaders/image-fragment.glsl' in '/home/tom/python/dev/share/jupyter/lab/staging/node_modules/jupyter-astroimage/lib'
using description file: /home/tom/python/dev/share/jupyter/lab/staging/node_modules/jupyter-astroimage/package.json (relative path: ./lib)
Field 'browser' doesn't contain a valid alias configuration
using description file: /home/tom/python/dev/share/jupyter/lab/staging/node_modules/jupyter-astroimage/package.json (relative path: ./shaders/image-fragment.glsl)
no extension
Field 'browser' doesn't contain a valid alias configuration
/home/tom/python/dev/share/jupyter/lab/staging/node_modules/jupyter-astroimage/shaders/image-fragment.glsl doesn't exist
.wasm
Field 'browser' doesn't contain a valid alias configuration
/home/tom/python/dev/share/jupyter/lab/staging/node_modules/jupyter-astroimage/shaders/image-fragment.glsl.wasm doesn't exist
.mjs
Field 'browser' doesn't contain a valid alias configuration
/home/tom/python/dev/share/jupyter/lab/staging/node_modules/jupyter-astroimage/shaders/image-fragment.glsl.mjs doesn't exist
.js
Field 'browser' doesn't contain a valid alias configuration
/home/tom/python/dev/share/jupyter/lab/staging/node_modules/jupyter-astroimage/shaders/image-fragment.glsl.js doesn't exist
.json
Field 'browser' doesn't contain a valid alias configuration
/home/tom/python/dev/share/jupyter/lab/staging/node_modules/jupyter-astroimage/shaders/image-fragment.glsl.json doesn't exist
as directory
/home/tom/python/dev/share/jupyter/lab/staging/node_modules/jupyter-astroimage/shaders/image-fragment.glsl doesn't exist
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
What is the license of this package? Thanks!
I am starting from the mouse.ipynb
notebook. If I define the interaction as:
interaction = MouseInteraction(x_scale=scales_image['x'], y_scale=scales_image['y'], move_throttle=70,
events=['dragmove'])
figure.interaction = interaction
def on_mouse_msg(interaction, data, buffers):
print(data)
interaction.on_msg(on_mouse_msg)
then dragmove events don't cause the callback to be called. Instead I need to specify all drag events, i.e.
events = ['dragstart', 'dragmove', 'dragend']
for dragmove
events to work. That's the first issue.
The second issue is that if I originally set events=['mousemove']
, then hover over the image, triggering the callback, and then set:
interaction.events = ['dragend', 'dragmove', 'dragstart']
the callback is not called. This took me a few hours to reproduce as it requires a very specific sequence of events!
cc. @maartenbreddels @kaiayoung @ibdafna @SylvainCorlay
It has been discussed at the bqplot board to remove ThreeJS as a dependency and make an official bqplot-gl repository.
This allows not depending on ThreeJS if not needed, and making bqplot more modular.
The new bqplot-gl has been created under the official bqplot organization: https://github.com/bqplot/bqplot-gl.
It would be awesome if all GL marks from glue-viz/bqplot-image-gl
could be moved upstream. It would make them more official to the bqplot project. I already moved the LinesGL mark and can move the ImageGL as well.
We should include some simple tests to make sure everything works fine, and set up Travis to run the continuous integration.
As part of some work trying to build a python-friendly API for image viewers, I built this "concept" document:
https://gist.github.com/eteq/bb625148969db51b2b03b71e92ca5231
It would be an interesting experiment to see if this image viewer can meet that API. The target case I had in mind with this was indeed notebooks, so this might be a perfect simple test case for it...?
I tried this but it doesn't work. I must have misunderstood how they supposed to stack. My goal is for the following to happen:
Code that does not work:
image = figure.marks[0] # figure is some bqplot-image-gl object
# This part is taken from example in #37
interaction = MouseInteraction(
x_scale=image.scales['x'], y_scale=image.scales['y'],
move_throttle=70)
figure.interaction = interaction
interaction.on_msg(some_callback_function)
# My feeble attempt to stack pan/zoom onto it
from bqplot.interacts import panzoom
interaction.observe(panzoom(figure.marks))
To reproduce:
python -m venv ~/python/lab-debug
source ~/python/lab-debug/bin/activate
pip install jupyterlab bqplot-image-gl
jupyter labextension install @jupyter-widgets/jupyterlab-manager bqplot bqplot-image-gl
Full error log:
$ jupyter labextension install @jupyter-widgets/jupyterlab-manager bqplot bqplot-image-gl
Building jupyterlab assets (production, minimized)
An error occurred.
RuntimeError: JupyterLab failed to build
See the log file for details: /tmp/jupyterlab-debug-a8k63ydq.log
$ cat /tmp/jupyterlab-debug-a8k63ydq.log
Node v12.21.0
Yarn configuration loaded.
> /usr/bin/npm pack @jupyter-widgets/jupyterlab-manager
npm notice
npm notice 📦 @jupyter-widgets/[email protected]
npm notice === Tarball Contents ===
npm notice 14.5kB LICENSE
npm notice 2.8kB README.md
npm notice 277B lib/index.d.ts
npm notice 380B lib/index.js
npm notice 5.9kB lib/manager.d.ts
npm notice 15.3kB lib/manager.js
npm notice 1.9kB lib/output.d.ts
npm notice 5.3kB lib/output.js
npm notice 828B lib/plugin.d.ts
npm notice 7.9kB lib/plugin.js
npm notice 960B lib/renderer.d.ts
npm notice 3.3kB lib/renderer.js
npm notice 216B lib/semvercache.d.ts
npm notice 862B lib/semvercache.js
npm notice 3.3kB package.json
npm notice 375B schema/plugin.json
npm notice === Tarball Details ===
npm notice name: @jupyter-widgets/jupyterlab-manager
npm notice version: 3.0.1
npm notice filename: @jupyter-widgets/jupyterlab-manager-3.0.1.tgz
npm notice package size: 15.6 kB
npm notice unpacked size: 64.0 kB
npm notice shasum: ba70c14282fb8bd3c6560588f4c7b90b2b2b05fb
npm notice integrity: sha512-yhmakhiAFtKtZ[...]RptG4BvNdS+HA==
npm notice total files: 16
npm notice
jupyter-widgets-jupyterlab-manager-3.0.1.tgz
Node v12.21.0
Yarn configuration loaded.
> /usr/bin/npm pack bqplot
npm notice
npm notice 📦 [email protected]
npm notice === Tarball Contents ===
npm notice 275B README.md
npm notice 0B css
npm notice 10.8kB css/bqplot.css
npm notice 0B dist
npm notice 1.5MB dist/index.js
npm notice 2.1kB dist/index.js.LICENSE.txt
npm notice 5.6MB dist/index.js.map
npm notice 0B lib
npm notice 2.6kB lib/Axis.d.ts
npm notice 37.5kB lib/Axis.js
npm notice 30.8kB lib/Axis.js.map
npm notice 2.0kB lib/AxisModel.d.ts
npm notice 4.0kB lib/AxisModel.js
npm notice 2.2kB lib/AxisModel.js.map
npm notice 3.7kB lib/Bars.d.ts
npm notice 35.6kB lib/Bars.js
npm notice 30.0kB lib/Bars.js.map
npm notice 3.1kB lib/BarsModel.d.ts
npm notice 10.5kB lib/BarsModel.js
npm notice 7.3kB lib/BarsModel.js.map
npm notice 1.4kB lib/Boxplot.d.ts
npm notice 24.0kB lib/Boxplot.js
npm notice 20.2kB lib/Boxplot.js.map
npm notice 2.1kB lib/BoxplotModel.d.ts
npm notice 4.5kB lib/BoxplotModel.js
npm notice 3.0kB lib/BoxplotModel.js.map
npm notice 2.6kB lib/BrushSelector.d.ts
npm notice 24.8kB lib/BrushSelector.js
npm notice 22.7kB lib/BrushSelector.js.map
npm notice 993B lib/ColorAxis.d.ts
npm notice 16.0kB lib/ColorAxis.js
npm notice 13.8kB lib/ColorAxis.js.map
npm notice 7.5kB lib/colorbrewer.d.ts
npm notice 91.2kB lib/colorbrewer.js
npm notice 41.4kB lib/colorbrewer.js.map
npm notice 477B lib/ColorScale.d.ts
npm notice 2.8kB lib/ColorScale.js
npm notice 1.3kB lib/ColorScale.js.map
npm notice 907B lib/ColorScaleModel.d.ts
npm notice 5.0kB lib/ColorScaleModel.js
npm notice 3.3kB lib/ColorScaleModel.js.map
npm notice 520B lib/ColorUtils.d.ts
npm notice 4.4kB lib/ColorUtils.js
npm notice 2.4kB lib/ColorUtils.js.map
npm notice 310B lib/DateColorScale.d.ts
npm notice 2.1kB lib/DateColorScale.js
npm notice 419B lib/DateColorScale.js.map
npm notice 719B lib/DateColorScaleModel.d.ts
npm notice 1.8kB lib/DateColorScaleModel.js
npm notice 1.0kB lib/DateColorScaleModel.js.map
npm notice 289B lib/DateScale.d.ts
npm notice 2.2kB lib/DateScale.js
npm notice 611B lib/DateScale.js.map
npm notice 608B lib/DateScaleModel.d.ts
npm notice 1.7kB lib/DateScaleModel.js
npm notice 1.0kB lib/DateScaleModel.js.map
npm notice 56B lib/extension.d.ts
npm notice 1.1kB lib/extension.js
npm notice 339B lib/extension.js.map
npm notice 732B lib/FastIntervalSelector.d.ts
npm notice 8.5kB lib/FastIntervalSelector.js
npm notice 7.0kB lib/FastIntervalSelector.js.map
npm notice 4.4kB lib/Figure.d.ts
npm notice 45.4kB lib/Figure.js
npm notice 35.3kB lib/Figure.js.map
npm notice 799B lib/FigureModel.d.ts
npm notice 3.7kB lib/FigureModel.js
npm notice 1.9kB lib/FigureModel.js.map
npm notice 406B lib/FlexLine.d.ts
npm notice 6.9kB lib/FlexLine.js
npm notice 5.9kB lib/FlexLine.js.map
npm notice 739B lib/GeoScale.d.ts
npm notice 2.8kB lib/GeoScale.js
npm notice 962B lib/GeoScale.js.map
npm notice 4.6kB lib/GeoScaleModel.d.ts
npm notice 8.7kB lib/GeoScaleModel.js
npm notice 6.3kB lib/GeoScaleModel.js.map
npm notice 1.5kB lib/Graph.d.ts
npm notice 24.9kB lib/Graph.js
npm notice 23.3kB lib/Graph.js.map
npm notice 3.5kB lib/GraphModel.d.ts
npm notice 7.7kB lib/GraphModel.js
npm notice 6.2kB lib/GraphModel.js.map
npm notice 1.6kB lib/GridHeatMap.d.ts
npm notice 26.2kB lib/GridHeatMap.js
npm notice 22.6kB lib/GridHeatMap.js.map
npm notice 2.9kB lib/GridHeatMapModel.d.ts
npm notice 7.1kB lib/GridHeatMapModel.js
npm notice 5.3kB lib/GridHeatMapModel.js.map
npm notice 497B lib/HandDraw.d.ts
npm notice 7.3kB lib/HandDraw.js
npm notice 5.6kB lib/HandDraw.js.map
npm notice 570B lib/HandDrawModel.d.ts
npm notice 2.3kB lib/HandDrawModel.js
npm notice 625B lib/HandDrawModel.js.map
npm notice 844B lib/HeatMap.d.ts
npm notice 9.3kB lib/HeatMap.js
npm notice 8.0kB lib/HeatMap.js.map
npm notice 2.3kB lib/HeatMapModel.d.ts
npm notice 4.1kB lib/HeatMapModel.js
npm notice 2.6kB lib/HeatMapModel.js.map
npm notice 1.2kB lib/Hist.d.ts
npm notice 20.7kB lib/Hist.js
npm notice 17.6kB lib/Hist.js.map
npm notice 2.4kB lib/HistModel.d.ts
npm notice 6.8kB lib/HistModel.js
npm notice 5.1kB lib/HistModel.js.map
npm notice 667B lib/Image.d.ts
npm notice 7.4kB lib/Image.js
npm notice 5.8kB lib/Image.js.map
npm notice 2.0kB lib/ImageModel.d.ts
npm notice 3.7kB lib/ImageModel.js
npm notice 2.0kB lib/ImageModel.js.map
npm notice 0B lib/index-classic.d.ts
npm notice 711B lib/index-classic.js
npm notice 222B lib/index-classic.js.map
npm notice 0B lib/index-embed.d.ts
npm notice 711B lib/index-embed.js
npm notice 218B lib/index-embed.js.map
npm notice 2.3kB lib/index.d.ts
npm notice 4.9kB lib/index.js
npm notice 1.2kB lib/index.js.map
npm notice 637B lib/IndexSelector.d.ts
npm notice 6.6kB lib/IndexSelector.js
npm notice 5.2kB lib/IndexSelector.js.map
npm notice 399B lib/Interaction.d.ts
npm notice 3.1kB lib/Interaction.js
npm notice 1.7kB lib/Interaction.js.map
npm notice 11B lib/jupyterlab-plugin.d.ts
npm notice 2.0kB lib/jupyterlab-plugin.js
npm notice 516B lib/jupyterlab-plugin.js.map
npm notice 703B lib/Label.d.ts
npm notice 7.1kB lib/Label.js
npm notice 5.6kB lib/Label.js.map
npm notice 3.8kB lib/LabelModel.d.ts
npm notice 2.9kB lib/LabelModel.js
npm notice 1.3kB lib/LabelModel.js.map
npm notice 76B lib/lasso_test.d.ts
npm notice 2.4kB lib/lasso_test.js
npm notice 1.0kB lib/lasso_test.js.map
npm notice 707B lib/LassoSelector.d.ts
npm notice 6.7kB lib/LassoSelector.js
npm notice 4.8kB lib/LassoSelector.js.map
npm notice 505B lib/LinearScale.d.ts
npm notice 3.5kB lib/LinearScale.js
npm notice 1.4kB lib/LinearScale.js.map
npm notice 964B lib/LinearScaleModel.d.ts
npm notice 5.9kB lib/LinearScaleModel.js
npm notice 4.5kB lib/LinearScaleModel.js.map
npm notice 2.0kB lib/Lines.d.ts
npm notice 27.6kB lib/Lines.js
npm notice 27.1kB lib/Lines.js.map
npm notice 5.2kB lib/LinesModel.d.ts
npm notice 12.7kB lib/LinesModel.js
npm notice 10.8kB lib/LinesModel.js.map
npm notice 295B lib/LogScale.d.ts
npm notice 2.2kB lib/LogScale.js
npm notice 609B lib/LogScale.js.map
npm notice 567B lib/LogScaleModel.d.ts
npm notice 1.3kB lib/LogScaleModel.js
npm notice 480B lib/LogScaleModel.js.map
npm notice 1.5kB lib/Map.d.ts
npm notice 16.8kB lib/Map.js
npm notice 16.1kB lib/Map.js.map
npm notice 1.7kB lib/MapModel.d.ts
npm notice 4.2kB lib/MapModel.js
npm notice 2.6kB lib/MapModel.js.map
npm notice 3.9kB lib/Mark.d.ts
npm notice 18.7kB lib/Mark.js
npm notice 14.8kB lib/Mark.js.map
npm notice 380B lib/Markers.d.ts
npm notice 5.9kB lib/Markers.js
npm notice 5.0kB lib/Markers.js.map
npm notice 3.4kB lib/MarketMap.d.ts
npm notice 47.9kB lib/MarketMap.js
npm notice 41.4kB lib/MarketMap.js.map
npm notice 2.3kB lib/MarketMapModel.d.ts
npm notice 3.4kB lib/MarketMapModel.js
npm notice 1.6kB lib/MarketMapModel.js.map
npm notice 1.6kB lib/MarkModel.d.ts
npm notice 4.9kB lib/MarkModel.js
npm notice 2.6kB lib/MarkModel.js.map
npm notice 1.9kB lib/OHLC.d.ts
npm notice 26.9kB lib/OHLC.js
npm notice 24.2kB lib/OHLC.js.map
npm notice 2.3kB lib/OHLCModel.d.ts
npm notice 8.3kB lib/OHLCModel.js
npm notice 7.2kB lib/OHLCModel.js.map
npm notice 265B lib/OrdinalColorScale.d.ts
npm notice 2.8kB lib/OrdinalColorScale.js
npm notice 1.3kB lib/OrdinalColorScale.js.map
npm notice 461B lib/OrdinalColorScaleModel.d.ts
npm notice 1.2kB lib/OrdinalColorScaleModel.js
npm notice 354B lib/OrdinalColorScaleModel.js.map
npm notice 418B lib/OrdinalScale.d.ts
npm notice 4.6kB lib/OrdinalScale.js
npm notice 2.9kB lib/OrdinalScale.js.map
npm notice 809B lib/OrdinalScaleModel.d.ts
npm notice 4.7kB lib/OrdinalScaleModel.js
npm notice 2.8kB lib/OrdinalScaleModel.js.map
npm notice 561B lib/PanZoom.d.ts
npm notice 8.7kB lib/PanZoom.js
npm notice 6.6kB lib/PanZoom.js.map
npm notice 725B lib/PanZoomModel.d.ts
npm notice 3.2kB lib/PanZoomModel.js
npm notice 1.7kB lib/PanZoomModel.js.map
npm notice 875B lib/Pie.d.ts
npm notice 22.4kB lib/Pie.js
npm notice 19.9kB lib/Pie.js.map
npm notice 2.4kB lib/PieModel.d.ts
npm notice 5.4kB lib/PieModel.js
npm notice 4.0kB lib/PieModel.js.map
npm notice 224B lib/PopperReference.d.ts
npm notice 2.7kB lib/PopperReference.js
npm notice 1.9kB lib/PopperReference.js.map
npm notice 734B lib/Scale.d.ts
npm notice 2.9kB lib/Scale.js
npm notice 1.2kB lib/Scale.js.map
npm notice 841B lib/ScaleModel.d.ts
npm notice 2.3kB lib/ScaleModel.js
npm notice 1.3kB lib/ScaleModel.js.map
npm notice 912B lib/Scatter.d.ts
npm notice 13.1kB lib/Scatter.js
npm notice 12.0kB lib/Scatter.js.map
npm notice 2.5kB lib/ScatterBase.d.ts
npm notice 25.8kB lib/ScatterBase.js
npm notice 23.9kB lib/ScatterBase.js.map
npm notice 3.5kB lib/ScatterBaseModel.d.ts
npm notice 6.0kB lib/ScatterBaseModel.js
npm notice 3.7kB lib/ScatterBaseModel.js.map
npm notice 4.5kB lib/ScatterGL.d.ts
npm notice 44.8kB lib/ScatterGL.js
npm notice 41.2kB lib/ScatterGL.js.map
npm notice 2.7kB lib/ScatterGLModel.d.ts
npm notice 3.4kB lib/ScatterGLModel.js
npm notice 1.6kB lib/ScatterGLModel.js.map
npm notice 4.0kB lib/ScatterModel.d.ts
npm notice 3.7kB lib/ScatterModel.js
npm notice 2.0kB lib/ScatterModel.js.map
npm notice 296B lib/selector_utils.d.ts
npm notice 2.8kB lib/selector_utils.js
npm notice 2.1kB lib/selector_utils.js.map
npm notice 1.2kB lib/Selector.d.ts
npm notice 8.8kB lib/Selector.js
npm notice 6.2kB lib/Selector.js.map
npm notice 6.0kB lib/SelectorModel.d.ts
npm notice 6.2kB lib/SelectorModel.js
npm notice 2.7kB lib/SelectorModel.js.map
npm notice 307B lib/serialize.d.ts
npm notice 3.8kB lib/serialize.js
npm notice 2.9kB lib/serialize.js.map
npm notice 0B lib/test
npm notice 11B lib/test/bars.d.ts
npm notice 12.0kB lib/test/bars.js
npm notice 11.7kB lib/test/bars.js.map
npm notice 11B lib/test/binary_serialization.d.ts
npm notice 4.2kB lib/test/binary_serialization.js
npm notice 3.4kB lib/test/binary_serialization.js.map
npm notice 311B lib/test/common.d.ts
npm notice 747B lib/test/common.js
npm notice 1.0kB lib/test/common.js.map
npm notice 934B lib/test/dummy-manager.d.ts
npm notice 3.7kB lib/test/dummy-manager.js
npm notice 2.6kB lib/test/dummy-manager.js.map
npm notice 11B lib/test/figure.d.ts
npm notice 9.1kB lib/test/figure.js
npm notice 6.3kB lib/test/figure.js.map
npm notice 11B lib/test/gridheatmap.d.ts
npm notice 5.2kB lib/test/gridheatmap.js
npm notice 2.9kB lib/test/gridheatmap.js.map
npm notice 11B lib/test/hist.d.ts
npm notice 5.9kB lib/test/hist.js
npm notice 4.7kB lib/test/hist.js.map
npm notice 11B lib/test/image.d.ts
npm notice 4.0kB lib/test/image.js
npm notice 1.9kB lib/test/image.js.map
npm notice 266B lib/test/index.d.ts
npm notice 593B lib/test/index.js
npm notice 356B lib/test/index.js.map
npm notice 11B lib/test/interacts.d.ts
npm notice 15.8kB lib/test/interacts.js
npm notice 13.5kB lib/test/interacts.js.map
npm notice 11B lib/test/lines.d.ts
npm notice 12.1kB lib/test/lines.js
npm notice 12.6kB lib/test/lines.js.map
npm notice 11B lib/test/pie.d.ts
npm notice 11.1kB lib/test/pie.js
npm notice 11.2kB lib/test/pie.js.map
npm notice 11B lib/test/scales.d.ts
npm notice 1.5kB lib/test/scales.js
npm notice 604B lib/test/scales.js.map
npm notice 11B lib/test/scatter-mega.d.ts
npm notice 23.3kB lib/test/scatter-mega.js
npm notice 24.0kB lib/test/scatter-mega.js.map
npm notice 11B lib/test/scatter.d.ts
npm notice 5.1kB lib/test/scatter.js
npm notice 3.6kB lib/test/scatter.js.map
npm notice 11B lib/test/utils.d.ts
npm notice 1.9kB lib/test/utils.js
npm notice 1.6kB lib/test/utils.js.map
npm notice 1.6kB lib/test/widget-utils.d.ts
npm notice 18.1kB lib/test/widget-utils.js
npm notice 14.6kB lib/test/widget-utils.js.map
npm notice 718B lib/Toolbar.d.ts
npm notice 9.5kB lib/Toolbar.js
npm notice 6.3kB lib/Toolbar.js.map
npm notice 425B lib/Tooltip.d.ts
npm notice 4.4kB lib/Tooltip.js
npm notice 2.8kB lib/Tooltip.js.map
npm notice 138B lib/TooltipModel.d.ts
npm notice 1.3kB lib/TooltipModel.js
npm notice 492B lib/TooltipModel.js.map
npm notice 594B lib/utils.d.ts
npm notice 5.5kB lib/utils.js
npm notice 3.2kB lib/utils.js.map
npm notice 43B lib/version.d.ts
npm notice 811B lib/version.js
npm notice 197B lib/version.js.map
npm notice 0B package
npm notice 3.2kB package.json
npm notice 0B shaders
npm notice 1.1kB shaders/scales.glsl
npm notice 5.9kB shaders/scatter-fragment.glsl
npm notice 6.1kB shaders/scatter-vertex.glsl
npm notice === Tarball Details ===
npm notice name: bqplot
npm notice version: 0.5.33
npm notice filename: bqplot-0.5.33.tgz
npm notice package size: 2.0 MB
npm notice unpacked size: 9.2 MB
npm notice shasum: 4639d4f30d666e62c85db2cafa83d1d8127358e7
npm notice integrity: sha512-Z64MwXxUUx7fY[...]lxiAbHco/scBA==
npm notice total files: 324
npm notice
bqplot-0.5.33.tgz
Node v12.21.0
Yarn configuration loaded.
> /usr/bin/npm pack bqplot-image-gl
npm notice
npm notice 📦 [email protected]
npm notice === Tarball Contents ===
npm notice 181B README.md
npm notice 1.1MB dist/index.js
npm notice 15.1kB lib/BrushEllipseSelector.js
npm notice 1.2kB lib/BrushEllipseSelectorModel.js
npm notice 11.6kB lib/contour.js
npm notice 324B lib/embed.js
npm notice 628B lib/examples/lines/index.js
npm notice 971B lib/examples/lines/Line2.js
npm notice 1.9kB lib/examples/lines/LineGeometry.js
npm notice 7.3kB lib/examples/lines/LineMaterial.js
npm notice 1.0kB lib/examples/lines/LineSegments2.js
npm notice 4.9kB lib/examples/lines/LineSegmentsGeometry.js
npm notice 855B lib/extension.js
npm notice 15.5kB lib/imagegl.js
npm notice 367B lib/index.js
npm notice 419B lib/labplugin.js
npm notice 6.9kB lib/linesgl.js
npm notice 8.6kB lib/MouseInteraction.js
npm notice 3.7kB lib/serialize.js
npm notice 396B lib/utils.js
npm notice 13.1kB lib/values.js
npm notice 59B lib/version.js
npm notice 4.0kB lib/ViewListener.js
npm notice 2.1kB package.json
npm notice 1.5kB shaders/image-fragment.glsl
npm notice 208B shaders/image-vertex.glsl
npm notice 754B shaders/scales-extra.glsl
npm notice 592B shaders/scales-transform.glsl
npm notice === Tarball Details ===
npm notice name: bqplot-image-gl
npm notice version: 1.4.5
npm notice filename: bqplot-image-gl-1.4.5.tgz
npm notice package size: 312.4 kB
npm notice unpacked size: 1.2 MB
npm notice shasum: 00712509f04ead751cfdc5986a8cae0a843ebdda
npm notice integrity: sha512-kgaD/NQ9WqZQC[...]Z4oMoEI6Z//8w==
npm notice total files: 28
npm notice
bqplot-image-gl-1.4.5.tgz
Node v12.21.0
Yarn configuration loaded.
Building jupyterlab assets (production, minimized)
> node /home/tom/python/lab-debug/lib/python3.9/site-packages/jupyterlab/staging/yarn.js install --non-interactive
yarn install v1.21.1
[1/5] Validating package.json...
[2/5] Resolving packages...
warning bqplot-image-gl > bqplot > [email protected]: Use topojson-client, topojson-server or topojson-simplify directly.
warning bqplot-image-gl > bqplot > [email protected]: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1
warning bqplot > [email protected]: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1
warning bqplot > [email protected]: Use topojson-client, topojson-server or topojson-simplify directly.
[3/5] Fetching packages...
info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
[4/5] Linking dependencies...
warning "@jupyterlab/extensionmanager > [email protected]" has incorrect peer dependency "react@^16.0.0".
warning "@jupyterlab/json-extension > [email protected]" has incorrect peer dependency "react@^0.14.0 || ^15.0.0 || ^16.0.0".
warning "@jupyterlab/json-extension > [email protected]" has unmet peer dependency "@types/react@^16.3.0 || ^17.0.0".
warning "@jupyterlab/vdom > @nteract/[email protected]" has incorrect peer dependency "react@^16.3.2".
warning " > @lumino/[email protected]" has unmet peer dependency "[email protected]".
warning "bqplot-image-gl > [email protected]" has incorrect peer dependency "webpack@^4.3.0".
warning "bqplot > [email protected]" has unmet peer dependency "eslint@^7.12.1".
warning "bqplot > [email protected]" has unmet peer dependency "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8".
warning "bqplot > [email protected]" has unmet peer dependency "eslint@>=5.16.0".
warning "bqplot > @typescript-eslint/[email protected]" has unmet peer dependency "eslint@^5.0.0 || ^6.0.0 || ^7.0.0".
warning "bqplot > @typescript-eslint/[email protected]" has unmet peer dependency "eslint@^5.0.0 || ^6.0.0 || ^7.0.0".
warning "bqplot-image-gl > bqplot > eslint-plugin-node > [email protected]" has unmet peer dependency "eslint@>=4.19.1".
warning "bqplot-image-gl > bqplot > @typescript-eslint/eslint-plugin > [email protected]" has unmet peer dependency "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta".
warning "bqplot-image-gl > bqplot > @typescript-eslint/eslint-plugin > @typescript-eslint/[email protected]" has unmet peer dependency "eslint@*".
warning "bqplot-image-gl > bqplot > @typescript-eslint/eslint-plugin > @typescript-eslint/experimental-utils > [email protected]" has unmet peer dependency "eslint@>=5".
warning "@jupyterlab/builder > @jupyterlab/buildutils > verdaccio > [email protected]" has unmet peer dependency "typanion@*".
warning Workspaces can only be enabled in private projects.
warning Workspaces can only be enabled in private projects.
[5/5] Building fresh packages...
success Saved lockfile.
Done in 17.56s.
> node /home/tom/python/lab-debug/lib/python3.9/site-packages/jupyterlab/staging/yarn.js yarn-deduplicate -s fewer --fail
yarn run v1.21.1
$ /home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/.bin/yarn-deduplicate -s fewer --fail
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
> node /home/tom/python/lab-debug/lib/python3.9/site-packages/jupyterlab/staging/yarn.js
yarn install v1.21.1
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
[4/5] Linking dependencies...
warning "@jupyterlab/extensionmanager > [email protected]" has incorrect peer dependency "react@^16.0.0".
warning "@jupyterlab/json-extension > [email protected]" has incorrect peer dependency "react@^0.14.0 || ^15.0.0 || ^16.0.0".
warning "@jupyterlab/json-extension > [email protected]" has unmet peer dependency "@types/react@^16.3.0 || ^17.0.0".
warning "@jupyterlab/vdom > @nteract/[email protected]" has incorrect peer dependency "react@^16.3.2".
warning " > @lumino/[email protected]" has unmet peer dependency "[email protected]".
warning "bqplot-image-gl > [email protected]" has incorrect peer dependency "webpack@^4.3.0".
warning "bqplot > @typescript-eslint/[email protected]" has unmet peer dependency "eslint@^5.0.0 || ^6.0.0 || ^7.0.0".
warning "bqplot > @typescript-eslint/[email protected]" has unmet peer dependency "eslint@^5.0.0 || ^6.0.0 || ^7.0.0".
warning "bqplot > [email protected]" has unmet peer dependency "eslint@^7.12.1".
warning "bqplot > [email protected]" has unmet peer dependency "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8".
warning "bqplot > [email protected]" has unmet peer dependency "eslint@>=5.16.0".
warning "bqplot-image-gl > bqplot > @typescript-eslint/eslint-plugin > @typescript-eslint/[email protected]" has unmet peer dependency "eslint@*".
warning "bqplot-image-gl > bqplot > @typescript-eslint/eslint-plugin > [email protected]" has unmet peer dependency "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta".
warning "bqplot-image-gl > bqplot > eslint-plugin-node > [email protected]" has unmet peer dependency "eslint@>=4.19.1".
warning "bqplot-image-gl > bqplot > @typescript-eslint/eslint-plugin > @typescript-eslint/experimental-utils > [email protected]" has unmet peer dependency "eslint@>=5".
warning "@jupyterlab/builder > @jupyterlab/buildutils > verdaccio > [email protected]" has unmet peer dependency "typanion@*".
warning Workspaces can only be enabled in private projects.
warning Workspaces can only be enabled in private projects.
[5/5] Building fresh packages...
success Saved lockfile.
Done in 3.16s.
> node /home/tom/python/lab-debug/lib/python3.9/site-packages/jupyterlab/staging/yarn.js run build:prod:minimize
yarn run v1.21.1
$ webpack --config webpack.prod.minimize.config.js
[webpack-cli] ModuleNotFoundError: Module not found: Error: Can't resolve 'd3-selection-multi' in '/home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/bqplot-image-gl/lib'
at /home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/webpack/lib/Compilation.js:1768:28
at /home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/webpack/lib/NormalModuleFactory.js:742:13
at eval (eval at create (/home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:8:1)
at /home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/webpack/lib/NormalModuleFactory.js:276:22
at eval (eval at create (/home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:7:1)
at /home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/webpack/lib/NormalModuleFactory.js:405:22
at /home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/webpack/lib/NormalModuleFactory.js:119:11
at /home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/webpack/lib/NormalModuleFactory.js:650:24
at /home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/webpack/lib/NormalModuleFactory.js:813:8
at /home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/webpack/lib/NormalModuleFactory.js:933:5
resolve 'd3-selection-multi' in '/home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/bqplot-image-gl/lib'
Parsed request is a module
using description file: /home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/bqplot-image-gl/package.json (relative path: ./lib)
Field 'browser' doesn't contain a valid alias configuration
resolve as module
/home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/bqplot-image-gl/lib/node_modules doesn't exist or is not a directory
looking for modules in /home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/bqplot-image-gl/node_modules
single file module
using description file: /home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/bqplot-image-gl/package.json (relative path: ./node_modules/d3-selection-multi)
no extension
Field 'browser' doesn't contain a valid alias configuration
/home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/bqplot-image-gl/node_modules/d3-selection-multi doesn't exist
.js
Field 'browser' doesn't contain a valid alias configuration
/home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/bqplot-image-gl/node_modules/d3-selection-multi.js doesn't exist
.json
Field 'browser' doesn't contain a valid alias configuration
/home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/bqplot-image-gl/node_modules/d3-selection-multi.json doesn't exist
.wasm
Field 'browser' doesn't contain a valid alias configuration
/home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/bqplot-image-gl/node_modules/d3-selection-multi.wasm doesn't exist
/home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/bqplot-image-gl/node_modules/d3-selection-multi doesn't exist
/home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/node_modules doesn't exist or is not a directory
looking for modules in /home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules
single file module
using description file: /home/tom/python/lab-debug/share/jupyter/lab/staging/package.json (relative path: ./node_modules/d3-selection-multi)
no extension
Field 'browser' doesn't contain a valid alias configuration
/home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/d3-selection-multi doesn't exist
.js
Field 'browser' doesn't contain a valid alias configuration
/home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/d3-selection-multi.js doesn't exist
.json
Field 'browser' doesn't contain a valid alias configuration
/home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/d3-selection-multi.json doesn't exist
.wasm
Field 'browser' doesn't contain a valid alias configuration
/home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/d3-selection-multi.wasm doesn't exist
/home/tom/python/lab-debug/share/jupyter/lab/staging/node_modules/d3-selection-multi doesn't exist
/home/tom/python/lab-debug/share/jupyter/lab/node_modules doesn't exist or is not a directory
/home/tom/python/lab-debug/share/jupyter/node_modules doesn't exist or is not a directory
/home/tom/python/lab-debug/share/node_modules doesn't exist or is not a directory
/home/tom/python/lab-debug/node_modules doesn't exist or is not a directory
/home/tom/python/node_modules doesn't exist or is not a directory
/home/tom/node_modules doesn't exist or is not a directory
/home/node_modules doesn't exist or is not a directory
/node_modules doesn't exist or is not a directory
error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
JupyterLab failed to build
Traceback (most recent call last):
File "/home/tom/python/lab-debug/lib/python3.9/site-packages/jupyterlab/debuglog.py", line 48, in debug_logging
yield
File "/home/tom/python/lab-debug/lib/python3.9/site-packages/jupyterlab/labextensions.py", line 140, in start
build(clean_staging=self.should_clean,
File "/home/tom/python/lab-debug/lib/python3.9/site-packages/jupyterlab/commands.py", line 482, in build
return handler.build(name=name, version=version, static_url=static_url,
File "/home/tom/python/lab-debug/lib/python3.9/site-packages/jupyterlab/commands.py", line 695, in build
raise RuntimeError(msg)
RuntimeError: JupyterLab failed to build
Exiting application: lab
Loading an astronomical image into Imviz in Jdaviz triggers this, as noticed by @rosteen . Not sure where the fix should be.
bqplot-image-gl/js/lib/imagegl.js
Lines 286 to 289 in bd7bac1
Hi I was trying to show image with Ipyastroimage with input being numpy array
Input:
color_scale = bqplot.ColorScale() scale_x = bqplot.LinearScale() scale_y = bqplot.LinearScale() image = AstroImage(image=data, scales={'image': color_scale, 'x': scale_x, 'y': scale_y})
Output:
AstroImage(image=array([[ 4.1139283, 4.4903197, 4.6050134, ..., 5.6953917, 9.383944 , 10.25792 ], [ 4.670872 , 5.606509 , 5.4989924, ..., 3.6070461, 5.371789 , 6.604827 ], [ 4.3647394, 5.54057 , 6.055377 , ..., 3.5973377, 4.83896 , 6.737476 ], ..., [22.368206 , 11.044641 , 4.1607943, ..., 3.3912497, 4.3756213, 3.659427 ], [ 9.733774 , 6.5522428, 3.4279304, ..., 2.7059777, 2.4026213, 2.7714913], [ 4.641999 , 3.700842 , 3.0346284, ..., 3.0442555, 2.8392305, 3.0797014]], dtype=float32), interactions={'hover': 'tooltip'}, scales={'image': ColorScale(), 'x': LinearScale(), 'y': LinearScale()}, scales_metadata={'x': {'orientation': 'horizontal', 'dimension': 'x'}, 'y': {'orientation': 'vertical', 'dimension': 'y'}, 'image': {'dimension': 'color'}}, tooltip_style={'opacity': 0.9})
As you can see only AstroImage follow by arguments value is shown
Then I try to put it in bqplot figure by using following:
fig = bqp.Figure(marks=[image])
display(fig)
still it didn't shown anything.
If you have any idea what might the problem, please let me know.
Thanks!
It was working before but now it is failing. Definitely not because of something you did here, because the last commit was from Aug 2022. So it is something you did not do, i.e., upstream changed and is no longer compatible.
Example log: https://github.com/spacetelescope/jdaviz/actions/runs/4247392893/jobs/7385696133
× Building wheel for bqplot-image-gl (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [161 lines of output]
running bdist_wheel
running jsdeps
Installing build dependencies with npm. This may take a while...
> npm install
npm WARN deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated [email protected]: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated @npmcli/[email protected]: This functionality has been moved to @npmcli/fs
npm WARN deprecated [email protected]: This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in.
npm WARN deprecated [email protected]: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies
npm WARN deprecated [email protected]: Use topojson-client, topojson-server or topojson-simplify directly.
npm WARN deprecated [email protected]: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1
> [email protected] postinstall
> patch-package
patch-package 6.5.1
Applying patches...
[email protected] ✔
> [email protected] prepare
> npm run build
> [email protected] build
> npm run build:labextension && webpack --mode=production
> [email protected] build:labextension
> jupyter labextension build .
Building extension in .
Compilation starting…
Compilation finished
assets by chunk 742 KiB (id hint: vendors)
asset 212.1a3db135695e51e781e2.js?v=1a3db135695e51e781e2 547 KiB [emitted] [immutable] [minimized] [big] (id hint: vendors) 1 related asset
asset 486.3a1b2f5aba4c76cb7e99.js?v=3a1b2f5aba4c76cb7e99 69 KiB [emitted] [immutable] [minimized] (id hint: vendors) 1 related asset
asset 822.ed05ba9b0a28029a54b4.js?v=ed05ba9b0a28029a54b4 56.9 KiB [emitted] [immutable] [minimized] (id hint: vendors) 1 related asset
asset 737.4b3d09861495f1[62](https://github.com/spacetelescope/jdaviz/actions/runs/4247392893/jobs/7385696133#step:5:63)be6c.js?v=4b3d09861495f162be6c 36.6 KiB [emitted] [immutable] [minimized] (id hint: vendors)
asset 374.70cfa7411427495179e3.js?v=70cfa7411427495179e3 26.3 KiB [emitted] [immutable] [minimized] (id hint: vendors)
asset 779.1ec270975c36b07fb461.js?v=1ec270975c36b07fb461 6.78 KiB [emitted] [immutable] [minimized] (id hint: vendors)
asset 568.43bd08fa01c83019625b.js?v=43bd08fa01c83019625b 53.7 KiB [emitted] [immutable] [minimized]
asset third-party-licenses.json 19.8 KiB [emitted]
asset remoteEntry.880f5a65ca2601cda16d.js 8.53 KiB [emitted] [immutable] [minimized] (name: bqplot-image-gl)
asset 501.2039d5d0f728[64](https://github.com/spacetelescope/jdaviz/actions/runs/4247392893/jobs/7385696133#step:5:65)eac0c7.js?v=2039d5d0f72864eac0c7 728 bytes [emitted] [immutable] [minimized]
asset 261.3bfa212b3b67b52cda4f.js?v=3bfa212b3b67b52cda4f 305 bytes [emitted] [immutable] [minimized]
orphan modules 208 KiB [orphan] 2[65](https://github.com/spacetelescope/jdaviz/actions/runs/4247392893/jobs/7385696133#step:5:66) modules
runtime modules 20.4 KiB 13 modules
built modules 2.09 MiB (javascript) 462 bytes (consume-shared) 294 bytes (share-init) [built]
cacheable modules 2.09 MiB 57 modules
consume-shared-module modules 462 bytes
modules by path consume shared module (default) @jupyter-widgets/ 84 bytes
consume shared module (default) @jupyter-widgets/base@^1.0.0 || ^2.0.0 || ^3.0.0 (singleton) 42 bytes [built] [code generated]
consume shared module (default) @jupyter-widgets/base@^1.1.8 (singleton) 42 bytes [built] [code generated]
+ 9 modules
provide-module modules 294 bytes
provide shared module (default) [email protected] = ./lib/index.js 42 bytes [built] [code generated]
provide shared module (default) [email protected] = ./node_modules/d3-contour/src/index.js 42 bytes [built] [code generated]
provide shared module (default) [email protected] = ./node_modules/d3-geo/src/index.js 42 bytes [built] [code generated]
+ 4 modules
container entry 42 bytes [built] [code generated]
WARNING in license-webpack-plugin: could not find any license file for jupyter-dataserializers. Use the licenseTextOverrides option to add the license text if desired.
WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
This can impact web performance.
Assets:
212.1a3db135695e51e781e2.js?v=1a3db135695e51e781e2 (547 KiB)
webpack 5.75.0 compiled with 2 warnings in 8838 ms
node:internal/crypto/hash:71
this[kHandle] = new _Hash(algorithm, xofLen);
^
Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:71:19)
at Object.createHash (node:crypto:133:10)
at module.exports (/tmp/pip-req-build-j6n2hs2k/js/node_modules/webpack/lib/util/createHash.js:135:53)
at NormalModule._initBuildHash (/tmp/pip-req-build-j6n2hs2k/js/node_modules/webpack/lib/NormalModule.js:417:16)
at handleParseError (/tmp/pip-req-build-j6n2hs2k/js/node_modules/webpack/lib/NormalModule.js:471:10)
at /tmp/pip-req-build-j6n2hs2k/js/node_modules/webpack/lib/NormalModule.js:503:5
at /tmp/pip-req-build-j6n2hs2k/js/node_modules/webpack/lib/NormalModule.js:358:12
at /tmp/pip-req-build-j6n2hs2k/js/node_modules/loader-runner/lib/LoaderRunner.js:373:3
at iterateNormalLoaders (/tmp/pip-req-build-j6n2hs2k/js/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
at Array.<anonymous> (/tmp/pip-req-build-j6n2hs2k/js/node_modules/loader-runner/lib/LoaderRunner.js:205:4)
at Storage.finished (/tmp/pip-req-build-j6n2hs2k/js/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:55:16)
at /tmp/pip-req-build-j6n2hs2k/js/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:91:9
at /tmp/pip-req-build-j6n2hs2k/js/node_modules/graceful-fs/graceful-fs.js:123:16
at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:[68](https://github.com/spacetelescope/jdaviz/actions/runs/4247392893/jobs/7385696133#step:5:69):3) {
opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
library: 'digital envelope routines',
reason: 'unsupported',
code: 'ERR_OSSL_EVP_UNSUPPORTED'
}
Node.js v18.14.1
npm ERR! code 1
npm ERR! path /tmp/pip-req-build-j6n2hs2k/js
npm ERR! command failed
npm ERR! command sh -c npm run build
npm ERR! A complete log of this run can be found in:
npm ERR! /home/runner/.npm/_logs/2023-02-22T22_38_54_641Z-debug-0.log
Traceback (most recent call last):
File "/home/runner/work/jdaviz/jdaviz/.tox/py311-test-devdeps/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
main()
File "/home/runner/work/jdaviz/jdaviz/.tox/py311-test-devdeps/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/work/jdaviz/jdaviz/.tox/py311-test-devdeps/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 251, in build_wheel
return _build_backend().build_wheel(wheel_directory, config_settings,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-3dmpta49/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 413, in build_wheel
return self._build_with_temp_dir(['bdist_wheel'], '.whl',
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-3dmpta49/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 398, in _build_with_temp_dir
self.run_setup()
File "/tmp/pip-build-env-3dmpta49/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 335, in run_setup
exec(code, locals())
File "<string>", line 46, in <module>
File "/tmp/pip-build-env-3dmpta49/overlay/lib/python3.11/site-packages/setuptools/__init__.py", line 108, in setup
return distutils.core.setup(**attrs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-3dmpta49/overlay/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 185, in setup
return run_commands(dist)
^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-3dmpta49/overlay/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
dist.run_commands()
File "/tmp/pip-build-env-3dmpta49/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 9[69](https://github.com/spacetelescope/jdaviz/actions/runs/4247392893/jobs/7385696133#step:5:70), in run_commands
self.run_command(cmd)
File "/tmp/pip-build-env-3dmpta49/overlay/lib/python3.11/site-packages/setuptools/dist.py", line 1221, in run_command
super().run_command(command)
File "/tmp/pip-build-env-3dmpta49/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
cmd_obj.run()
File "/tmp/pip-build-env-3dmpta49/overlay/lib/python3.11/site-packages/jupyter_packaging/setupbase.py", line 503, in run
[self.run_command(cmd) for cmd in cmds]
File "/tmp/pip-build-env-3dmpta49/overlay/lib/python3.11/site-packages/jupyter_packaging/setupbase.py", line 503, in <listcomp>
[self.run_command(cmd) for cmd in cmds]
^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-3dmpta49/overlay/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
self.distribution.run_command(command)
File "/tmp/pip-build-env-3dmpta49/overlay/lib/python3.11/site-packages/setuptools/dist.py", line 1221, in run_command
super().run_command(command)
File "/tmp/pip-build-env-3dmpta49/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
cmd_obj.run()
File "/tmp/pip-build-env-3dmpta49/overlay/lib/python3.11/site-packages/jupyter_packaging/setupbase.py", line 2[74](https://github.com/spacetelescope/jdaviz/actions/runs/4247392893/jobs/7385696133#step:5:75), in run
c.run()
File "/tmp/pip-build-env-3dmpta49/overlay/lib/python3.11/site-packages/jupyter_packaging/setupbase.py", line 3[79](https://github.com/spacetelescope/jdaviz/actions/runs/4247392893/jobs/7385696133#step:5:80), in run
run(npm_cmd + ['install'], cwd=node_package)
File "/tmp/pip-build-env-3dmpta49/overlay/lib/python3.11/site-packages/jupyter_packaging/setupbase.py", line [225](https://github.com/spacetelescope/jdaviz/actions/runs/4247392893/jobs/7385696133#step:5:226), in run
return subprocess.check_call(cmd, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/hostedtoolcache/Python/3.11.2/x64/lib/python3.11/subprocess.py", line 413, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/usr/local/bin/npm', 'install']' returned non-zero exit status 1.
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for bqplot-image-gl
The following notebook demonstrates a bug in the blending of multiple ImageGL marks:
https://gist.github.com/astrofrog/08735bc30c2f8980edeaae0fd0842352
In short, I set up two arrays that look like:
image1 = np.array([[[255, 0, 0, 255], [0, 0, 255, 255]], [[255, 0, 0, 0], [0, 0, 255, 0]]]).astype(np.float32)
image2 = np.array([[[0, 0, 255, 0], [255, 0, 0, 0]], [[0, 0, 255, 255], [255, 0, 0, 255]]]).astype(np.float32)
In both cases the top and bottom row of pixels is the same within the image except that the top row (in the first case) and the bottom row (in the second case) are transparent. If I show the arrays individually I get sensible results:
But if I show the two at the same time the result looks incorrect:
It seems perhaps the alpha compositing is not correctly taking the opacity layer into account. I haven't had a chance to dig into the shader code yet.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.