From 35175b3ecaf224d675b9c0e899b10eadce15c68b Mon Sep 17 00:00:00 2001 From: Kyle Conroy Date: Fri, 1 Dec 2023 13:36:21 -0500 Subject: [PATCH 1/5] remove support for jdaviz 3.8 --- lcviz/helper.py | 6 +----- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/lcviz/helper.py b/lcviz/helper.py index 295d4477..ab3bb328 100644 --- a/lcviz/helper.py +++ b/lcviz/helper.py @@ -92,11 +92,7 @@ def __init__(self, *args, **kwargs): ) # inject custom css from lcviz_style.vue (on top of jdaviz styles) - if hasattr(self.app, '_add_style'): - # will be guaranteed after jdaviz 3.9 - self.app._add_style((__file__, 'lcviz_style.vue')) - else: - self.app.set_style_template_file((__file__, 'lcviz_style.vue')) + self.app._add_style((__file__, 'lcviz_style.vue')) # set the link to read the docs self.app.docs_link = "https://lcviz.readthedocs.io" diff --git a/pyproject.toml b/pyproject.toml index ae426903..86a9da71 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,7 +20,7 @@ classifiers = [ ] dependencies = [ "astropy>=5.2", - "jdaviz==3.8.*", + "jdaviz>=3.9", "lightkurve>=2.4.1", ] dynamic = [ From 05a221e0df703a849d313b075487bebabb3b7a4e Mon Sep 17 00:00:00 2001 From: Kyle Conroy Date: Fri, 19 Jan 2024 12:54:46 -0500 Subject: [PATCH 2/5] Revert "jdaviz version condition in test coverage" This reverts commit 6a0086e8d6ce058097f946d44332d47ee9c36d46. --- lcviz/tests/test_plugin_ephemeris.py | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/lcviz/tests/test_plugin_ephemeris.py b/lcviz/tests/test_plugin_ephemeris.py index dea97b68..aa0cecb6 100644 --- a/lcviz/tests/test_plugin_ephemeris.py +++ b/lcviz/tests/test_plugin_ephemeris.py @@ -1,8 +1,4 @@ import pytest -from packaging.version import Version - -import jdaviz -JDAVIZ_LT_3_9_0 = Version(jdaviz.__version__) < Version('3.9.0') def test_docs_snippets(helper, light_curve_like_kepler_quarter): @@ -49,13 +45,12 @@ def test_plugin_ephemeris(helper, light_curve_like_kepler_quarter): assert len(ephem.ephemerides) == 2 assert 'custom component' in ephem.ephemerides - if not JDAVIZ_LT_3_9_0: - with pytest.raises(ValueError): - # brackets interfere with cloned viewer label logic - ephem.rename_component('custom component', 'custom component[blah]') - with pytest.raises(ValueError): - # colons interfere with viewer ephemeris logic - ephem.rename_component('custom component', 'custom component:blah') + with pytest.raises(ValueError): + # brackets interfere with cloned viewer label logic + ephem.rename_component('custom component', 'custom component[blah]') + with pytest.raises(ValueError): + # colons interfere with viewer ephemeris logic + ephem.rename_component('custom component', 'custom component:blah') ephem.rename_component('custom component', 'renamed custom component') assert len(ephem.ephemerides) == 2 From 9d1946a5ce2be8e2c0dd7f70c07178b3a0c8861a Mon Sep 17 00:00:00 2001 From: Kyle Conroy Date: Thu, 7 Mar 2024 12:36:57 -0500 Subject: [PATCH 3/5] migrate temporary disabling previews upstream (#3) --- lcviz/plugins/binning/binning.py | 19 +++---------------- lcviz/plugins/binning/binning.vue | 22 +++++----------------- lcviz/plugins/flatten/flatten.py | 18 ++++-------------- lcviz/plugins/flatten/flatten.vue | 23 ++++++----------------- 4 files changed, 18 insertions(+), 64 deletions(-) diff --git a/lcviz/plugins/binning/binning.py b/lcviz/plugins/binning/binning.py index f2440404..24d2348b 100644 --- a/lcviz/plugins/binning/binning.py +++ b/lcviz/plugins/binning/binning.py @@ -1,5 +1,3 @@ -import numpy as np -from time import time from astropy.time import Time from traitlets import Bool, Float, observe from glue.config import data_translator @@ -10,7 +8,7 @@ from jdaviz.core.template_mixin import (PluginTemplateMixin, DatasetSelectMixin, AddResultsMixin, skip_if_no_updates_since_last_active, - with_spinner) + with_spinner, with_temp_disable) from jdaviz.core.user_api import PluginUserApi from lcviz.components import FluxColumnSelectMixin @@ -54,9 +52,6 @@ class Binning(PluginTemplateMixin, FluxColumnSelectMixin, DatasetSelectMixin, n_bins = IntHandleEmpty(100).tag(sync=True) bin_enabled = Bool(True).tag(sync=True) - last_live_time = Float(0).tag(sync=True) - previews_temp_disable = Bool(False).tag(sync=True) - def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) @@ -164,8 +159,9 @@ def _toggle_marks(self, event={}): @observe('flux_column_selected', 'dataset_selected', 'ephemeris_selected', - 'n_bins', 'previews_temp_disable') + 'n_bins', 'previews_temp_disabled') @skip_if_no_updates_since_last_active() + @with_temp_disable(timeout=0.3) def _live_update(self, event={}): self.bin_enabled = self.n_bins != '' and self.n_bins > 0 @@ -173,11 +169,6 @@ def _live_update(self, event={}): self._clear_marks() return - if self.previews_temp_disable: - return - - start = time() - if event.get('name', '') not in ('is_active', 'show_live_preview'): # mark visibility hasn't been handled yet self._toggle_marks() @@ -214,10 +205,6 @@ def _live_update(self, event={}): mark.times = [] mark.update_xy(times, lc.flux.value) - self.last_live_time = np.round(time() - start, 2) - if self.last_live_time > 0.3: - self.previews_temp_disable = True - def _on_ephemeris_update(self, msg): if not self.show_live_preview or not self.is_active: return diff --git a/lcviz/plugins/binning/binning.vue b/lcviz/plugins/binning/binning.vue index c280da46..6bad2b59 100644 --- a/lcviz/plugins/binning/binning.vue +++ b/lcviz/plugins/binning/binning.vue @@ -57,23 +57,11 @@ - - Live-updating is temporarily disabled (last update took {{last_live_time}}s) - - - - disable previews - - - - - - - update preview - - - - + 0.3: - self.previews_temp_disable = True - def vue_apply(self, *args, **kwargs): try: self.flatten(add_data=True) diff --git a/lcviz/plugins/flatten/flatten.vue b/lcviz/plugins/flatten/flatten.vue index 191df121..be51f402 100644 --- a/lcviz/plugins/flatten/flatten.vue +++ b/lcviz/plugins/flatten/flatten.vue @@ -138,23 +138,12 @@ hint="Label for flux column." > - - Live-updating is temporarily disabled (last update took {{last_live_time}}s) - - - - disable previews - - - - - - - update preview - - - - + From 5a316f8b5368e8339812725e29e5d6cd89ee1146 Mon Sep 17 00:00:00 2001 From: Kyle Conroy Date: Mon, 11 Mar 2024 11:21:00 -0400 Subject: [PATCH 4/5] updates for upstream migration from export plot to export plugin (#5) --- docs/plugins.rst | 14 +++++++------- lcviz/helper.py | 2 +- lcviz/plugins/__init__.py | 2 +- lcviz/plugins/export/__init__.py | 1 + .../export_plot.py => export/export.py} | 19 ++++++++++--------- lcviz/plugins/export_plot/__init__.py | 1 - 6 files changed, 20 insertions(+), 19 deletions(-) create mode 100644 lcviz/plugins/export/__init__.py rename lcviz/plugins/{export_plot/export_plot.py => export/export.py} (61%) delete mode 100644 lcviz/plugins/export_plot/__init__.py diff --git a/docs/plugins.rst b/docs/plugins.rst index 60f5f24c..aae63e16 100644 --- a/docs/plugins.rst +++ b/docs/plugins.rst @@ -318,10 +318,10 @@ This plugin supports binning a light curve in time or phase-space. * :meth:`lightkurve.LightCurve.bin` -.. _export-plot: +.. _export: -Export Plot -=========== +Export +====== This plugin allows exporting the plot in a given viewer to various image formats. @@ -329,7 +329,7 @@ This plugin allows exporting the plot in a given viewer to various image formats .. admonition:: User API Example :class: dropdown - See the :class:`~lcviz.plugins.export_plot.export_plot.ExportViewer` user API documentation for more details. + See the :class:`~lcviz.plugins.export.export.Export` user API documentation for more details. .. code-block:: python @@ -340,11 +340,11 @@ This plugin allows exporting the plot in a given viewer to various image formats lcviz.load_data(lc) lcviz.show() - export = lcviz.plugins['Export Plot'] - export.save_figure('test.png') + export = lcviz.plugins['Export'] + export.export('test.png') .. seealso:: :ref:`Jdaviz Export Plot ` - Jdaviz documentation on the Export Plot plugin. + Jdaviz documentation on the Export plugin. diff --git a/lcviz/helper.py b/lcviz/helper.py index ab3bb328..c93baa2d 100644 --- a/lcviz/helper.py +++ b/lcviz/helper.py @@ -70,7 +70,7 @@ class LCviz(ConfigHelper): 'tray': ['lcviz-metadata-viewer', 'flux-column', 'lcviz-plot-options', 'lcviz-subset-plugin', 'lcviz-markers', 'flatten', 'frequency-analysis', 'ephemeris', - 'binning', 'lcviz-export-plot'], + 'binning', 'lcviz-export'], 'viewer_area': [{'container': 'col', 'children': [{'container': 'row', 'viewers': [{'name': 'flux-vs-time', diff --git a/lcviz/plugins/__init__.py b/lcviz/plugins/__init__.py index 42ba1f17..9fbeef06 100644 --- a/lcviz/plugins/__init__.py +++ b/lcviz/plugins/__init__.py @@ -3,7 +3,7 @@ from .binning.binning import * # noqa from .ephemeris.ephemeris import * # noqa -from .export_plot.export_plot import * # noqa +from .export.export import * # noqa from .flatten.flatten import * # noqa from .flux_column.flux_column import * # noqa from .frequency_analysis.frequency_analysis import * # noqa diff --git a/lcviz/plugins/export/__init__.py b/lcviz/plugins/export/__init__.py new file mode 100644 index 00000000..aa5f6174 --- /dev/null +++ b/lcviz/plugins/export/__init__.py @@ -0,0 +1 @@ +from .export import * # noqa diff --git a/lcviz/plugins/export_plot/export_plot.py b/lcviz/plugins/export/export.py similarity index 61% rename from lcviz/plugins/export_plot/export_plot.py rename to lcviz/plugins/export/export.py index a10fba2e..e25340e5 100644 --- a/lcviz/plugins/export_plot/export_plot.py +++ b/lcviz/plugins/export/export.py @@ -1,13 +1,13 @@ -from jdaviz.configs.default.plugins import ExportViewer +from jdaviz.configs.default.plugins import Export from jdaviz.core.registries import tray_registry -__all__ = ['ExportViewer'] +__all__ = ['Export'] -@tray_registry('lcviz-export-plot', label="Export Plot") -class ExportViewer(ExportViewer): +@tray_registry('lcviz-export', label="Export") +class Export(Export): """ - See the :ref:`Export Plot Plugin Documentation ` for more details. + See the :ref:`Export Plot Plugin Documentation ` for more details. Only the following attributes and methods are available through the :ref:`public plugin API `: @@ -15,10 +15,11 @@ class ExportViewer(ExportViewer): * :meth:`~jdaviz.core.template_mixin.PluginTemplateMixin.show` * :meth:`~jdaviz.core.template_mixin.PluginTemplateMixin.open_in_tray` * :meth:`~jdaviz.core.template_mixin.PluginTemplateMixin.close_in_tray` - * ``viewer`` (:class:`~jdaviz.core.template_mixin.ViewerSelect`): - Viewer to select for exporting the figure image. - * :meth:`save_figure` + * ``viewer`` (:class:`~jdaviz.core.template_mixin.ViewerSelect`) + * ``viewer_format`` (:class:`~jdaviz.core.template_mixin.SelectPluginComponent`) + * ``filename`` + * :meth:`export` """ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - self.docs_link = f"https://lcviz.readthedocs.io/en/{self.vdocs}/plugins.html#export-plot" + self.docs_link = f"https://lcviz.readthedocs.io/en/{self.vdocs}/plugins.html#export" diff --git a/lcviz/plugins/export_plot/__init__.py b/lcviz/plugins/export_plot/__init__.py deleted file mode 100644 index dbcfe9b4..00000000 --- a/lcviz/plugins/export_plot/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from .export_plot import * # noqa From 8564eddad4a79ee73fbc9a9e70cb742fb15a1081 Mon Sep 17 00:00:00 2001 From: Kyle Conroy Date: Mon, 11 Mar 2024 11:24:11 -0400 Subject: [PATCH 5/5] Revert "delay overwriting existing registry item" This reverts commit 4de13b3a09c8dab7923e0215932f3bbfc18a8b73. --- lcviz/helper.py | 2 +- lcviz/plugins/viewer_creator/viewer_creator.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lcviz/helper.py b/lcviz/helper.py index c93baa2d..ca34d032 100644 --- a/lcviz/helper.py +++ b/lcviz/helper.py @@ -66,7 +66,7 @@ class LCviz(ConfigHelper): 'tab_headers': True}, 'dense_toolbar': False, 'context': {'notebook': {'max_height': '600px'}}}, - 'toolbar': ['g-data-tools', 'g-subset-tools', 'lcviz-viewer-creator', 'lcviz-coords-info'], + 'toolbar': ['g-data-tools', 'g-subset-tools', 'g-viewer-creator', 'lcviz-coords-info'], 'tray': ['lcviz-metadata-viewer', 'flux-column', 'lcviz-plot-options', 'lcviz-subset-plugin', 'lcviz-markers', 'flatten', 'frequency-analysis', 'ephemeris', diff --git a/lcviz/plugins/viewer_creator/viewer_creator.py b/lcviz/plugins/viewer_creator/viewer_creator.py index d33a533e..aee8dcc5 100644 --- a/lcviz/plugins/viewer_creator/viewer_creator.py +++ b/lcviz/plugins/viewer_creator/viewer_creator.py @@ -7,7 +7,7 @@ __all__ = ['ViewerCreator'] -@tool_registry('lcviz-viewer-creator') +@tool_registry('g-viewer-creator', overwrite=True) # overwrite requires upstream changes, we can do without if we just lose the tooltip class ViewerCreator(ViewerCreator): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs)