layrz-sdk 4.0.32__py3-none-any.whl → 4.0.34__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.

@@ -3,11 +3,12 @@
3
3
  from datetime import datetime
4
4
  from typing import Any
5
5
 
6
- from pydantic import BaseModel, Field
6
+ from pydantic import BaseModel, Field, field_serializer
7
7
 
8
8
  from layrz_sdk.constants import UTC
9
9
  from layrz_sdk.entities.asset import Asset
10
10
  from layrz_sdk.entities.device import Device
11
+ from layrz_sdk.entities.locator import Locator
11
12
  from layrz_sdk.entities.trigger import Trigger
12
13
 
13
14
  from .service import BroadcastService
@@ -16,18 +17,37 @@ from .service import BroadcastService
16
17
  class BroadcastPayload(BaseModel):
17
18
  """Broadcast payload data, structure that is sent to the Outbound MQTT and other services"""
18
19
 
19
- model_config = {
20
- 'loc_by_alias': True,
21
- 'json_encoders': {
22
- datetime: lambda v: v.timestamp(),
23
- },
24
- }
25
-
26
20
  asset: Asset = Field(..., description='Asset object')
21
+
22
+ @field_serializer('asset', when_used='always')
23
+ def serialize_asset(self, v: Asset) -> dict[str, Any]:
24
+ return v.model_dump(mode='json', by_alias=True)
25
+
27
26
  primary_device: Device | None = Field(default=None, description='Primary device object')
27
+
28
+ @field_serializer('primary_device', when_used='always')
29
+ def serialize_primary_device(self, v: Device | None) -> dict[str, Any] | None:
30
+ if v is None:
31
+ return None
32
+ return v.model_dump(mode='json', by_alias=True)
33
+
28
34
  trigger: Trigger | None = Field(default=None, description='Trigger object, if available')
35
+
36
+ @field_serializer('trigger', when_used='always')
37
+ def serialize_trigger(self, v: Trigger | None) -> dict[str, Any] | None:
38
+ if v is None:
39
+ return None
40
+ return v.model_dump(mode='json', by_alias=True)
41
+
29
42
  message_id: int | str = Field(..., description='Message ID')
30
43
  service: BroadcastService | None = Field(default=None, description='Broadcast service object')
44
+
45
+ @field_serializer('service', when_used='always')
46
+ def serialize_service(self, v: BroadcastService | None) -> dict[str, Any] | None:
47
+ if v is None:
48
+ return None
49
+ return v.model_dump(mode='json', by_alias=True)
50
+
31
51
  position: dict[str, Any] = Field(default_factory=dict, description='Position data, if available')
32
52
  sensors: dict[str, Any] = Field(default_factory=dict, description='Sensors data, if available')
33
53
  payload: dict[str, Any] = Field(default_factory=dict, description='Payload data, if available')
@@ -35,3 +55,15 @@ class BroadcastPayload(BaseModel):
35
55
  default_factory=lambda: datetime.now(UTC),
36
56
  description='Broadcast payload received date',
37
57
  )
58
+
59
+ @field_serializer('received_at', when_used='always')
60
+ def serialize_received_at(self, v: datetime) -> float:
61
+ return v.timestamp()
62
+
63
+ locator: Locator | None = Field(default=None, description='Locator object, if available')
64
+
65
+ @field_serializer('locator', when_used='always')
66
+ def serialize_locator(self, v: Locator | None) -> dict[str, Any] | None:
67
+ if v is None:
68
+ return None
69
+ return v.model_dump(mode='json', by_alias=True)
@@ -74,3 +74,8 @@ class Locator(BaseModel):
74
74
  @field_serializer('expires_at', when_used='always')
75
75
  def serialize_expires_at(self, expires_at: datetime | None) -> float | None:
76
76
  return expires_at.timestamp() if expires_at else None
77
+
78
+ customization_id: int | None = Field(
79
+ default=None,
80
+ description='Defines the customization ID associated with the locator, if applicable',
81
+ )
@@ -113,7 +113,7 @@ class Report(BaseModel):
113
113
  for cell in row.content:
114
114
  cells.append(
115
115
  {
116
- 'content': cell.content,
116
+ 'content': cell.content.timestamp() if cell.data_type == ReportDataType.DATETIME else cell.content,
117
117
  'text_color': '#000000' if use_black(cell.color) else '#ffffff',
118
118
  'color': cell.color,
119
119
  'data_type': cell.data_type.value,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: layrz-sdk
3
- Version: 4.0.32
3
+ Version: 4.0.34
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>, Miguel Zauzich <miguel@goldenm.com>, Angel Prieto <aprieto@goldenm.com>
@@ -35,7 +35,7 @@ layrz_sdk/entities/function.py,sha256=rmUkw0QxD9NpKb1eL42aSsvEa6zPN41MpD86aIKjyB
35
35
  layrz_sdk/entities/geofence.py,sha256=QLjJfMz8F180AMWVvld-SX22RBrmr46h4P66ATimFbY,681
36
36
  layrz_sdk/entities/geofence_category.py,sha256=h9elE_NqDXeOPGGjtwI2AQacl2ijCJP05_cXBnUXf_4,900
37
37
  layrz_sdk/entities/last_message.py,sha256=QNgF0xCQ6uLFDMmKQCjSRhGS1Bq7akw5pv6ZIiFlwfY,268
38
- layrz_sdk/entities/locator.py,sha256=31I5GW6Uw9dXWm3b5YiIKY6eutXeDBhxg5SUXw8D1kA,2718
38
+ layrz_sdk/entities/locator.py,sha256=iXUbhBkNkkco54SAP921h99UgfPpcXad9TX1P2ufI1c,2872
39
39
  layrz_sdk/entities/message.py,sha256=UXXIdfJTmf2070_FsrHc2a_nQ5RcXMYQqvNyyKcaHMM,1415
40
40
  layrz_sdk/entities/notification_type.py,sha256=WTAFt8cOczXHsIk4RIDbakbtW_JqlvAg7PdW8EVqDew,669
41
41
  layrz_sdk/entities/operation.py,sha256=n2WM2hnvzFznXY5HZWRWQwCymQl9DCHrjUrDepDtf7k,6557
@@ -47,7 +47,7 @@ layrz_sdk/entities/platform.py,sha256=fJQXFwRhG_L9h2h7lm_KYqpssJgYtRbfTWPy7BqOnO
47
47
  layrz_sdk/entities/position.py,sha256=kbq3xrlHVtSUBx0qI9lXrL7cLdg-vps5g3x9u7anHtE,2973
48
48
  layrz_sdk/entities/presence_type.py,sha256=1p_MVREYkB7pey_TUf51QXQdlY5okZpkbiEd_l6oa04,335
49
49
  layrz_sdk/entities/preset.py,sha256=1SKTdV2JM1d3vr0cgQyzmtYswtu3JQwkERfpC2Rkt_w,705
50
- layrz_sdk/entities/report.py,sha256=JPEvUT25EltYFpD1COox_gYPkm0cYoDmBhcdCpAPnhk,9421
50
+ layrz_sdk/entities/report.py,sha256=OeXCmqDezkBYF_F_ZeF3b3UgAbDvPWKtrwmkIQ-UZvI,9496
51
51
  layrz_sdk/entities/report_col.py,sha256=IJds9joY6Wqn187tgcb8LKCRJNCbQ9tassSYdv3jlXI,1317
52
52
  layrz_sdk/entities/report_configuration.py,sha256=USgpkEBr40nzS3LW9jd1MF34pFDN1XckgAHsfdJcFTA,236
53
53
  layrz_sdk/entities/report_data_type.py,sha256=hIsvSzdfjXQnivj6fI0csmVZtCKbvMGod2-h99RQ428,414
@@ -68,7 +68,7 @@ layrz_sdk/entities/user.py,sha256=-j15Q3nDqd1eYEtkId_Cj5bjIRJAapt6et_ny8fW6xw,24
68
68
  layrz_sdk/entities/waypoint.py,sha256=ZZMIZet5y_cspEQp8ToIkrM0f1ljnkXgnReMB09DDvU,1736
69
69
  layrz_sdk/entities/weekday.py,sha256=IJwt4qYc7N0zH40oP_A3pmipEL2JcYWv6jVsObqrUpU,418
70
70
  layrz_sdk/entities/broadcast/__init__.py,sha256=vXw01LIoVQhGgfLLhhT289Qc0mWhF0_fmF_JuKeCEs4,416
71
- layrz_sdk/entities/broadcast/payload.py,sha256=ugD5m3zVFZVDfBMkR2WlZTWunn9gZSQ1Ej8YXbeA8Wk,1417
71
+ layrz_sdk/entities/broadcast/payload.py,sha256=l6cVJtfNtWQWeXLzQTe5BU6sfbMV-ADf1hxyfkdAcU0,2637
72
72
  layrz_sdk/entities/broadcast/request.py,sha256=MQb9kyDSAMXtp4_sPOamBsYyCVZ02wj8NXmi8IEmM68,260
73
73
  layrz_sdk/entities/broadcast/response.py,sha256=hK3D05pecln9wbkdGr892Kzmd7bMzjsaayPxzJPVHsw,263
74
74
  layrz_sdk/entities/broadcast/result.py,sha256=yRf8Yd4ymCGyjfpHoYqVD7OPitfUsZNulGDJfib1yj0,2030
@@ -115,8 +115,8 @@ layrz_sdk/helpers/__init__.py,sha256=5iW3z2m3jrYhvTfxX-p-QTkR9X9oTKfEsbtVOg9jFFY
115
115
  layrz_sdk/helpers/color.py,sha256=dlpMafbM-4Wd9D9hMbbnZJf4ALkpie_ZmBR2Vz_YCmM,1203
116
116
  layrz_sdk/lcl/__init__.py,sha256=U967AWANkL3u_YVxMNAYlh8jkZ6hqHfStacz7yz6sOA,89
117
117
  layrz_sdk/lcl/core.py,sha256=_3uK05I0iwJl63cVWKxt-qFkq0DWggCj5M680GHH5uQ,25161
118
- layrz_sdk-4.0.32.dist-info/licenses/LICENSE,sha256=d5ZrU--lIPER7QByXDKcrtOTOMk1JvN_9FdYDuoWi7Y,1057
119
- layrz_sdk-4.0.32.dist-info/METADATA,sha256=ngMNiri7pQDYqT3ae5nVr5eg28UCFFpdnIaZPRnpluo,2045
120
- layrz_sdk-4.0.32.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
121
- layrz_sdk-4.0.32.dist-info/top_level.txt,sha256=yUTMMzfdZ0HDWQH5TaSlFM4xtwmP1fSGxmlL1dmu4l4,10
122
- layrz_sdk-4.0.32.dist-info/RECORD,,
118
+ layrz_sdk-4.0.34.dist-info/licenses/LICENSE,sha256=d5ZrU--lIPER7QByXDKcrtOTOMk1JvN_9FdYDuoWi7Y,1057
119
+ layrz_sdk-4.0.34.dist-info/METADATA,sha256=OXJ1oDFonlhI72PCYxSLpsqlw8MmSsRnmP3e91ok0t4,2045
120
+ layrz_sdk-4.0.34.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
121
+ layrz_sdk-4.0.34.dist-info/top_level.txt,sha256=yUTMMzfdZ0HDWQH5TaSlFM4xtwmP1fSGxmlL1dmu4l4,10
122
+ layrz_sdk-4.0.34.dist-info/RECORD,,