Code Monkey home page Code Monkey logo

bqplot-image-gl's People

Contributors

astrofrog avatar dependabot[bot] avatar dgiebs-meta avatar dhomeier avatar jsub1 avatar maartenbreddels avatar mariobuikhuizen avatar mwcraig avatar pllim avatar rosteen avatar

Stargazers

 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

bqplot-image-gl's Issues

bqplot figure does display in Accordion

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

Angle (theta) support for some shapes

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

Profile viewer marks do not appear in Linux VM

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.

Add support for variable opacity

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.

Widget not working correctly with voila

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

DOC: ImageGL needs WebGL

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.

Allow filtering of events in MouseInteraction

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.

Issue when installing Jupyter Lab extension

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.

License?

What is the license of this package? Thanks!

Issues with drag events

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!

bqplot-gl

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.

How to stack MouseInteraction with other interactions?

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:

  • When mouse is moving, it updates cursor info (this part works).
  • When I scroll, it either pans or zooms (I want to control this part in a finer detail, but for now, if either one would work, that's great)

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))

Error when installing into Jupyter Lab

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

ImageGLView.data is a Float64Array which WebGL does not support

Loading an astronomical image into Imviz in Jdaviz triggers this, as noticed by @rosteen . Not sure where the fix should be.

} else if(data instanceof Float64Array) {
console.warn('ImageGLView.data is a Float64Array which WebGL does not support, will convert to a Float32Array (consider sending float32 data for better performance).');
data = Float32Array.from(data);
type = THREE.FloatType;

Image widget not showing.

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!

bqplot-image-gl fails to build from source

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

Blending issue with multiple ImageGLs

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:

Screenshot 2023-07-11 at 21 25 42 Screenshot 2023-07-11 at 21 25 48

But if I show the two at the same time the result looks incorrect:

Screenshot 2023-07-11 at 21 25 55

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.

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.