Skip to content

Commit 74327aa

Browse files
committed
fix: add html metrics support for compare
1 parent 81d7deb commit 74327aa

2 files changed

Lines changed: 55 additions & 20 deletions

File tree

src/ydata_profiling/report/presentation/core/scores.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"""
44
from typing import Any, Dict, List, Optional
55

6+
from ydata_profiling.config import Style
67
from ydata_profiling.report.presentation.core.item_renderer import ItemRenderer
78

89

@@ -11,15 +12,15 @@ def __init__(
1112
self,
1213
items: List[Dict],
1314
overall_score: float,
15+
style: Style,
1416
name: Optional[str],
15-
caption: Optional[str],
1617
**kwargs
1718
):
1819
content = {
1920
"items": items,
2021
"overall_score": overall_score,
2122
"name": name,
22-
"caption": caption,
23+
"style": style
2324
}
2425

2526
super().__init__("scores", content=content, **kwargs)
Lines changed: 52 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,78 @@
11
<style>
22
.progress {
3-
height: 12px;
3+
height: 18px;
44
border-radius: 6px;
5+
font-size: 0.9rem;
56
}
67

78
.overall-score {
89
font-size: 2.5rem;
910
}
11+
12+
.metric-subtitle {
13+
font-size: 0.9rem;
14+
color: #6c757d;
15+
}
16+
17+
.dual-metric {
18+
display: flex;
19+
justify-content: space-around;
20+
align-items: center;
21+
flex-wrap: wrap;
22+
gap: 1rem;
23+
}
24+
25+
.dual-metric .metric {
26+
min-width: 120px;
27+
}
28+
29+
.card.metric-card {
30+
min-height: 105px; /* Maior altura mínima do cartão */
31+
}
1032
</style>
1133

1234
<div class="container my-5">
1335
<!-- Overall Score -->
1436
<div class="row justify-content-center text-center mb-sm-3">
1537
<div class="col-12">
16-
<div class="card shadow-sm p-4">
17-
<h5 class="text-muted mb-2">Overall Data Quality Score</h5>
18-
<div class="overall-score fw-bold text-primary">{{ overall_score }}</div>
19-
</div>
38+
<div class="card shadow-sm p-4">
39+
<h5 class="text-muted mb-3">Overall Data Quality Score</h5>
40+
<div class="dual-metric">
41+
{% for i in range(overall_score | length) %}
42+
<div class="metric">
43+
{% if overall_score | length > 1 %}
44+
<div class="metric-subtitle">{{ name[i]}}</div>
45+
{% endif %}
46+
<div class="overall-score fw-bold" style="color: {{ style.primary_color }}">{{ overall_score[i]}}</div>
47+
</div>
48+
{% endfor %}
49+
</div>
50+
</div>
2051
</div>
2152
</div>
2253

2354
<!-- Metrics -->
24-
<div class="row g-4 text-center">
55+
<div class="row g-4 text-center">
2556
{% for metric in items %}
2657
<div class="col-lg-4 col-md-6 col-sm-12">
27-
<div class="card shadow-sm p-3 h-100">
28-
<div class="h6 text-muted">{{ metric.name }}</div>
29-
<div class="progress bg-light">
30-
<div
31-
class="progress-bar"
32-
role="progressbar"
33-
style="width: {{ metric.value }}%; background-color: {{ metric.color }};"
34-
aria-valuenow="{{ metric.value }}"
35-
aria-valuemin="0"
36-
aria-valuemax="100">
58+
<div class="card shadow-sm p-3 h-100 metric-card">
59+
<div class="h6 text-muted mb-2">{{ metric.name }}</div>
60+
{% for j in range(metric.submetrics| length) %}
61+
{% if metric.submetrics | length > 1 %}
62+
<div class="metric-subtitle text-start">{{ name[j] }}</div>
63+
{% endif %}
64+
<div class="progress mb-2 bg-light">
65+
<div
66+
class="progress-bar"
67+
style="width: {{ metric.submetrics[j].value }}%; background-color: {{ metric.submetrics[j].color}};">
68+
{{ metric.submetrics[j].value }}%
69+
</div>
3770
</div>
38-
</div>
39-
<div class="fw-bold mt-2" style="color: {{ metric.color }};">{{ metric.value }}%</div>
71+
{% endfor %}
4072
</div>
4173
</div>
4274
{% endfor %}
4375
</div>
4476
</div>
77+
78+

0 commit comments

Comments
 (0)