Source code for flytekitplugins.deck.renderer

import markdown
import pandas
import plotly.express as px
from pandas_profiling import ProfileReport


[docs]class FrameProfilingRenderer: """ Generate a ProfileReport based on a pandas DataFrame """ def __init__(self, title: str = "Pandas Profiling Report"): self._title = title
[docs] def to_html(self, df: pandas.DataFrame) -> str: assert isinstance(df, pandas.DataFrame) profile = ProfileReport(df, title=self._title) return profile.to_html()
[docs]class MarkdownRenderer: """Convert a markdown string to HTML and return HTML as a unicode string. This is a shortcut function for `Markdown` class to cover the most basic use case. It initializes an instance of Markdown, loads the necessary extensions and runs the parser on the given text. """
[docs] def to_html(self, text: str) -> str: return markdown.markdown(text)
[docs]class BoxRenderer: """ In a box plot, rows of `data_frame` are grouped together into a box-and-whisker mark to visualize their distribution. Each box spans from quartile 1 (Q1) to quartile 3 (Q3). The second quartile (Q2) is marked by a line inside the box. By default, the whiskers correspond to the box' edges +/- 1.5 times the interquartile range (IQR: Q3-Q1), see "points" for other options. """ # More detail, see https://plotly.com/python/box-plots/ def __init__(self, column_name): self._column_name = column_name
[docs] def to_html(self, df: pandas.DataFrame) -> str: fig = px.box(df, y=self._column_name) return fig.to_html()