Source code for lcviz.plugins.metadata_viewer.metadata_viewer

from astropy.io.fits.card import Undefined
from traitlets import observe

from jdaviz.configs.default.plugins import MetadataViewer
from jdaviz.core.registries import tray_registry

__all__ = ['MetadataViewer']


# monkeypatch astropy.io.fits.card.Undefined to show an empty string
# instead of '<astropy.io.fits.card.Undefined object at 0x29f5b94d0>'
Undefined.__str__ = lambda x: ''


[docs] @tray_registry('g-metadata-viewer', label="Metadata", category='core', sidebar='info', subtab=0, overwrite=True) class MetadataViewer(MetadataViewer): """ See the :ref:`Metadata Viewer Plugin Documentation <metadata-viewer>` for more details. Only the following attributes and methods are available through the :ref:`public plugin API <plugin-apis>`: * :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` * ``dataset`` (:class:`~jdaviz.core.template_mixin.DatasetSelect`): Dataset to expose the metadata. * :attr:`show_primary` : bool Whether to show MEF primary header metadata instead. * :attr:`metadata`: Read-only metadata. If the data is loaded from a multi-extension FITS file, this can be the extension header or the primary header, depending on ``show_primary`` setting. """ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) @observe('vdocs') def _update_docs_link(self, *args): self.docs_link = f"https://lcviz.readthedocs.io/en/{self.vdocs}/plugins.html#metadata-viewer" # noqa