li-nguyen commited on
Commit
b7e88b7
·
1 Parent(s): b726b86

Add requirements and app

Browse files
Files changed (3) hide show
  1. .gitignore +144 -0
  2. app.py +73 -5
  3. requirements.txt +5 -2
.gitignore ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # npm node_modules
2
+ node_modules/
3
+
4
+ # Ipynb
5
+ ipynb_checkpoints
6
+ */.ipynb_checkpoints/*
7
+
8
+ # IPython
9
+ profile_default/
10
+ ipython_config.py
11
+
12
+ # Byte-compiled / optimized / DLL files
13
+ __pycache__/
14
+ *.py[cod]
15
+ *$py.class
16
+
17
+ # C extensions
18
+ *.so
19
+
20
+ # Distribution / packaging
21
+ .Python
22
+ build/
23
+ develop-eggs/
24
+ dist/
25
+ downloads/
26
+ eggs/
27
+ .eggs/
28
+ lib/
29
+ lib64/
30
+ parts/
31
+ sdist/
32
+ var/
33
+ wheels/
34
+ share/python-wheels/
35
+ *.egg-info/
36
+ .installed.cfg
37
+ *.egg
38
+ MANIFEST
39
+
40
+ # macOS
41
+ *.DS_Store
42
+ .DS_Store
43
+ .AppleDouble
44
+ .LSOverride
45
+ .Trashes
46
+
47
+ # PyInstaller
48
+ *.manifest
49
+ *.spec
50
+
51
+ # Installer logs
52
+ pip-log.txt
53
+ pip-delete-this-directory.txt
54
+
55
+ # Unit test / coverage reports
56
+ htmlcov/
57
+ .tox/
58
+ .nox/
59
+ .coverage
60
+ .coverage.*
61
+ .cache
62
+ nosetests.xml
63
+ coverage.xml
64
+ *.cover
65
+ *.py,cover
66
+ .hypothesis/
67
+ .pytest_cache/
68
+ cover/
69
+
70
+ # Translations
71
+ *.mo
72
+ *.pot
73
+
74
+ # Django
75
+ *.log
76
+ local_settings.py
77
+ db.sqlite3
78
+ db.sqlite3-journal
79
+
80
+ # Flask
81
+ instance/
82
+ .webassets-cache
83
+
84
+ # Scrapy
85
+ .scrapy
86
+
87
+ # PyBuilder
88
+ .pybuilder/
89
+ target/
90
+
91
+ # IntelliJ
92
+ .idea/
93
+ *.iml
94
+ out/
95
+ .idea_modules/
96
+
97
+ # Vscode
98
+ .vscode/
99
+
100
+ # PEP 582
101
+ __pypackages__/
102
+
103
+ # Celery
104
+ celerybeat-schedule
105
+ celerybeat.pid
106
+
107
+ # SageMath
108
+ *.sage.py
109
+
110
+ # Environments
111
+ .env
112
+ .venv
113
+ env/
114
+ venv/
115
+ ENV/
116
+ env.bak/
117
+ venv.bak/
118
+
119
+ # Spyder
120
+ .spyderproject
121
+ .spyproject
122
+
123
+ # Rope
124
+ .ropeproject
125
+
126
+ # Mkdocs
127
+ /site
128
+
129
+ # Mypy
130
+ .mypy_cache/
131
+ .dmypy.json
132
+ dmypy.json
133
+
134
+ # Pyre
135
+ .pyre/
136
+
137
+ # Pytype
138
+ .pytype/
139
+
140
+ # Cython
141
+ cython_debug/
142
+
143
+ # Ruff
144
+ .ruff_cache/
app.py CHANGED
@@ -1,7 +1,75 @@
1
- from fastapi import FastAPI
 
 
 
2
 
3
- app = FastAPI()
4
 
5
- @app.get("/")
6
- def greet_json():
7
- return {"Hello": "World!"}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import dash_bootstrap_components as dbc
2
+ import pandas as pd
3
+ from dash import Dash, html
4
+ from vizro.figures.library import kpi_card, kpi_card_reference
5
 
6
+ df_kpi = pd.DataFrame({"Actual": [100, 200, 700], "Reference": [100, 300, 500], "Category": ["A", "B", "C"]})
7
 
8
+ example_cards = [
9
+ kpi_card(data_frame=df_kpi, value_column="Actual", title="KPI with value"),
10
+ kpi_card(data_frame=df_kpi, value_column="Actual", title="KPI with aggregation", agg_func="median"),
11
+ kpi_card(
12
+ data_frame=df_kpi,
13
+ value_column="Actual",
14
+ title="KPI formatted",
15
+ value_format="${value:.2f}",
16
+ ),
17
+ kpi_card(
18
+ data_frame=df_kpi,
19
+ value_column="Actual",
20
+ title="KPI with icon",
21
+ icon="shopping_cart",
22
+ ),
23
+ ]
24
+
25
+ example_reference_cards = [
26
+ kpi_card_reference(
27
+ data_frame=df_kpi,
28
+ value_column="Actual",
29
+ reference_column="Reference",
30
+ title="KPI ref. (pos)",
31
+ ),
32
+ kpi_card_reference(
33
+ data_frame=df_kpi,
34
+ value_column="Actual",
35
+ reference_column="Reference",
36
+ agg_func="median",
37
+ title="KPI ref. (neg)",
38
+ ),
39
+ kpi_card_reference(
40
+ data_frame=df_kpi,
41
+ value_column="Actual",
42
+ reference_column="Reference",
43
+ title="KPI ref. formatted",
44
+ value_format="{value}€",
45
+ reference_format="{delta}€ vs. last year ({reference}€)",
46
+ ),
47
+ kpi_card_reference(
48
+ data_frame=df_kpi,
49
+ value_column="Actual",
50
+ reference_column="Reference",
51
+ title="KPI ref. with icon",
52
+ icon="shopping_cart",
53
+ ),
54
+ ]
55
+
56
+ app = Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP])
57
+
58
+
59
+ app.layout = dbc.Container(
60
+ [
61
+ html.H1(children="KPI Cards"),
62
+ dbc.Stack(
63
+ children=[
64
+ dbc.Row([dbc.Col(kpi_card) for kpi_card in example_cards]),
65
+ dbc.Row([dbc.Col(kpi_card) for kpi_card in example_reference_cards]),
66
+ ],
67
+ gap=4
68
+ ),
69
+ ]
70
+ )
71
+
72
+ server = app.dash.server
73
+
74
+ if __name__ == "__main__":
75
+ app.run()
requirements.txt CHANGED
@@ -1,2 +1,5 @@
1
- fastapi
2
- uvicorn[standard]
 
 
 
 
1
+ gunicorn
2
+ dash
3
+ dash_bootstrap_components
4
+ pandas
5
+ vizro==0.1.20