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"""{milestone.title}""", Start=desc['start date'], Finish=milestone.due_on.strftime('%Y-%m-%d'), Resource=desc['status'], Description=desc['leader'])) df.append(dict(Task=f"""PII data collection""", 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)