Source code for rook.dashboard.tables.messages
import pandas as pd
from bokeh.models import ColumnDataSource, DataTable, DateFormatter, TableColumn
from .base import TableView
[docs]
class MessageTable(TableView):
[docs]
def data(self):
edf = self.df.loc[self.df["status"] == 5]
gdf = edf.groupby(pd.Grouper(key="message"))
adf = gdf.agg(
First=("time_start", "min"),
Last=("time_start", "max"),
Count=("uuid", "count"),
)
pdf = pd.DataFrame()
pdf["Message"] = adf.index
pdf["First"] = adf.First.dt.date.values
pdf["Last"] = adf.Last.dt.date.values
pdf["Count"] = adf.Count.values
pdf = pdf.sort_values(by=["Last"], ascending=False)
return pdf
[docs]
def table(self):
date_fmt = DateFormatter(format="%Y-%m-%d")
columns = [
TableColumn(field="Message", title="Message"),
TableColumn(field="First", title="First", formatter=date_fmt),
TableColumn(field="Last", title="Last", formatter=date_fmt),
TableColumn(field="Count", title="Count"),
]
table = DataTable(source=ColumnDataSource(self.data()), columns=columns)
return table