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

@@ -1,6 +1,8 @@
1
1
  """Device entitiy"""
2
2
 
3
- from pydantic import BaseModel, Field
3
+ from typing import Any
4
+
5
+ from pydantic import BaseModel, Field, field_validator
4
6
 
5
7
  from .modbus import ModbusConfig
6
8
 
@@ -18,4 +20,13 @@ class Device(BaseModel):
18
20
  protocol: str = Field(description='Defines the protocol of the device')
19
21
  is_primary: bool = Field(default=False, description='Defines if the device is the primary device')
20
22
 
23
+ @field_validator('is_primary', mode='before')
24
+ def validate_is_primary(cls, value: Any) -> bool:
25
+ """Validate that is_primary is a boolean value."""
26
+ if isinstance(value, str):
27
+ return value.lower() in ('true', '1', 'yes')
28
+ if isinstance(value, bool):
29
+ return value
30
+ return False
31
+
21
32
  modbus: ModbusConfig | None = Field(default=None, description='Modbus configuration')
@@ -3,7 +3,7 @@
3
3
  from datetime import time, timedelta
4
4
  from typing import Any, Self
5
5
 
6
- from pydantic import BaseModel, Field
6
+ from pydantic import BaseModel, Field, field_validator
7
7
 
8
8
  from .destination_phone import DestinationPhone
9
9
  from .notification_type import TwilioNotificationType
@@ -181,11 +181,21 @@ class Operation(BaseModel):
181
181
  description='Defines the URI for the sound effect of the operation. Only when sound_effect is set to CUSTOM.',
182
182
  )
183
183
 
184
- duration: timedelta = Field(
184
+ duration: timedelta | None = Field(
185
185
  default_factory=lambda: timedelta(seconds=5),
186
186
  description='Defines the duration of the operation',
187
187
  )
188
188
 
189
+ @field_validator('duration', mode='before')
190
+ def validate_duration(cls, value: Any) -> timedelta:
191
+ if value is None:
192
+ return timedelta(seconds=0)
193
+ if isinstance(value, timedelta):
194
+ return value
195
+ if isinstance(value, (int, float)):
196
+ return timedelta(seconds=value)
197
+ return timedelta(seconds=0)
198
+
189
199
  credentials: dict[str, Any] = Field(
190
200
  default_factory=dict,
191
201
  description='Defines the credentials for the operation',
@@ -275,8 +275,18 @@ class OperationPayload(BaseModel):
275
275
  alias='icon',
276
276
  )
277
277
 
278
- duration: timedelta = Field(
278
+ duration: timedelta | None = Field(
279
279
  default_factory=lambda: timedelta(seconds=0),
280
280
  description='Defines the duration of the in-app notification',
281
281
  alias='duration',
282
282
  )
283
+
284
+ @field_validator('duration', mode='before')
285
+ def validate_duration(cls, value: Any) -> timedelta:
286
+ if value is None:
287
+ return timedelta(seconds=0)
288
+ if isinstance(value, timedelta):
289
+ return value
290
+ if isinstance(value, (int, float)):
291
+ return timedelta(seconds=value)
292
+ return timedelta(seconds=0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: layrz-sdk
3
- Version: 4.0.3
3
+ Version: 4.0.5
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>
@@ -24,7 +24,7 @@ layrz_sdk/entities/comment.py,sha256=fqcozjlKiOLrfGxhqbiTPzsOkSp2FMcbIUgDSojTDlM
24
24
  layrz_sdk/entities/custom_field.py,sha256=ToaQPHP8dmY8MkFLkgxnAyDoyBByExifCu_mpH78Xwc,474
25
25
  layrz_sdk/entities/custom_report_page.py,sha256=eqtoFOgip0z4_cMql1tHgaR4JiVEYlfbzd9ZJ7ZLyrM,1231
26
26
  layrz_sdk/entities/destination_phone.py,sha256=IFQFtM_wQjlTdsBc-lXnbcJSwNv-yhL1PzTCexw4nNk,556
27
- layrz_sdk/entities/device.py,sha256=mxN2e4GVZXhmqMGqNnzdmhCDkn7gNn7EaAAxka6erOs,744
27
+ layrz_sdk/entities/device.py,sha256=xboiqZ6cuM4Saihv-k5sPAhWlxLfgVe5M3knqfjLKr0,1091
28
28
  layrz_sdk/entities/event.py,sha256=iQ73VC7nds3fgdAu6dWsEGFIBgqem3w1bAyUOxUxvqI,732
29
29
  layrz_sdk/entities/exchange_service.py,sha256=DOSffjwxZ7tcRA6nk0QCf-dpO981jqP9FX_wjvviSGI,665
30
30
  layrz_sdk/entities/function.py,sha256=rmUkw0QxD9NpKb1eL42aSsvEa6zPN41MpD86aIKjyB0,1225
@@ -33,9 +33,9 @@ layrz_sdk/entities/geofence_category.py,sha256=h9elE_NqDXeOPGGjtwI2AQacl2ijCJP05
33
33
  layrz_sdk/entities/last_message.py,sha256=QNgF0xCQ6uLFDMmKQCjSRhGS1Bq7akw5pv6ZIiFlwfY,268
34
34
  layrz_sdk/entities/message.py,sha256=uCfnrDcgZfnfcnRaE2djJcLJK75frIeF3aUhXPj7zco,997
35
35
  layrz_sdk/entities/notification_type.py,sha256=WTAFt8cOczXHsIk4RIDbakbtW_JqlvAg7PdW8EVqDew,669
36
- layrz_sdk/entities/operation.py,sha256=sURDl8TRiATXZr4KDTzwDTp24i3sGjwyWsLUy63xxhI,5449
36
+ layrz_sdk/entities/operation.py,sha256=e9c46dWfNodfAhOTr_4PBP6SMzZCQVevmI0GzILxl38,5797
37
37
  layrz_sdk/entities/operation_case_payload.py,sha256=NSsZbtP_Iz1At7ok4xlVFzk40Vx_-7wBYMgYNV5Ftu8,2520
38
- layrz_sdk/entities/operation_payload.py,sha256=2V6y2qUNq6goAZtrMBrCLpc282c6njcVEyWbahIbyUA,8248
38
+ layrz_sdk/entities/operation_payload.py,sha256=JXOg3aY0lGYXFfmHSqwwYOGOkZhTsaNTwikV39GdI6g,8579
39
39
  layrz_sdk/entities/operation_type.py,sha256=NAe_suR3Zfazu5KsYsPya8AtkSaNNjh78XPBEIqMTQU,939
40
40
  layrz_sdk/entities/outbound_service.py,sha256=mDtMwTql8sHmFayP1AnGdMgegF6tsvu-xSC2ftGVNJo,663
41
41
  layrz_sdk/entities/platform.py,sha256=fJQXFwRhG_L9h2h7lm_KYqpssJgYtRbfTWPy7BqOnOE,626
@@ -109,8 +109,8 @@ layrz_sdk/helpers/__init__.py,sha256=5iW3z2m3jrYhvTfxX-p-QTkR9X9oTKfEsbtVOg9jFFY
109
109
  layrz_sdk/helpers/color.py,sha256=dlpMafbM-4Wd9D9hMbbnZJf4ALkpie_ZmBR2Vz_YCmM,1203
110
110
  layrz_sdk/lcl/__init__.py,sha256=U967AWANkL3u_YVxMNAYlh8jkZ6hqHfStacz7yz6sOA,89
111
111
  layrz_sdk/lcl/core.py,sha256=T80A3hL7SeqRNSfl5SrPAgwIEf-enoAVv9ldwJNzqsA,24786
112
- layrz_sdk-4.0.3.dist-info/licenses/LICENSE,sha256=d5ZrU--lIPER7QByXDKcrtOTOMk1JvN_9FdYDuoWi7Y,1057
113
- layrz_sdk-4.0.3.dist-info/METADATA,sha256=JYgxlgTFdBQV3kvNqTxTg25qA1Yhpw0Klhi-vlryR3E,1955
114
- layrz_sdk-4.0.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
115
- layrz_sdk-4.0.3.dist-info/top_level.txt,sha256=yUTMMzfdZ0HDWQH5TaSlFM4xtwmP1fSGxmlL1dmu4l4,10
116
- layrz_sdk-4.0.3.dist-info/RECORD,,
112
+ layrz_sdk-4.0.5.dist-info/licenses/LICENSE,sha256=d5ZrU--lIPER7QByXDKcrtOTOMk1JvN_9FdYDuoWi7Y,1057
113
+ layrz_sdk-4.0.5.dist-info/METADATA,sha256=Ueq17MEfq9IFvulWncoJwWonRHgBJiKUFz91OLEnL7s,1955
114
+ layrz_sdk-4.0.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
115
+ layrz_sdk-4.0.5.dist-info/top_level.txt,sha256=yUTMMzfdZ0HDWQH5TaSlFM4xtwmP1fSGxmlL1dmu4l4,10
116
+ layrz_sdk-4.0.5.dist-info/RECORD,,