glue-viz / glue

Linked Data Visualizations Across Multiple Files
http://glueviz.org
Other
721 stars 152 forks source link

Calling load_plugins multiple times results in duplicate entries #2489

Closed astrofrog closed 1 month ago

astrofrog commented 1 month ago

When calling load_plugins, we should skip previously loaded entries:

In [1]: from glue.config import qt_client

In [2]: qt_client
Out[2]: <glue_qt.config.QtClientRegistry at 0x774cec36f390>

In [3]: qt_client.members
Out[3]: []

In [4]: from glue.main import load_plugins

In [5]: load_plugins()

In [7]: qt_client.members
Out[7]: 
[glue_vispy_viewers.scatter.scatter_viewer.VispyScatterViewer,
 glue_vispy_viewers.volume.volume_viewer.VispyVolumeViewer,
 glue_qt.plugins.dendro_viewer.data_viewer.DendrogramViewer,
 glue_qt.viewers.histogram.data_viewer.HistogramViewer,
 glue_qt.viewers.image.data_viewer.ImageViewer,
 glue_qt.viewers.profile.data_viewer.ProfileViewer,
 glue_qt.viewers.scatter.data_viewer.ScatterViewer,
 glue_qt.viewers.table.data_viewer.TableViewer]

In [8]: load_plugins()

In [9]: qt_client.members
Out[9]: 
[glue_vispy_viewers.scatter.scatter_viewer.VispyScatterViewer,
 glue_vispy_viewers.volume.volume_viewer.VispyVolumeViewer,
 glue_qt.plugins.dendro_viewer.data_viewer.DendrogramViewer,
 glue_qt.viewers.histogram.data_viewer.HistogramViewer,
 glue_qt.viewers.image.data_viewer.ImageViewer,
 glue_qt.viewers.profile.data_viewer.ProfileViewer,
 glue_qt.viewers.scatter.data_viewer.ScatterViewer,
 glue_qt.viewers.table.data_viewer.TableViewer,
 glue_vispy_viewers.scatter.scatter_viewer.VispyScatterViewer,
 glue_vispy_viewers.volume.volume_viewer.VispyVolumeViewer,
 glue_qt.plugins.dendro_viewer.data_viewer.DendrogramViewer,
 glue_qt.viewers.histogram.data_viewer.HistogramViewer,
 glue_qt.viewers.image.data_viewer.ImageViewer,
 glue_qt.viewers.profile.data_viewer.ProfileViewer,
 glue_qt.viewers.scatter.data_viewer.ScatterViewer,
 glue_qt.viewers.table.data_viewer.TableViewer]

cc @CyclingNinja

astrofrog commented 1 month ago

Fixed in https://github.com/glue-viz/glue/pull/2490