layrz-sdk 3.0.9__py3-none-any.whl → 3.0.11__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of layrz-sdk might be problematic. Click here for more details.
- layrz_sdk/entities/broadcasts/request.py +10 -9
- layrz_sdk/entities/broadcasts/response.py +10 -9
- layrz_sdk/entities/broadcasts/result.py +13 -11
- layrz_sdk/entities/broadcasts/service.py +8 -9
- layrz_sdk/entities/broadcasts/status.py +10 -9
- layrz_sdk/entities/cases/case.py +33 -30
- layrz_sdk/entities/cases/comment.py +10 -10
- layrz_sdk/entities/cases/trigger.py +9 -10
- layrz_sdk/entities/charts/alignment.py +9 -8
- layrz_sdk/entities/charts/bar.py +31 -45
- layrz_sdk/entities/charts/color.py +12 -10
- layrz_sdk/entities/charts/column.py +30 -49
- layrz_sdk/entities/charts/configuration.py +11 -12
- layrz_sdk/entities/charts/data_type.py +9 -8
- layrz_sdk/entities/charts/exceptions.py +11 -12
- layrz_sdk/entities/charts/html.py +6 -5
- layrz_sdk/entities/charts/line.py +52 -46
- layrz_sdk/entities/charts/map.py +23 -19
- layrz_sdk/entities/charts/number.py +6 -5
- layrz_sdk/entities/charts/pie.py +27 -34
- layrz_sdk/entities/charts/radar.py +14 -34
- layrz_sdk/entities/charts/radial_bar.py +27 -34
- layrz_sdk/entities/charts/render_technology.py +9 -8
- layrz_sdk/entities/charts/scatter.py +52 -53
- layrz_sdk/entities/charts/serie.py +4 -3
- layrz_sdk/entities/charts/serie_type.py +9 -8
- layrz_sdk/entities/charts/table.py +6 -6
- layrz_sdk/entities/charts/timeline.py +21 -32
- layrz_sdk/entities/checkpoints/checkpoint.py +15 -12
- layrz_sdk/entities/checkpoints/geofence.py +9 -10
- layrz_sdk/entities/checkpoints/waypoint.py +14 -12
- layrz_sdk/entities/events/event.py +15 -13
- layrz_sdk/entities/formatting/text_align.py +10 -9
- layrz_sdk/entities/general/asset.py +16 -13
- layrz_sdk/entities/general/asset_operation_mode.py +9 -8
- layrz_sdk/entities/general/custom_field.py +9 -10
- layrz_sdk/entities/general/device.py +13 -12
- layrz_sdk/entities/general/sensor.py +9 -10
- layrz_sdk/entities/general/user.py +9 -10
- layrz_sdk/entities/repcom/transaction.py +4 -4
- layrz_sdk/entities/reports/col.py +17 -15
- layrz_sdk/entities/reports/format.py +3 -4
- layrz_sdk/entities/reports/header.py +4 -5
- layrz_sdk/entities/reports/page.py +12 -11
- layrz_sdk/entities/reports/report.py +14 -14
- layrz_sdk/entities/reports/row.py +10 -10
- layrz_sdk/entities/telemetry/message.py +5 -4
- layrz_sdk/entities/telemetry/position.py +13 -12
- layrz_sdk/lcl/core.py +93 -65
- {layrz_sdk-3.0.9.dist-info → layrz_sdk-3.0.11.dist-info}/METADATA +2 -1
- layrz_sdk-3.0.11.dist-info/RECORD +69 -0
- {layrz_sdk-3.0.9.dist-info → layrz_sdk-3.0.11.dist-info}/WHEEL +1 -1
- layrz_sdk-3.0.9.dist-info/RECORD +0 -69
- {layrz_sdk-3.0.9.dist-info → layrz_sdk-3.0.11.dist-info}/LICENSE +0 -0
- {layrz_sdk-3.0.9.dist-info → layrz_sdk-3.0.11.dist-info}/top_level.txt +0 -0
layrz_sdk/entities/charts/pie.py
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
"""
|
|
2
|
-
|
|
1
|
+
"""Pie chart"""
|
|
2
|
+
|
|
3
|
+
from typing import Any, List
|
|
3
4
|
|
|
4
5
|
from .alignment import ChartAlignment
|
|
5
6
|
from .exceptions import ChartException
|
|
@@ -13,7 +14,7 @@ class PieChart:
|
|
|
13
14
|
"""
|
|
14
15
|
|
|
15
16
|
def __init__(
|
|
16
|
-
self
|
|
17
|
+
self,
|
|
17
18
|
series: List[ChartDataSerie],
|
|
18
19
|
title: str = 'Chart',
|
|
19
20
|
align: ChartAlignment = ChartAlignment.CENTER,
|
|
@@ -41,7 +42,7 @@ class PieChart:
|
|
|
41
42
|
self.align = align
|
|
42
43
|
|
|
43
44
|
def render(
|
|
44
|
-
self
|
|
45
|
+
self,
|
|
45
46
|
technology: ChartRenderTechnology = ChartRenderTechnology.SYNCFUSION_FLUTTER_CHARTS,
|
|
46
47
|
) -> Any:
|
|
47
48
|
"""
|
|
@@ -78,37 +79,41 @@ class PieChart:
|
|
|
78
79
|
'configuration': [f'Unsupported {technology}'],
|
|
79
80
|
}
|
|
80
81
|
|
|
81
|
-
def _render_syncfusion_flutter_charts(self
|
|
82
|
+
def _render_syncfusion_flutter_charts(self) -> Any:
|
|
82
83
|
"""
|
|
83
84
|
Converts the configuration of the chart to Syncfusion Flutter Charts.
|
|
84
85
|
"""
|
|
85
86
|
series = []
|
|
86
87
|
|
|
87
88
|
for serie in self.series:
|
|
88
|
-
series.append(
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
89
|
+
series.append(
|
|
90
|
+
{
|
|
91
|
+
'label': serie.label,
|
|
92
|
+
'color': serie.color,
|
|
93
|
+
'value': serie.data[0],
|
|
94
|
+
}
|
|
95
|
+
)
|
|
93
96
|
|
|
94
97
|
return {'series': series}
|
|
95
98
|
|
|
96
|
-
def _render_graphic(self
|
|
99
|
+
def _render_graphic(self) -> Any:
|
|
97
100
|
"""
|
|
98
101
|
Converts the configuration of the chart to a Flutter library Graphic.
|
|
99
102
|
"""
|
|
100
103
|
series = []
|
|
101
104
|
|
|
102
105
|
for serie in self.series:
|
|
103
|
-
series.append(
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
106
|
+
series.append(
|
|
107
|
+
{
|
|
108
|
+
'group': serie.label,
|
|
109
|
+
'color': serie.color,
|
|
110
|
+
'value': serie.data[0],
|
|
111
|
+
}
|
|
112
|
+
)
|
|
108
113
|
|
|
109
114
|
return series
|
|
110
115
|
|
|
111
|
-
def _render_apexcharts(self
|
|
116
|
+
def _render_apexcharts(self) -> Any:
|
|
112
117
|
"""
|
|
113
118
|
Converts the configuration of the chart to Javascript library ApexCharts.
|
|
114
119
|
"""
|
|
@@ -129,27 +134,15 @@ class PieChart:
|
|
|
129
134
|
'title': {
|
|
130
135
|
'text': self.title,
|
|
131
136
|
'align': self.align.value,
|
|
132
|
-
'style': {
|
|
133
|
-
'fontFamily': 'Fira Sans Condensed',
|
|
134
|
-
'fontSize': '20px',
|
|
135
|
-
'fontWeight': 'normal'
|
|
136
|
-
}
|
|
137
|
+
'style': {'fontFamily': 'Fira Sans Condensed', 'fontSize': '20px', 'fontWeight': 'normal'},
|
|
137
138
|
},
|
|
138
139
|
'chart': {
|
|
139
140
|
'type': 'pie',
|
|
140
|
-
'animations': {
|
|
141
|
-
|
|
142
|
-
},
|
|
143
|
-
'toolbar': {
|
|
144
|
-
'show': False
|
|
145
|
-
},
|
|
146
|
-
'zoom': {
|
|
147
|
-
'enabled': False
|
|
148
|
-
}
|
|
141
|
+
'animations': {'enabled': False},
|
|
142
|
+
'toolbar': {'show': False},
|
|
143
|
+
'zoom': {'enabled': False},
|
|
149
144
|
},
|
|
150
|
-
'dataLabels': {
|
|
151
|
-
'enabled': True
|
|
152
|
-
}
|
|
145
|
+
'dataLabels': {'enabled': True},
|
|
153
146
|
}
|
|
154
147
|
|
|
155
148
|
return config
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
"""
|
|
2
|
-
|
|
1
|
+
"""Radar chart"""
|
|
2
|
+
|
|
3
|
+
from typing import Any, List
|
|
3
4
|
|
|
4
5
|
from .alignment import ChartAlignment
|
|
5
6
|
from .exceptions import ChartException
|
|
@@ -14,7 +15,7 @@ class RadarChart:
|
|
|
14
15
|
"""
|
|
15
16
|
|
|
16
17
|
def __init__(
|
|
17
|
-
self
|
|
18
|
+
self,
|
|
18
19
|
x_axis: ChartDataSerie,
|
|
19
20
|
y_axis: List[ChartDataSerie],
|
|
20
21
|
title: str = 'Chart',
|
|
@@ -48,14 +49,14 @@ class RadarChart:
|
|
|
48
49
|
raise ChartException('align must be an instance of ChartAlignment')
|
|
49
50
|
self.align = align
|
|
50
51
|
|
|
51
|
-
def render(self
|
|
52
|
+
def render(self) -> Any:
|
|
52
53
|
"""
|
|
53
54
|
Render chart to a Javascript Library.
|
|
54
55
|
Currently only available for ApexCharts.
|
|
55
56
|
"""
|
|
56
57
|
return {'library': 'APEXCHARTS', 'configuration': self._render_apexcharts()}
|
|
57
58
|
|
|
58
|
-
def _render_apexcharts(self
|
|
59
|
+
def _render_apexcharts(self) -> Any:
|
|
59
60
|
"""
|
|
60
61
|
Converts the configuration of the chart to Javascript library ApexCharts.
|
|
61
62
|
"""
|
|
@@ -80,43 +81,22 @@ class RadarChart:
|
|
|
80
81
|
'type': self.x_axis.data_type.value,
|
|
81
82
|
'title': {
|
|
82
83
|
'text': self.x_axis.label,
|
|
83
|
-
'style': {
|
|
84
|
-
|
|
85
|
-
'fontSize': '20px',
|
|
86
|
-
'fontWeight': 'normal'
|
|
87
|
-
}
|
|
88
|
-
}
|
|
84
|
+
'style': {'fontFamily': 'Fira Sans Condensed', 'fontSize': '20px', 'fontWeight': 'normal'},
|
|
85
|
+
},
|
|
89
86
|
},
|
|
90
87
|
'title': {
|
|
91
88
|
'text': self.title,
|
|
92
89
|
'align': self.align.value,
|
|
93
|
-
'style': {
|
|
94
|
-
'fontFamily': 'Fira Sans Condensed',
|
|
95
|
-
'fontSize': '20px',
|
|
96
|
-
'fontWeight': 'normal'
|
|
97
|
-
}
|
|
90
|
+
'style': {'fontFamily': 'Fira Sans Condensed', 'fontSize': '20px', 'fontWeight': 'normal'},
|
|
98
91
|
},
|
|
99
92
|
'chart': {
|
|
100
93
|
'type': 'radar',
|
|
101
|
-
'animations': {
|
|
102
|
-
|
|
103
|
-
},
|
|
104
|
-
'toolbar': {
|
|
105
|
-
'show': False
|
|
106
|
-
},
|
|
107
|
-
'zoom': {
|
|
108
|
-
'enabled': False
|
|
109
|
-
}
|
|
110
|
-
},
|
|
111
|
-
'dataLabels': {
|
|
112
|
-
'enabled': True
|
|
94
|
+
'animations': {'enabled': False},
|
|
95
|
+
'toolbar': {'show': False},
|
|
96
|
+
'zoom': {'enabled': False},
|
|
113
97
|
},
|
|
114
|
-
'
|
|
115
|
-
|
|
116
|
-
'horizontal': True,
|
|
117
|
-
'borderRadius': 4
|
|
118
|
-
}
|
|
119
|
-
}
|
|
98
|
+
'dataLabels': {'enabled': True},
|
|
99
|
+
'plotOptions': {'bar': {'horizontal': True, 'borderRadius': 4}},
|
|
120
100
|
}
|
|
121
101
|
|
|
122
102
|
return config
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
"""
|
|
2
|
-
|
|
1
|
+
"""Radial Bar chart"""
|
|
2
|
+
|
|
3
|
+
from typing import Any, List
|
|
3
4
|
|
|
4
5
|
from .alignment import ChartAlignment
|
|
5
6
|
from .exceptions import ChartException
|
|
@@ -13,7 +14,7 @@ class RadialBarChart:
|
|
|
13
14
|
"""
|
|
14
15
|
|
|
15
16
|
def __init__(
|
|
16
|
-
self
|
|
17
|
+
self,
|
|
17
18
|
series: List[ChartDataSerie],
|
|
18
19
|
title: str = 'Chart',
|
|
19
20
|
align: ChartAlignment = ChartAlignment.CENTER,
|
|
@@ -41,7 +42,7 @@ class RadialBarChart:
|
|
|
41
42
|
self.align = align
|
|
42
43
|
|
|
43
44
|
def render(
|
|
44
|
-
self
|
|
45
|
+
self,
|
|
45
46
|
technology: ChartRenderTechnology = ChartRenderTechnology.SYNCFUSION_FLUTTER_CHARTS,
|
|
46
47
|
) -> Any:
|
|
47
48
|
"""
|
|
@@ -78,37 +79,41 @@ class RadialBarChart:
|
|
|
78
79
|
'configuration': [f'Unsupported {technology}'],
|
|
79
80
|
}
|
|
80
81
|
|
|
81
|
-
def _render_syncfusion_flutter_charts(self
|
|
82
|
+
def _render_syncfusion_flutter_charts(self) -> Any:
|
|
82
83
|
"""
|
|
83
84
|
Converts the configuration of the chart to Syncfusion Flutter Charts.
|
|
84
85
|
"""
|
|
85
86
|
series = []
|
|
86
87
|
|
|
87
88
|
for serie in self.series:
|
|
88
|
-
series.append(
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
89
|
+
series.append(
|
|
90
|
+
{
|
|
91
|
+
'label': serie.label,
|
|
92
|
+
'color': serie.color,
|
|
93
|
+
'value': serie.data[0],
|
|
94
|
+
}
|
|
95
|
+
)
|
|
93
96
|
|
|
94
97
|
return {'series': series}
|
|
95
98
|
|
|
96
|
-
def _render_graphic(self
|
|
99
|
+
def _render_graphic(self) -> Any:
|
|
97
100
|
"""
|
|
98
101
|
Converts the configuration of the chart to a Flutter library Graphic.
|
|
99
102
|
"""
|
|
100
103
|
series = []
|
|
101
104
|
|
|
102
105
|
for serie in self.series:
|
|
103
|
-
series.append(
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
106
|
+
series.append(
|
|
107
|
+
{
|
|
108
|
+
'group': serie.label,
|
|
109
|
+
'color': serie.color,
|
|
110
|
+
'value': serie.data[0],
|
|
111
|
+
}
|
|
112
|
+
)
|
|
108
113
|
|
|
109
114
|
return series
|
|
110
115
|
|
|
111
|
-
def _render_apexcharts(self
|
|
116
|
+
def _render_apexcharts(self) -> Any:
|
|
112
117
|
"""
|
|
113
118
|
Converts the configuration of the chart to Javascript library ApexCharts.
|
|
114
119
|
"""
|
|
@@ -129,27 +134,15 @@ class RadialBarChart:
|
|
|
129
134
|
'title': {
|
|
130
135
|
'text': self.title,
|
|
131
136
|
'align': self.align.value,
|
|
132
|
-
'style': {
|
|
133
|
-
'fontFamily': 'Fira Sans Condensed',
|
|
134
|
-
'fontSize': '20px',
|
|
135
|
-
'fontWeight': 'normal'
|
|
136
|
-
}
|
|
137
|
+
'style': {'fontFamily': 'Fira Sans Condensed', 'fontSize': '20px', 'fontWeight': 'normal'},
|
|
137
138
|
},
|
|
138
139
|
'chart': {
|
|
139
140
|
'type': 'radialBar',
|
|
140
|
-
'animations': {
|
|
141
|
-
|
|
142
|
-
},
|
|
143
|
-
'toolbar': {
|
|
144
|
-
'show': False
|
|
145
|
-
},
|
|
146
|
-
'zoom': {
|
|
147
|
-
'enabled': False
|
|
148
|
-
}
|
|
149
|
-
},
|
|
150
|
-
'dataLabels': {
|
|
151
|
-
'enabled': True
|
|
141
|
+
'animations': {'enabled': False},
|
|
142
|
+
'toolbar': {'show': False},
|
|
143
|
+
'zoom': {'enabled': False},
|
|
152
144
|
},
|
|
145
|
+
'dataLabels': {'enabled': True},
|
|
153
146
|
}
|
|
154
147
|
|
|
155
148
|
return config
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
"""
|
|
1
|
+
"""Chart rendering technology / library"""
|
|
2
|
+
|
|
2
3
|
from enum import Enum
|
|
3
|
-
from typing import Self
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
class ChartRenderTechnology(Enum):
|
|
7
7
|
"""
|
|
8
8
|
Chart Alignment
|
|
9
9
|
"""
|
|
10
|
+
|
|
10
11
|
CANVAS_JS = 'CANVAS_JS'
|
|
11
12
|
GRAPHIC = 'GRAPHIC'
|
|
12
13
|
SYNCFUSION_FLUTTER_CHARTS = 'SYNCFUSION_FLUTTER_CHARTS'
|
|
@@ -15,14 +16,14 @@ class ChartRenderTechnology(Enum):
|
|
|
15
16
|
FLUTTER = 'FLUTTER'
|
|
16
17
|
|
|
17
18
|
@property
|
|
18
|
-
def _readable(self
|
|
19
|
-
"""
|
|
19
|
+
def _readable(self) -> str | None | bool:
|
|
20
|
+
"""Readable"""
|
|
20
21
|
return f'ChartRenderTechnology.{self.value}'
|
|
21
22
|
|
|
22
|
-
def __str__(self
|
|
23
|
-
"""
|
|
23
|
+
def __str__(self) -> str | None | bool:
|
|
24
|
+
"""Readable property"""
|
|
24
25
|
return self._readable
|
|
25
26
|
|
|
26
|
-
def __repr__(self
|
|
27
|
-
"""
|
|
27
|
+
def __repr__(self) -> str | None | bool:
|
|
28
|
+
"""Readable property"""
|
|
28
29
|
return self._readable
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
"""
|
|
2
|
-
|
|
1
|
+
"""Scatter chart"""
|
|
2
|
+
|
|
3
|
+
from typing import Any, List
|
|
3
4
|
|
|
4
5
|
from .alignment import ChartAlignment
|
|
5
6
|
from .configuration import AxisConfig
|
|
@@ -13,7 +14,7 @@ class ScatterSerieItem:
|
|
|
13
14
|
Chart Data Serie Item for Scatter Charts
|
|
14
15
|
"""
|
|
15
16
|
|
|
16
|
-
def __init__(self
|
|
17
|
+
def __init__(self, x: float, y: float) -> None:
|
|
17
18
|
"""
|
|
18
19
|
Constructor
|
|
19
20
|
|
|
@@ -32,7 +33,7 @@ class ScatterSerie:
|
|
|
32
33
|
"""
|
|
33
34
|
|
|
34
35
|
def __init__(
|
|
35
|
-
self
|
|
36
|
+
self,
|
|
36
37
|
data: List[ScatterSerieItem],
|
|
37
38
|
color: str,
|
|
38
39
|
label: str,
|
|
@@ -70,7 +71,7 @@ class ScatterChart:
|
|
|
70
71
|
"""
|
|
71
72
|
|
|
72
73
|
def __init__(
|
|
73
|
-
self
|
|
74
|
+
self,
|
|
74
75
|
series: List[ScatterSerie],
|
|
75
76
|
title: str = 'Chart',
|
|
76
77
|
align: ChartAlignment = ChartAlignment.CENTER,
|
|
@@ -114,7 +115,7 @@ class ScatterChart:
|
|
|
114
115
|
self.y_axis_config = y_axis_config
|
|
115
116
|
|
|
116
117
|
def render(
|
|
117
|
-
self
|
|
118
|
+
self,
|
|
118
119
|
technology: ChartRenderTechnology = ChartRenderTechnology.SYNCFUSION_FLUTTER_CHARTS,
|
|
119
120
|
) -> Any:
|
|
120
121
|
"""
|
|
@@ -151,7 +152,7 @@ class ScatterChart:
|
|
|
151
152
|
'configuration': [f'Unsupported {technology}'],
|
|
152
153
|
}
|
|
153
154
|
|
|
154
|
-
def _render_syncfusion_flutter_charts(self
|
|
155
|
+
def _render_syncfusion_flutter_charts(self) -> Any:
|
|
155
156
|
"""
|
|
156
157
|
Converts the configuration of the chart to Flutter library Graphic.
|
|
157
158
|
"""
|
|
@@ -175,17 +176,21 @@ class ScatterChart:
|
|
|
175
176
|
if not isinstance(item.y, (int, float)):
|
|
176
177
|
continue
|
|
177
178
|
|
|
178
|
-
data.append(
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
179
|
+
data.append(
|
|
180
|
+
{
|
|
181
|
+
'xAxis': item.x,
|
|
182
|
+
'yAxis': item.y,
|
|
183
|
+
}
|
|
184
|
+
)
|
|
185
|
+
|
|
186
|
+
series.append(
|
|
187
|
+
{
|
|
188
|
+
'label': serie.label,
|
|
189
|
+
'color': serie.color,
|
|
190
|
+
'values': data,
|
|
191
|
+
'type': type_serie,
|
|
192
|
+
}
|
|
193
|
+
)
|
|
189
194
|
|
|
190
195
|
return {
|
|
191
196
|
'series': series,
|
|
@@ -205,7 +210,7 @@ class ScatterChart:
|
|
|
205
210
|
},
|
|
206
211
|
}
|
|
207
212
|
|
|
208
|
-
def _render_graphic(self
|
|
213
|
+
def _render_graphic(self) -> Any:
|
|
209
214
|
"""
|
|
210
215
|
Converts the configuration of the chart to Flutter library Graphic.
|
|
211
216
|
"""
|
|
@@ -224,21 +229,25 @@ class ScatterChart:
|
|
|
224
229
|
continue
|
|
225
230
|
|
|
226
231
|
for item in serie.data:
|
|
227
|
-
data.append(
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
232
|
+
data.append(
|
|
233
|
+
{
|
|
234
|
+
'x_axis': item.x,
|
|
235
|
+
'y_axis': item.y,
|
|
236
|
+
}
|
|
237
|
+
)
|
|
238
|
+
|
|
239
|
+
series.append(
|
|
240
|
+
{
|
|
241
|
+
'group': serie.label,
|
|
242
|
+
'color': serie.color,
|
|
243
|
+
'values': data,
|
|
244
|
+
'type': type_serie,
|
|
245
|
+
}
|
|
246
|
+
)
|
|
238
247
|
|
|
239
248
|
return series
|
|
240
249
|
|
|
241
|
-
def _render_apexcharts(self
|
|
250
|
+
def _render_apexcharts(self) -> Any:
|
|
242
251
|
"""
|
|
243
252
|
Converts the configuration of the chart to Javascript library ApexCharts.
|
|
244
253
|
"""
|
|
@@ -252,11 +261,13 @@ class ScatterChart:
|
|
|
252
261
|
for item in serie.data:
|
|
253
262
|
data.append([item.x, item.y])
|
|
254
263
|
|
|
255
|
-
series.append(
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
264
|
+
series.append(
|
|
265
|
+
{
|
|
266
|
+
'name': serie.label,
|
|
267
|
+
'data': data,
|
|
268
|
+
'type': serie.serie_type.value,
|
|
269
|
+
}
|
|
270
|
+
)
|
|
260
271
|
colors.append(serie.color)
|
|
261
272
|
|
|
262
273
|
config = {
|
|
@@ -265,27 +276,15 @@ class ScatterChart:
|
|
|
265
276
|
'title': {
|
|
266
277
|
'text': self.title,
|
|
267
278
|
'align': self.align.value,
|
|
268
|
-
'style': {
|
|
269
|
-
'fontFamily': 'Fira Sans Condensed',
|
|
270
|
-
'fontSize': '20px',
|
|
271
|
-
'fontWeight': 'normal'
|
|
272
|
-
}
|
|
279
|
+
'style': {'fontFamily': 'Fira Sans Condensed', 'fontSize': '20px', 'fontWeight': 'normal'},
|
|
273
280
|
},
|
|
274
281
|
'chart': {
|
|
275
282
|
'type': 'scatter',
|
|
276
|
-
'animations': {
|
|
277
|
-
|
|
278
|
-
},
|
|
279
|
-
'toolbar': {
|
|
280
|
-
'show': False
|
|
281
|
-
},
|
|
282
|
-
'zoom': {
|
|
283
|
-
'enabled': False
|
|
284
|
-
}
|
|
283
|
+
'animations': {'enabled': False},
|
|
284
|
+
'toolbar': {'show': False},
|
|
285
|
+
'zoom': {'enabled': False},
|
|
285
286
|
},
|
|
286
|
-
'dataLabels': {
|
|
287
|
-
'enabled': True
|
|
288
|
-
}
|
|
287
|
+
'dataLabels': {'enabled': True},
|
|
289
288
|
}
|
|
290
289
|
|
|
291
290
|
return config
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
"""
|
|
2
|
-
|
|
1
|
+
"""Chart Data Serie"""
|
|
2
|
+
|
|
3
|
+
from typing import Any
|
|
3
4
|
|
|
4
5
|
from .data_type import ChartDataType
|
|
5
6
|
from .exceptions import ChartException
|
|
@@ -12,7 +13,7 @@ class ChartDataSerie:
|
|
|
12
13
|
"""
|
|
13
14
|
|
|
14
15
|
def __init__(
|
|
15
|
-
self
|
|
16
|
+
self,
|
|
16
17
|
data: Any,
|
|
17
18
|
color: str = '#000000',
|
|
18
19
|
label: str = '',
|
|
@@ -1,26 +1,27 @@
|
|
|
1
|
-
"""
|
|
1
|
+
"""Chart Serie type"""
|
|
2
|
+
|
|
2
3
|
from enum import Enum
|
|
3
|
-
from typing import Self
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
class ChartDataSerieType(Enum):
|
|
7
7
|
"""
|
|
8
8
|
Chart data serie type
|
|
9
9
|
"""
|
|
10
|
+
|
|
10
11
|
NONE = None
|
|
11
12
|
LINE = 'line'
|
|
12
13
|
AREA = 'area'
|
|
13
14
|
SCATTER = 'scatter'
|
|
14
15
|
|
|
15
16
|
@property
|
|
16
|
-
def _readable(self
|
|
17
|
-
"""
|
|
17
|
+
def _readable(self) -> str | None | bool:
|
|
18
|
+
"""Readable"""
|
|
18
19
|
return f'BroadcastStatus.{self.value}'
|
|
19
20
|
|
|
20
|
-
def __str__(self
|
|
21
|
-
"""
|
|
21
|
+
def __str__(self) -> str | None | bool:
|
|
22
|
+
"""Readable property"""
|
|
22
23
|
return self._readable
|
|
23
24
|
|
|
24
|
-
def __repr__(self
|
|
25
|
-
"""
|
|
25
|
+
def __repr__(self) -> str | None | bool:
|
|
26
|
+
"""Readable property"""
|
|
26
27
|
return self._readable
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"""Number chart"""
|
|
2
2
|
|
|
3
|
-
from typing import Any, List
|
|
3
|
+
from typing import Any, List
|
|
4
4
|
|
|
5
5
|
from .render_technology import ChartRenderTechnology
|
|
6
6
|
|
|
@@ -8,7 +8,7 @@ from .render_technology import ChartRenderTechnology
|
|
|
8
8
|
class TableHeader:
|
|
9
9
|
"""Table header chart configuration"""
|
|
10
10
|
|
|
11
|
-
def __init__(self
|
|
11
|
+
def __init__(self, label: str, key: str) -> None:
|
|
12
12
|
"""Constructor
|
|
13
13
|
---
|
|
14
14
|
Arguments
|
|
@@ -22,7 +22,7 @@ class TableHeader:
|
|
|
22
22
|
class TableRow:
|
|
23
23
|
"""Table row chart configuration"""
|
|
24
24
|
|
|
25
|
-
def __init__(self
|
|
25
|
+
def __init__(self, data: Any) -> None:
|
|
26
26
|
"""Constructor
|
|
27
27
|
---
|
|
28
28
|
Arguments
|
|
@@ -36,7 +36,7 @@ class TableChart:
|
|
|
36
36
|
Table chart configuration
|
|
37
37
|
"""
|
|
38
38
|
|
|
39
|
-
def __init__(self
|
|
39
|
+
def __init__(self, columns: List[TableHeader], rows: List[TableRow]) -> None:
|
|
40
40
|
"""
|
|
41
41
|
Constructor
|
|
42
42
|
---
|
|
@@ -47,7 +47,7 @@ class TableChart:
|
|
|
47
47
|
self.columns = columns
|
|
48
48
|
self.rows = rows
|
|
49
49
|
|
|
50
|
-
def render(self
|
|
50
|
+
def render(self, technology: ChartRenderTechnology = ChartRenderTechnology.FLUTTER) -> Any:
|
|
51
51
|
"""
|
|
52
52
|
Render chart to a graphic Library.
|
|
53
53
|
"""
|
|
@@ -64,7 +64,7 @@ class TableChart:
|
|
|
64
64
|
'configuration': [f'Unsupported {technology}'],
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
def _render_flutter(self
|
|
67
|
+
def _render_flutter(self) -> Any:
|
|
68
68
|
"""
|
|
69
69
|
Converts the configuration of the chart to a Flutter native components.
|
|
70
70
|
"""
|