layrz-sdk 3.1.10__py3-none-any.whl → 3.1.12__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/asset.py +6 -6
- layrz_sdk/entities/case.py +4 -3
- layrz_sdk/entities/charts/bar_chart.py +7 -7
- layrz_sdk/entities/charts/chart_color.py +2 -2
- layrz_sdk/entities/charts/column_chart.py +8 -8
- layrz_sdk/entities/charts/html_chart.py +3 -3
- layrz_sdk/entities/charts/line_chart.py +7 -7
- layrz_sdk/entities/charts/map_chart.py +9 -9
- layrz_sdk/entities/charts/number_chart.py +3 -3
- layrz_sdk/entities/charts/pie_chart.py +7 -7
- layrz_sdk/entities/charts/radar_chart.py +5 -5
- layrz_sdk/entities/charts/radial_bar_chart.py +4 -4
- layrz_sdk/entities/charts/scatter_chart.py +7 -7
- layrz_sdk/entities/charts/scatter_serie.py +1 -3
- layrz_sdk/entities/charts/table_chart.py +6 -6
- layrz_sdk/entities/charts/timeline_chart.py +5 -5
- layrz_sdk/entities/charts/timeline_serie.py +1 -3
- layrz_sdk/entities/checkpoint.py +1 -2
- layrz_sdk/entities/custom_report_page.py +1 -1
- layrz_sdk/entities/message.py +2 -2
- layrz_sdk/entities/position.py +18 -3
- layrz_sdk/entities/report.py +6 -6
- layrz_sdk/entities/report_page.py +2 -4
- layrz_sdk/entities/report_row.py +2 -2
- layrz_sdk/helpers/__init__.py +1 -4
- layrz_sdk/helpers/color.py +2 -2
- layrz_sdk/lcl/__init__.py +1 -3
- layrz_sdk/lcl/core.py +59 -59
- {layrz_sdk-3.1.10.dist-info → layrz_sdk-3.1.12.dist-info}/METADATA +1 -1
- {layrz_sdk-3.1.10.dist-info → layrz_sdk-3.1.12.dist-info}/RECORD +33 -33
- {layrz_sdk-3.1.10.dist-info → layrz_sdk-3.1.12.dist-info}/WHEEL +0 -0
- {layrz_sdk-3.1.10.dist-info → layrz_sdk-3.1.12.dist-info}/licenses/LICENSE +0 -0
- {layrz_sdk-3.1.10.dist-info → layrz_sdk-3.1.12.dist-info}/top_level.txt +0 -0
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
from typing import List
|
|
2
|
-
|
|
3
1
|
from pydantic import BaseModel, Field
|
|
4
2
|
|
|
5
3
|
from .timeline_serie_item import TimelineSerieItem
|
|
@@ -8,5 +6,5 @@ from .timeline_serie_item import TimelineSerieItem
|
|
|
8
6
|
class TimelineSerie(BaseModel):
|
|
9
7
|
"""Chart Data Serie for Timeline charts"""
|
|
10
8
|
|
|
11
|
-
data:
|
|
9
|
+
data: list[TimelineSerieItem] = Field(description='List of data points', default_factory=list)
|
|
12
10
|
label: str = Field(description='Label of the serie')
|
layrz_sdk/entities/checkpoint.py
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"""Checkpoints entitites"""
|
|
2
2
|
|
|
3
3
|
from datetime import datetime
|
|
4
|
-
from typing import List
|
|
5
4
|
|
|
6
5
|
from pydantic import BaseModel, Field
|
|
7
6
|
|
|
@@ -13,6 +12,6 @@ class Checkpoint(BaseModel):
|
|
|
13
12
|
|
|
14
13
|
pk: int = Field(description='Checkpoint ID')
|
|
15
14
|
asset_id: int = Field(description='Asset ID')
|
|
16
|
-
waypoints:
|
|
15
|
+
waypoints: list[Waypoint] = Field(description='List of waypoints', default_factory=list)
|
|
17
16
|
start_at: datetime = Field(description='Checkpoint start date')
|
|
18
17
|
end_at: datetime = Field(description='Checkpoint end date')
|
layrz_sdk/entities/message.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""Message entity"""
|
|
2
2
|
|
|
3
3
|
from datetime import datetime
|
|
4
|
-
from typing import Any,
|
|
4
|
+
from typing import Any, TypeAlias
|
|
5
5
|
|
|
6
6
|
from pydantic import BaseModel, Field
|
|
7
7
|
|
|
@@ -9,7 +9,7 @@ from layrz_sdk.constants import UTC
|
|
|
9
9
|
|
|
10
10
|
from .position import Position
|
|
11
11
|
|
|
12
|
-
PayloadType: TypeAlias =
|
|
12
|
+
PayloadType: TypeAlias = dict[str, Any]
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
class Message(BaseModel):
|
layrz_sdk/entities/position.py
CHANGED
|
@@ -31,9 +31,12 @@ class Position(BaseModel):
|
|
|
31
31
|
if value is None:
|
|
32
32
|
return None
|
|
33
33
|
|
|
34
|
-
if not isinstance(value, float):
|
|
34
|
+
if not isinstance(value, (int, float)):
|
|
35
35
|
return None
|
|
36
36
|
|
|
37
|
+
if isinstance(value, int):
|
|
38
|
+
value = float(value)
|
|
39
|
+
|
|
37
40
|
if -90 <= value <= 90:
|
|
38
41
|
return value
|
|
39
42
|
|
|
@@ -45,9 +48,12 @@ class Position(BaseModel):
|
|
|
45
48
|
if value is None:
|
|
46
49
|
return None
|
|
47
50
|
|
|
48
|
-
if not isinstance(value, float):
|
|
51
|
+
if not isinstance(value, (int, float)):
|
|
49
52
|
return None
|
|
50
53
|
|
|
54
|
+
if isinstance(value, int):
|
|
55
|
+
value = float(value)
|
|
56
|
+
|
|
51
57
|
if -180 <= value <= 180:
|
|
52
58
|
return value
|
|
53
59
|
|
|
@@ -70,9 +76,12 @@ class Position(BaseModel):
|
|
|
70
76
|
if value is None:
|
|
71
77
|
return None
|
|
72
78
|
|
|
73
|
-
if not isinstance(value, float):
|
|
79
|
+
if not isinstance(value, (int, float)):
|
|
74
80
|
return None
|
|
75
81
|
|
|
82
|
+
if isinstance(value, int):
|
|
83
|
+
value = float(value)
|
|
84
|
+
|
|
76
85
|
return value
|
|
77
86
|
|
|
78
87
|
@field_validator('speed', mode='before')
|
|
@@ -84,6 +93,9 @@ class Position(BaseModel):
|
|
|
84
93
|
if not isinstance(value, (float, int)):
|
|
85
94
|
return None
|
|
86
95
|
|
|
96
|
+
if isinstance(value, int):
|
|
97
|
+
value = float(value)
|
|
98
|
+
|
|
87
99
|
return abs(value)
|
|
88
100
|
|
|
89
101
|
@field_validator('direction', mode='before')
|
|
@@ -95,6 +107,9 @@ class Position(BaseModel):
|
|
|
95
107
|
if not isinstance(value, (float, int)):
|
|
96
108
|
return None
|
|
97
109
|
|
|
110
|
+
if isinstance(value, int):
|
|
111
|
+
value = float(value)
|
|
112
|
+
|
|
98
113
|
if 0 <= value <= 360:
|
|
99
114
|
return value
|
|
100
115
|
|
layrz_sdk/entities/report.py
CHANGED
|
@@ -6,7 +6,7 @@ import sys
|
|
|
6
6
|
import time
|
|
7
7
|
import warnings
|
|
8
8
|
from pathlib import Path
|
|
9
|
-
from typing import Any,
|
|
9
|
+
from typing import Any, Optional
|
|
10
10
|
|
|
11
11
|
import xlsxwriter
|
|
12
12
|
from pydantic import BaseModel, Field, field_validator
|
|
@@ -30,7 +30,7 @@ class Report(BaseModel):
|
|
|
30
30
|
"""Report definition"""
|
|
31
31
|
|
|
32
32
|
name: str = Field(description='Name of the report. Length should be less than 60 characters')
|
|
33
|
-
pages:
|
|
33
|
+
pages: list[ReportPage | CustomReportPage] = Field(
|
|
34
34
|
description='List of report pages',
|
|
35
35
|
default_factory=list,
|
|
36
36
|
)
|
|
@@ -58,7 +58,7 @@ class Report(BaseModel):
|
|
|
58
58
|
export_format: Optional[ReportFormat] = None,
|
|
59
59
|
password: Optional[str] = None,
|
|
60
60
|
msoffice_crypt_path: str = '/opt/msoffice/bin/msoffice-crypt.exe',
|
|
61
|
-
) -> Path |
|
|
61
|
+
) -> Path | dict[str, Any]:
|
|
62
62
|
"""
|
|
63
63
|
Export report to file
|
|
64
64
|
|
|
@@ -93,11 +93,11 @@ class Report(BaseModel):
|
|
|
93
93
|
else:
|
|
94
94
|
raise AttributeError(f'Unsupported export format: {self.export_format}')
|
|
95
95
|
|
|
96
|
-
def export_as_json(self: Self) ->
|
|
96
|
+
def export_as_json(self: Self) -> dict[str, Any]:
|
|
97
97
|
"""Returns the report as a JSON dict"""
|
|
98
98
|
return self._export_json()
|
|
99
99
|
|
|
100
|
-
def _export_json(self: Self) ->
|
|
100
|
+
def _export_json(self: Self) -> dict[str, Any]:
|
|
101
101
|
"""Returns a JSON dict of the report"""
|
|
102
102
|
json_pages = []
|
|
103
103
|
for page in self.pages:
|
|
@@ -176,7 +176,7 @@ class Report(BaseModel):
|
|
|
176
176
|
|
|
177
177
|
book = xlsxwriter.Workbook(full_path)
|
|
178
178
|
|
|
179
|
-
pages_name:
|
|
179
|
+
pages_name: list[str] = []
|
|
180
180
|
|
|
181
181
|
for page in self.pages:
|
|
182
182
|
sheet_name = page.name[0:20]
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"""Report page"""
|
|
2
2
|
|
|
3
|
-
from typing import List
|
|
4
|
-
|
|
5
3
|
from pydantic import BaseModel, Field
|
|
6
4
|
|
|
7
5
|
from .report_header import ReportHeader
|
|
@@ -12,6 +10,6 @@ class ReportPage(BaseModel):
|
|
|
12
10
|
"""Report page definition"""
|
|
13
11
|
|
|
14
12
|
name: str = Field(description='Name of the page. Length should be less than 60 characters')
|
|
15
|
-
headers:
|
|
16
|
-
rows:
|
|
13
|
+
headers: list[ReportHeader] = Field(description='List of report headers', default_factory=list)
|
|
14
|
+
rows: list[ReportRow] = Field(description='List of report rows', default_factory=list)
|
|
17
15
|
freeze_header: bool = Field(description='Freeze header', default=False)
|
layrz_sdk/entities/report_row.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""Report row"""
|
|
2
2
|
|
|
3
3
|
import warnings
|
|
4
|
-
from typing import Any,
|
|
4
|
+
from typing import Any, Optional
|
|
5
5
|
|
|
6
6
|
from pydantic import BaseModel, Field, field_validator
|
|
7
7
|
|
|
@@ -11,7 +11,7 @@ from .report_col import ReportCol
|
|
|
11
11
|
class ReportRow(BaseModel):
|
|
12
12
|
"""Report row definition"""
|
|
13
13
|
|
|
14
|
-
content:
|
|
14
|
+
content: list[ReportCol] = Field(description='List of report columns', default_factory=list)
|
|
15
15
|
height: Optional[float] = Field(description='Row height', default=None)
|
|
16
16
|
compact: bool = Field(description='Compact mode', default=False)
|
|
17
17
|
|
layrz_sdk/helpers/__init__.py
CHANGED
layrz_sdk/helpers/color.py
CHANGED