harmdevries's picture
Update app.py
ac303bc
raw
history blame
2.91 kB
from github import Github
import os
import streamlit as st
import datetime
import plotly.figure_factory as ff
import pandas as pd
import math
import copy
st.set_page_config(layout="wide")
name2repo = [("Inference", "bigcode-project/bigcode-inference-benchmark")]
g = Github(os.environ.get('github'))
inference_repo = g.get_repo("bigcode-project/bigcode-inference-benchmark")
df = list()
for milestone in inference_repo.get_milestones():
desc = dict()
for line in milestone.description.split('\n'):
tmp = line.split(":")
desc[tmp[0].lower()] = tmp[1].lower().strip()
df.append(dict(Task=f"""<a href="https://www.github.com/bigcode-project/bigcode-inference-benchmark/milestone/{milestone.number}", target="_black">{milestone.title}</a>""",
Start=desc['start date'],
Finish=milestone.due_on.strftime('%Y-%m-%d'),
Resource=desc['status'],
Description=desc['leader']))
df.append(dict(Task=f"""<a href="https://www.github.com/bigcode-project/bigcode-inference-benchmark/milestone/1", target="_black">PII data collection</a>""",
Start='2023-04-01',
Finish='2023-04-02',
Resource='in progress',
Description="")
colors = {'not started': 'rgb(217, 217, 217)',
'in progress': 'rgb(147, 196, 125)',
'high priority - on track': 'rgb(234, 153, 153)',
'high priority - help needed': 'rgb(255, 0, 0)',
'completed': 'rgb(56, 118, 29)'}
fig = ff.create_gantt(df, colors=colors,
index_col='Resource',
show_colorbar=True,
show_hover_fill=True,
group_tasks=True,
title="Inference")
fig.update_xaxes(ticks= "outside",
ticklabelmode= "period",
tickformat="%b",
tickcolor= "black",
ticklen=10,
range=[datetime.datetime(2022, 12, 30),
datetime.datetime(2023, 4, 2)],
minor=dict(
ticklen=4,
dtick=7*24*60*60*1000,
tick0="2023-01-01",
griddash='dot',
gridcolor='white')
)
fig.update_yaxes(automargin=True) # fix margins
fig.layout.xaxis.rangeselector = None # remove range selector on top
fig.add_vline(x=datetime.datetime.now().strftime('%Y-%m-%d'), line_width=3, line_dash="dash", line_color="black")
fig.add_annotation({
"x": datetime.datetime.now().strftime('%Y-%m-%d'),
"y": fig.layout.yaxis['range'][1],
"yshift": 10,
"text": "Today",
"align": "left",
"showarrow": False,
})
# fig.data.append(tmp)
st.plotly_chart(fig, use_container_width=True)