Spaces:
Sleeping
Sleeping
| 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'])) | |
| 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, | |
| title="BigCode planning") | |
| 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, | |
| }) | |
| tmp = copy.deepcopy(fig.data[0]) | |
| tmp[0]["fillcolor"] = 'rgb(147, 196, 125)' | |
| tmp[0]["legendgroup"] = 'rgb(147, 196, 125)' | |
| tmp[0]['name'] = 'in progress' | |
| fig.data.append(tmp) | |
| st.plotly_chart(fig, use_container_width=True) |