Source code for solidipes_core_plugin.viewers.image_source

import streamlit as st
from solidipes.viewers import backends as viewer_backends
from solidipes.viewers.viewer import Viewer

from .code_snippet import Code
from .image import Image
from .pdf import PDF


[docs] class ImageSource(Viewer): """Viewer for images produced by sources""" def __init__(self, data=None): #: Image to display self.image = None self.source = None super().__init__(data)
[docs] def add(self, data_container): """Replace the viewer's image""" self.check_data_compatibility(data_container) self.data_container = data_container
[docs] def show(self): if viewer_backends.current_backend == "streamlit": gen_error = False from solidipes.utils import solidipes_logging as logging logger = logging.getLogger() try: if self.data_container.file_info.type == "application/x-latex/tikz": self.data_container.pdf PDF(self.data_container) else: Image(self.data_container) except Exception as e: st.error("Error while generating the figure") logger.error(e) st.code(str(e)) gen_error = True if not self.data_container.image: gen_error = True with st.expander("Source Code", expanded=gen_error): Code(self.data_container, display_lint=False) else: # python Code(self.data_container) if hasattr(self.image, "pdf"): PDF(self.data_container) else: Image(self.data_container)