File size: 2,438 Bytes
b693c5c
c121aed
f3262d9
5e35297
0fa040d
363c4c6
bc55598
0fa040d
79e6cc7
b693c5c
35dfb36
f9fe402
c121aed
 
70ca32b
6764300
82865c2
 
c166c26
 
 
c749392
7ef5095
 
 
 
be2b6f9
f9fe402
215416f
 
 
f9fe402
959888e
7ef5095
 
 
 
 
35dfb36
959888e
 
8acef28
959888e
 
e80581c
 
959888e
 
 
363c4c6
959888e
 
 
363c4c6
 
 
bc55598
 
 
de5daf9
bc55598
 
 
 
 
539d0f0
 
a63e01d
3a18b80
f6c535b
5e35297
0fa040d
de5daf9
c121aed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
from github import Github
import os 
import streamlit as st
import datetime
import plotly.figure_factory as ff
import pandas as pd
import math

st.set_page_config(layout="wide")

string1 = f"""<a href="https://www.nytimes.com/", target="_black">link</a>"""

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=milestone.title, 
                   Start=desc['start date'], 
                   Finish=milestone.due_on.strftime('%Y-%m-%d'), 
                   Resource=desc['status'], 
                   Description=desc['leader']))

colors = {'not started': 'rgb(220, 0, 0)',
          'incomplete': (1, 0.9, 0.16),
          'complete': 'rgb(0, 255, 100)'}


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(2013, 10, 17),
                               datetime.datetime(2013, 11, 20)],
                 minor=dict(
                     ticklen=4,  
                     dtick=7*24*60*60*1000,  
                     tick0="2023-01-01", 
                     griddash='dot', 
                     gridcolor='white')
                )
periods = pd.date_range(df[0]["Start"],df[0]["Finish"], freq='1D')
center_pos = math.floor(len(periods) / 2)
x_dates = periods[center_pos]

fig.add_annotation({
            "x": x_dates,
            "y": 0,
            "text": string1,
            "align": "center",
            "showarrow":False,
        })

fig.update_layout(xaxis_range=[datetime.datetime(2022, 12, 30),
                               datetime.datetime(2023, 4, 2)])
fig.update_yaxes(automargin=True)
fig.layout.xaxis.rangeselector = None
st.write(fig.layout.yaxis)
fig.add_vline(x=datetime.datetime.now().strftime('%Y-%m-%d'), line_width=3, line_dash="dash", line_color="green")

st.plotly_chart(fig, use_container_width=True)