layrz-sdk 3.1.18__tar.gz → 3.1.19__tar.gz
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-3.1.18 → layrz_sdk-3.1.19}/CHANGELOG.md +12 -0
- {layrz_sdk-3.1.18/layrz_sdk.egg-info → layrz_sdk-3.1.19}/PKG-INFO +1 -1
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/telemetry/assetmessage.py +19 -1
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/telemetry/devicemessage.py +7 -2
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19/layrz_sdk.egg-info}/PKG-INFO +1 -1
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/pyproject.toml +1 -1
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/uv.lock +1 -1
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/.github/workflows/checks.yml +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/.github/workflows/deploy.yml +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/.gitignore +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/.vscode/extensions.json +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/CODE_OF_CONDUCT.md +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/CONTRIBUTING.md +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/LICENSE +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/README.md +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/__init__.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/constants.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/__init__.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/asset.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/asset_operation_mode.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/broadcast_request.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/broadcast_response.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/broadcast_result.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/broadcast_status.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/case.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/case_ignored_status.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/case_status.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/axis_config.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/bar_chart.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/chart_alignment.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/chart_color.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/chart_configuration.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/chart_data_serie.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/chart_data_serie_type.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/chart_data_type.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/chart_render_technology.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/column_chart.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/html_chart.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/line_chart.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/map_center_type.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/map_chart.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/map_point.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/number_chart.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/pie_chart.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/radar_chart.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/radial_bar_chart.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/scatter_chart.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/scatter_serie.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/scatter_serie_item.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/table_chart.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/table_header.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/table_row.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/timeline_chart.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/timeline_serie.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/charts/timeline_serie_item.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/checkpoint.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/comment.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/custom_field.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/custom_report_page.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/device.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/event.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/geofence.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/last_message.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/message.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/modbus/__init__.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/modbus/config.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/modbus/parameter.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/modbus/schema.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/modbus/status.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/modbus/wait.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/outbound_service.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/position.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/presence_type.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/report.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/report_col.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/report_configuration.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/report_data_type.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/report_format.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/report_header.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/report_page.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/report_row.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/sensor.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/static_position.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/telemetry/__init__.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/text_alignment.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/trigger.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/user.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/entities/waypoint.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/helpers/__init__.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/helpers/color.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/lcl/__init__.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/lcl/core.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk/py.typed +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk.egg-info/SOURCES.txt +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk.egg-info/dependency_links.txt +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk.egg-info/requires.txt +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/layrz_sdk.egg-info/top_level.txt +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/manual_deploy.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/setup.cfg +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/tests/__init__.py +0 -0
- {layrz_sdk-3.1.18 → layrz_sdk-3.1.19}/tests/test_lcl.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: layrz-sdk
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.19
|
|
4
4
|
Summary: Layrz SDK for Python
|
|
5
5
|
Author-email: "Golden M, Inc." <software@goldenm.com>
|
|
6
6
|
Maintainer-email: Kenny Mochizuki <kenny@goldenm.com>, Luis Reyes <lreyes@goldenm.com>, Kasen Li <kli@goldenm.com>
|
|
@@ -15,7 +15,7 @@ else:
|
|
|
15
15
|
from typing_extensions import Self
|
|
16
16
|
|
|
17
17
|
from geopy.distance import geodesic
|
|
18
|
-
from pydantic import BaseModel, Field
|
|
18
|
+
from pydantic import BaseModel, Field, field_serializer
|
|
19
19
|
from shapely.geometry import MultiPoint
|
|
20
20
|
|
|
21
21
|
from layrz_sdk.constants import UTC
|
|
@@ -28,6 +28,14 @@ from layrz_sdk.entities.telemetry.devicemessage import DeviceMessage
|
|
|
28
28
|
class AssetMessage(BaseModel):
|
|
29
29
|
"""Asset message model"""
|
|
30
30
|
|
|
31
|
+
model_config = {
|
|
32
|
+
'json_encoders': {
|
|
33
|
+
datetime: lambda v: v.timestamp(),
|
|
34
|
+
timedelta: lambda v: v.total_seconds(),
|
|
35
|
+
Position: lambda v: json.loads(v.model_dump_json(exclude_none=True)),
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
31
39
|
pk: int | None = Field(
|
|
32
40
|
default=None,
|
|
33
41
|
description='Message ID',
|
|
@@ -69,11 +77,21 @@ class AssetMessage(BaseModel):
|
|
|
69
77
|
description='Timestamp when the message was received',
|
|
70
78
|
)
|
|
71
79
|
|
|
80
|
+
@field_serializer('received_at')
|
|
81
|
+
def serialize_received_at(self: Self, value: datetime) -> float:
|
|
82
|
+
"""Serialize received_at to a timestamp."""
|
|
83
|
+
return value.timestamp()
|
|
84
|
+
|
|
72
85
|
elapsed_time: timedelta = Field(
|
|
73
86
|
default_factory=lambda: timedelta(seconds=0),
|
|
74
87
|
description='Elapsed time since the last message',
|
|
75
88
|
)
|
|
76
89
|
|
|
90
|
+
@field_serializer('elapsed_time')
|
|
91
|
+
def serialize_elapsed_time(self: Self, value: timedelta) -> float:
|
|
92
|
+
"""Serialize elapsed_time to total seconds."""
|
|
93
|
+
return value.total_seconds()
|
|
94
|
+
|
|
77
95
|
@property
|
|
78
96
|
def datum_gis(self: Self) -> int:
|
|
79
97
|
"""Get the GIS datum of the message."""
|
|
@@ -15,7 +15,7 @@ if sys.version_info >= (3, 11):
|
|
|
15
15
|
else:
|
|
16
16
|
from typing_extensions import Self
|
|
17
17
|
|
|
18
|
-
from pydantic import BaseModel, Field
|
|
18
|
+
from pydantic import BaseModel, Field, field_serializer
|
|
19
19
|
|
|
20
20
|
from layrz_sdk.constants import REJECTED_KEYS, UTC
|
|
21
21
|
from layrz_sdk.entities.device import Device
|
|
@@ -59,6 +59,11 @@ class DeviceMessage(BaseModel):
|
|
|
59
59
|
description='Timestamp when the message was received',
|
|
60
60
|
)
|
|
61
61
|
|
|
62
|
+
@field_serializer('received_at')
|
|
63
|
+
def serialize_received_at(self: Self, value: datetime) -> float:
|
|
64
|
+
"""Serialize received_at to a timestamp."""
|
|
65
|
+
return value.timestamp()
|
|
66
|
+
|
|
62
67
|
@property
|
|
63
68
|
def datum_gis(self: Self) -> int:
|
|
64
69
|
"""Get the GIS datum of the message."""
|
|
@@ -105,7 +110,7 @@ class DeviceMessage(BaseModel):
|
|
|
105
110
|
return cls(
|
|
106
111
|
ident=device.ident,
|
|
107
112
|
device_id=device.pk,
|
|
108
|
-
protocol_id=device.protocol_id,
|
|
113
|
+
protocol_id=device.protocol_id, # type: ignore
|
|
109
114
|
position=position,
|
|
110
115
|
payload=payload,
|
|
111
116
|
received_at=received_at,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: layrz-sdk
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.19
|
|
4
4
|
Summary: Layrz SDK for Python
|
|
5
5
|
Author-email: "Golden M, Inc." <software@goldenm.com>
|
|
6
6
|
Maintainer-email: Kenny Mochizuki <kenny@goldenm.com>, Luis Reyes <lreyes@goldenm.com>, Kasen Li <kli@goldenm.com>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|