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.

Files changed (33) hide show
  1. layrz_sdk/entities/asset.py +6 -6
  2. layrz_sdk/entities/case.py +4 -3
  3. layrz_sdk/entities/charts/bar_chart.py +7 -7
  4. layrz_sdk/entities/charts/chart_color.py +2 -2
  5. layrz_sdk/entities/charts/column_chart.py +8 -8
  6. layrz_sdk/entities/charts/html_chart.py +3 -3
  7. layrz_sdk/entities/charts/line_chart.py +7 -7
  8. layrz_sdk/entities/charts/map_chart.py +9 -9
  9. layrz_sdk/entities/charts/number_chart.py +3 -3
  10. layrz_sdk/entities/charts/pie_chart.py +7 -7
  11. layrz_sdk/entities/charts/radar_chart.py +5 -5
  12. layrz_sdk/entities/charts/radial_bar_chart.py +4 -4
  13. layrz_sdk/entities/charts/scatter_chart.py +7 -7
  14. layrz_sdk/entities/charts/scatter_serie.py +1 -3
  15. layrz_sdk/entities/charts/table_chart.py +6 -6
  16. layrz_sdk/entities/charts/timeline_chart.py +5 -5
  17. layrz_sdk/entities/charts/timeline_serie.py +1 -3
  18. layrz_sdk/entities/checkpoint.py +1 -2
  19. layrz_sdk/entities/custom_report_page.py +1 -1
  20. layrz_sdk/entities/message.py +2 -2
  21. layrz_sdk/entities/position.py +18 -3
  22. layrz_sdk/entities/report.py +6 -6
  23. layrz_sdk/entities/report_page.py +2 -4
  24. layrz_sdk/entities/report_row.py +2 -2
  25. layrz_sdk/helpers/__init__.py +1 -4
  26. layrz_sdk/helpers/color.py +2 -2
  27. layrz_sdk/lcl/__init__.py +1 -3
  28. layrz_sdk/lcl/core.py +59 -59
  29. {layrz_sdk-3.1.10.dist-info → layrz_sdk-3.1.12.dist-info}/METADATA +1 -1
  30. {layrz_sdk-3.1.10.dist-info → layrz_sdk-3.1.12.dist-info}/RECORD +33 -33
  31. {layrz_sdk-3.1.10.dist-info → layrz_sdk-3.1.12.dist-info}/WHEEL +0 -0
  32. {layrz_sdk-3.1.10.dist-info → layrz_sdk-3.1.12.dist-info}/licenses/LICENSE +0 -0
  33. {layrz_sdk-3.1.10.dist-info → layrz_sdk-3.1.12.dist-info}/top_level.txt +0 -0
layrz_sdk/lcl/core.py CHANGED
@@ -1,7 +1,7 @@
1
1
  """Layrz Compute Language SDK"""
2
2
 
3
3
  # ruff: noqa: ANN401
4
- from typing import Any, Dict, List, Optional
4
+ from typing import Any, Optional
5
5
 
6
6
  from layrz_sdk.entities.message import PayloadType
7
7
 
@@ -21,8 +21,8 @@ class LclCore:
21
21
  sensors: Optional[PayloadType] = None,
22
22
  previous_sensors: Optional[PayloadType] = None,
23
23
  payload: Optional[PayloadType] = None,
24
- asset_constants: Optional[Dict[str, Any]] = None,
25
- custom_fields: Optional[Dict[str, Any]] = None,
24
+ asset_constants: Optional[dict[str, Any]] = None,
25
+ custom_fields: Optional[dict[str, Any]] = None,
26
26
  ) -> None:
27
27
  """
28
28
  Creates a new instance of LclCore
@@ -36,9 +36,9 @@ class LclCore:
36
36
  :param payload: Payload dictionary
37
37
  :type payload: Optional[PayloadType]
38
38
  :param asset_constants: Asset constants dictionary
39
- :type asset_constants: Optional[Dict[str, Any]]
39
+ :type asset_constants: Optional[dict[str, Any]]
40
40
  :param custom_fields: Custom fields dictionary
41
- :type custom_fields: Optional[Dict[str, Any]]
41
+ :type custom_fields: Optional[dict[str, Any]]
42
42
 
43
43
  :return: None
44
44
  :rtype: None
@@ -66,16 +66,16 @@ class LclCore:
66
66
 
67
67
  def perform(
68
68
  self,
69
- additional_globals: Optional[Dict[str, Any]] = None,
70
- additional_locals: Optional[Dict[str, Any]] = None,
69
+ additional_globals: Optional[dict[str, Any]] = None,
70
+ additional_locals: Optional[dict[str, Any]] = None,
71
71
  ) -> str:
72
72
  """
73
73
  Perform script using Layrz Compute Language
74
74
 
75
75
  :param additional_globals: Additional global variables
76
- :type additional_globals: Optional[Dict[str, Any]]
76
+ :type additional_globals: Optional[dict[str, Any]]
77
77
  :param additional_locals: Additional local variables
78
- :type additional_locals: Optional[Dict[str, Any]]
78
+ :type additional_locals: Optional[dict[str, Any]]
79
79
 
80
80
  :return: Result of the script in JSON format
81
81
  :rtype: str
@@ -158,7 +158,7 @@ class LclCore:
158
158
 
159
159
  return json.dumps(INVALID_ARGUMENTS.format(e=err))
160
160
 
161
- def _standarize_datatypes(self, args: List[Any]) -> List[Any]:
161
+ def _standarize_datatypes(self, args: list[Any]) -> list[Any]:
162
162
  """Standarize data types"""
163
163
  result_args = []
164
164
 
@@ -170,7 +170,7 @@ class LclCore:
170
170
 
171
171
  return result_args
172
172
 
173
- def GET_PARAM(self, *args: List[Any]) -> Any:
173
+ def GET_PARAM(self, *args: list[Any]) -> Any:
174
174
  """GET_PARAM Function"""
175
175
  if len(args) > 2:
176
176
  return INVALID_NUMBER_OF_PARAMS.format(expected=2, received=len(args))
@@ -182,13 +182,13 @@ class LclCore:
182
182
  return self._payload.get(args[0], args[1]) # type: ignore
183
183
  return self._payload.get(args[0], None) # type: ignore
184
184
 
185
- def GET_DISTANCE_TRAVELED(self, *args: List[Any]) -> str | float:
185
+ def GET_DISTANCE_TRAVELED(self, *args: list[Any]) -> str | float:
186
186
  """GET_DISTANCE_TRAVELED Function"""
187
187
  if len(args) > 0:
188
188
  return INVALID_NUMBER_OF_PARAMS.format(expected=0, received=len(args))
189
189
  return self._asset_constants.get('distanceTraveled', 0) # type: ignore
190
190
 
191
- def GET_PREVIOUS_SENSOR(self, *args: List[Any]) -> Any:
191
+ def GET_PREVIOUS_SENSOR(self, *args: list[Any]) -> Any:
192
192
  """GET_PREVIOUS_SENSOR Function"""
193
193
  if len(args) < 1:
194
194
  return INVALID_NUMBER_OF_PARAMS.format(expected=1, received=len(args))
@@ -203,7 +203,7 @@ class LclCore:
203
203
  return self._previous_sensors.get(args[0], args[1]) # type: ignore
204
204
  return self._previous_sensors.get(args[0], None) # type: ignore
205
205
 
206
- def GET_SENSOR(self, *args: List[Any]) -> Any:
206
+ def GET_SENSOR(self, *args: list[Any]) -> Any:
207
207
  """GET_SENSOR Function"""
208
208
  if len(args) < 1:
209
209
  return INVALID_NUMBER_OF_PARAMS.format(expected=1, received=len(args))
@@ -218,13 +218,13 @@ class LclCore:
218
218
  return self._sensors.get(args[0], args[1]) # type: ignore
219
219
  return self._sensors.get(args[0], None) # type: ignore
220
220
 
221
- def CONSTANT(self, *args: List[Any]) -> Any:
221
+ def CONSTANT(self, *args: list[Any]) -> Any:
222
222
  """CONSTANT Function"""
223
223
  if len(args) > 1:
224
224
  return INVALID_NUMBER_OF_PARAMS.format(expected=1, received=len(args))
225
225
  return args[0]
226
226
 
227
- def GET_CUSTOM_FIELD(self, *args: List[Any]) -> str:
227
+ def GET_CUSTOM_FIELD(self, *args: list[Any]) -> str:
228
228
  """GET_CUSTOM_FIELD Function"""
229
229
  if len(args) > 2:
230
230
  return INVALID_NUMBER_OF_PARAMS.format(expected=2, received=len(args))
@@ -237,7 +237,7 @@ class LclCore:
237
237
 
238
238
  return self._custom_fields.get(args[0], '') # type: ignore
239
239
 
240
- def COMPARE(self, *args: List[Any]) -> str | None | bool:
240
+ def COMPARE(self, *args: list[Any]) -> str | None | bool:
241
241
  """COMPARE Function"""
242
242
  if len(args) != 2:
243
243
  return INVALID_NUMBER_OF_PARAMS.format(expected=2, received=len(args))
@@ -251,7 +251,7 @@ class LclCore:
251
251
  return DIFFERENT_TYPES.format(arg1=type(args[0]).__name__, arg2=type(args[1]).__name__)
252
252
  return args[0] == args[1]
253
253
 
254
- def OR_OPERATOR(self, *args: List[Any]) -> bool:
254
+ def OR_OPERATOR(self, *args: list[Any]) -> bool:
255
255
  """OR_OPERATOR Function"""
256
256
  result = False
257
257
 
@@ -263,7 +263,7 @@ class LclCore:
263
263
 
264
264
  return result
265
265
 
266
- def AND_OPERATOR(self, *args: List[Any]) -> bool:
266
+ def AND_OPERATOR(self, *args: list[Any]) -> bool:
267
267
  """AND_OPERATOR Function"""
268
268
  result = False
269
269
  is_first = True
@@ -280,7 +280,7 @@ class LclCore:
280
280
 
281
281
  return result
282
282
 
283
- def SUM(self, *args: List[Any]) -> float:
283
+ def SUM(self, *args: list[Any]) -> float:
284
284
  """SUM Function"""
285
285
  result = 0
286
286
 
@@ -295,7 +295,7 @@ class LclCore:
295
295
 
296
296
  return result
297
297
 
298
- def SUBSTRACT(self, *args: List[Any]) -> float:
298
+ def SUBSTRACT(self, *args: list[Any]) -> float:
299
299
  """SUBSTRACT Function"""
300
300
  result = 0
301
301
  is_first = True
@@ -315,7 +315,7 @@ class LclCore:
315
315
 
316
316
  return result
317
317
 
318
- def MULTIPLY(self, *args: List[Any]) -> float:
318
+ def MULTIPLY(self, *args: list[Any]) -> float:
319
319
  """MULTIPLY Function"""
320
320
  result = 0
321
321
  is_first = True
@@ -335,7 +335,7 @@ class LclCore:
335
335
 
336
336
  return result
337
337
 
338
- def DIVIDE(self, *args: List[Any]) -> float:
338
+ def DIVIDE(self, *args: list[Any]) -> float:
339
339
  """DIVIDE Function"""
340
340
  result = 0
341
341
  is_first = True
@@ -355,7 +355,7 @@ class LclCore:
355
355
 
356
356
  return result
357
357
 
358
- def TO_BOOL(self, *args: List[Any]) -> str | None | bool:
358
+ def TO_BOOL(self, *args: list[Any]) -> str | None | bool:
359
359
  """TO_BOOL Function"""
360
360
  if len(args) > 1:
361
361
  return INVALID_NUMBER_OF_PARAMS.format(expected=1, received=len(args))
@@ -365,7 +365,7 @@ class LclCore:
365
365
 
366
366
  return bool(args[0])
367
367
 
368
- def TO_STR(self, *args: List[Any]) -> str | None:
368
+ def TO_STR(self, *args: list[Any]) -> str | None:
369
369
  """TO_STR Function"""
370
370
  if len(args) > 1:
371
371
  return INVALID_NUMBER_OF_PARAMS.format(expected=1, received=len(args))
@@ -375,7 +375,7 @@ class LclCore:
375
375
 
376
376
  return str(args[0])
377
377
 
378
- def TO_INT(self, *args: List[Any]) -> str | None | int:
378
+ def TO_INT(self, *args: list[Any]) -> str | None | int:
379
379
  """TO_INT Function"""
380
380
  if len(args) > 1:
381
381
  return INVALID_NUMBER_OF_PARAMS.format(expected=1, received=len(args))
@@ -385,7 +385,7 @@ class LclCore:
385
385
 
386
386
  return int(args[0]) # type: ignore
387
387
 
388
- def CEIL(self, *args: List[Any]) -> str | None | int:
388
+ def CEIL(self, *args: list[Any]) -> str | None | int:
389
389
  """CEIL Function"""
390
390
  if len(args) > 1:
391
391
  return INVALID_NUMBER_OF_PARAMS.format(expected=1, received=len(args))
@@ -400,7 +400,7 @@ class LclCore:
400
400
 
401
401
  return math.ceil(args[0])
402
402
 
403
- def FLOOR(self, *args: List[Any]) -> str | None | int:
403
+ def FLOOR(self, *args: list[Any]) -> str | None | int:
404
404
  """FLOOR Function"""
405
405
  if len(args) > 1:
406
406
  return INVALID_NUMBER_OF_PARAMS.format(expected=1, received=len(args))
@@ -415,7 +415,7 @@ class LclCore:
415
415
 
416
416
  return math.floor(args[0])
417
417
 
418
- def ROUND(self, *args: List[Any]) -> str | None | int:
418
+ def ROUND(self, *args: list[Any]) -> str | None | int:
419
419
  """ROUND Function"""
420
420
  if len(args) > 1:
421
421
  return INVALID_NUMBER_OF_PARAMS.format(expected=1, received=len(args))
@@ -428,7 +428,7 @@ class LclCore:
428
428
 
429
429
  return round(args[0])
430
430
 
431
- def SQRT(self, *args: List[Any]) -> str | None | float:
431
+ def SQRT(self, *args: list[Any]) -> str | None | float:
432
432
  """SQRT Function"""
433
433
  if len(args) > 1:
434
434
  return INVALID_NUMBER_OF_PARAMS.format(expected=1, received=len(args))
@@ -440,7 +440,7 @@ class LclCore:
440
440
 
441
441
  return math.sqrt(args[0]) # type: ignore
442
442
 
443
- def CONCAT(self, *args: List[Any]) -> str | None:
443
+ def CONCAT(self, *args: list[Any]) -> str | None:
444
444
  """CONCAT Function"""
445
445
  for val in args:
446
446
  if val is None:
@@ -448,7 +448,7 @@ class LclCore:
448
448
 
449
449
  return ''.join([str(val) for val in args])
450
450
 
451
- def RANDOM(self, *args: List[Any]) -> float | str:
451
+ def RANDOM(self, *args: list[Any]) -> float | str:
452
452
  """RANDOM Function"""
453
453
  if len(args) > 2:
454
454
  return INVALID_NUMBER_OF_PARAMS.format(expected=2, received=len(args))
@@ -462,7 +462,7 @@ class LclCore:
462
462
 
463
463
  return random.random() * (float(args[1]) - float(args[0])) + float(args[0]) # type: ignore
464
464
 
465
- def RANDOM_INT(self, *args: List[Any]) -> int | str:
465
+ def RANDOM_INT(self, *args: list[Any]) -> int | str:
466
466
  """RANDOM_INT Function"""
467
467
  if len(args) != 2:
468
468
  return INVALID_NUMBER_OF_PARAMS.format(expected=2, received=len(args))
@@ -474,7 +474,7 @@ class LclCore:
474
474
 
475
475
  return random.randint(int(args[0]), int(args[1])) # type: ignore
476
476
 
477
- def GREATER_THAN_OR_EQUALS_TO(self, *args: List[Any]) -> str | None | bool:
477
+ def GREATER_THAN_OR_EQUALS_TO(self, *args: list[Any]) -> str | None | bool:
478
478
  """GREATER_THAN_OR_EQUALS_TO Function"""
479
479
  if len(args) > 2:
480
480
  return INVALID_NUMBER_OF_PARAMS.format(expected=1, received=len(args))
@@ -490,7 +490,7 @@ class LclCore:
490
490
  return DIFFERENT_TYPES.format(arg1=type(args[0]).__name__, arg2=type(args[1]).__name__)
491
491
  return args[0] >= args[1]
492
492
 
493
- def GREATER_THAN(self, *args: List[Any]) -> str | None | bool:
493
+ def GREATER_THAN(self, *args: list[Any]) -> str | None | bool:
494
494
  """GREATER_THAN Function"""
495
495
  if len(args) > 2:
496
496
  return INVALID_NUMBER_OF_PARAMS.format(expected=1, received=len(args))
@@ -506,7 +506,7 @@ class LclCore:
506
506
  return DIFFERENT_TYPES.format(arg1=type(args[0]).__name__, arg2=type(args[1]).__name__)
507
507
  return args[0] > args[1]
508
508
 
509
- def LESS_THAN_OR_EQUALS_TO(self, *args: List[Any]) -> str | None | bool:
509
+ def LESS_THAN_OR_EQUALS_TO(self, *args: list[Any]) -> str | None | bool:
510
510
  """LESS_THAN_OR_EQUALS_TO Function"""
511
511
  if len(args) > 2:
512
512
  return INVALID_NUMBER_OF_PARAMS.format(expected=1, received=len(args))
@@ -522,7 +522,7 @@ class LclCore:
522
522
  return DIFFERENT_TYPES.format(arg1=type(args[0]).__name__, arg2=type(args[1]).__name__)
523
523
  return args[0] <= args[1]
524
524
 
525
- def LESS_THAN(self, *args: List[Any]) -> str | None | bool:
525
+ def LESS_THAN(self, *args: list[Any]) -> str | None | bool:
526
526
  """LESS_THAN Function"""
527
527
  if len(args) > 2:
528
528
  return INVALID_NUMBER_OF_PARAMS.format(expected=1, received=len(args))
@@ -538,7 +538,7 @@ class LclCore:
538
538
  return DIFFERENT_TYPES.format(arg1=type(args[0]).__name__, arg2=type(args[1]).__name__)
539
539
  return args[0] < args[1]
540
540
 
541
- def DIFFERENT(self, *args: List[Any]) -> str | None | bool:
541
+ def DIFFERENT(self, *args: list[Any]) -> str | None | bool:
542
542
  """DIFFERENT Function"""
543
543
  if len(args) > 2:
544
544
  return INVALID_NUMBER_OF_PARAMS.format(expected=1, received=len(args))
@@ -554,7 +554,7 @@ class LclCore:
554
554
  return DIFFERENT_TYPES.format(arg1=type(args[0]).__name__, arg2=type(args[1]).__name__)
555
555
  return args[0] != args[1]
556
556
 
557
- def HEX_TO_STR(self, *args: List[Any]) -> str | None:
557
+ def HEX_TO_STR(self, *args: list[Any]) -> str | None:
558
558
  """HEX_TO_STR Function"""
559
559
  if len(args) > 1:
560
560
  return INVALID_NUMBER_OF_PARAMS.format(expected=1, received=len(args))
@@ -572,7 +572,7 @@ class LclCore:
572
572
  except Exception:
573
573
  return 'Invalid hex string'
574
574
 
575
- def STR_TO_HEX(self, *args: List[Any]) -> str | None:
575
+ def STR_TO_HEX(self, *args: list[Any]) -> str | None:
576
576
  """STR_TO_HEX Function"""
577
577
  if len(args) > 1:
578
578
  return INVALID_NUMBER_OF_PARAMS.format(expected=1, received=len(args))
@@ -582,7 +582,7 @@ class LclCore:
582
582
 
583
583
  return str(args[0]).encode('ASCII').hex()
584
584
 
585
- def HEX_TO_INT(self, *args: List[Any]) -> str | None | int:
585
+ def HEX_TO_INT(self, *args: list[Any]) -> str | None | int:
586
586
  """HEX_TO_INT Function"""
587
587
  if len(args) > 1:
588
588
  return INVALID_NUMBER_OF_PARAMS.format(expected=1, received=len(args))
@@ -595,7 +595,7 @@ class LclCore:
595
595
  except Exception:
596
596
  return 'Invalid hex string'
597
597
 
598
- def INT_TO_HEX(self, *args: List[Any]) -> str | None:
598
+ def INT_TO_HEX(self, *args: list[Any]) -> str | None:
599
599
  """INT_TO_HEX Function"""
600
600
  if len(args) > 1:
601
601
  return INVALID_NUMBER_OF_PARAMS.format(expected=1, received=len(args))
@@ -608,7 +608,7 @@ class LclCore:
608
608
  except Exception:
609
609
  return 'Invalid int value'
610
610
 
611
- def TO_FLOAT(self, *args: List[Any]) -> str | None | float:
611
+ def TO_FLOAT(self, *args: list[Any]) -> str | None | float:
612
612
  """TO_FLOAT Function"""
613
613
  if len(args) > 1:
614
614
  return INVALID_NUMBER_OF_PARAMS.format(expected=1, received=len(args))
@@ -621,7 +621,7 @@ class LclCore:
621
621
  except Exception:
622
622
  return f'Invalid arguments - must be real number, not {type(args[0]).__name__}'
623
623
 
624
- def IS_PARAMETER_PRESENT(self, *args: List[Any]) -> str | bool:
624
+ def IS_PARAMETER_PRESENT(self, *args: list[Any]) -> str | bool:
625
625
  """IS_PARAMETER_PRESENT Function"""
626
626
  if len(args) > 1:
627
627
  return INVALID_NUMBER_OF_PARAMS.format(expected=1, received=len(args))
@@ -631,7 +631,7 @@ class LclCore:
631
631
 
632
632
  return args[0] in self._payload # type: ignore
633
633
 
634
- def IS_SENSOR_PRESENT(self, *args: List[Any]) -> str | bool:
634
+ def IS_SENSOR_PRESENT(self, *args: list[Any]) -> str | bool:
635
635
  """IS_SENSOR_PRESENT Function"""
636
636
  if len(args) > 1:
637
637
  return INVALID_NUMBER_OF_PARAMS.format(expected=1, received=len(args))
@@ -641,7 +641,7 @@ class LclCore:
641
641
 
642
642
  return args[0] in self._sensors # type: ignore
643
643
 
644
- def INSIDE_RANGE(self, *args: List[Any]) -> str | None | bool:
644
+ def INSIDE_RANGE(self, *args: list[Any]) -> str | None | bool:
645
645
  """INSIDE_RANGE Function"""
646
646
  if len(args) != 3:
647
647
  return INVALID_NUMBER_OF_PARAMS.format(expected=3, received=len(args))
@@ -660,7 +660,7 @@ class LclCore:
660
660
 
661
661
  return args[1] <= args[0] <= args[2]
662
662
 
663
- def OUTSIDE_RANGE(self, *args: List[Any]) -> str | None | bool:
663
+ def OUTSIDE_RANGE(self, *args: list[Any]) -> str | None | bool:
664
664
  """OUTSIDE_RANGE Function"""
665
665
  if len(args) != 3:
666
666
  return INVALID_NUMBER_OF_PARAMS.format(expected=3, received=len(args))
@@ -679,7 +679,7 @@ class LclCore:
679
679
 
680
680
  return not args[1] <= args[0] <= args[2]
681
681
 
682
- def GET_TIME_DIFFERENCE(self, *args: List[Any]) -> str | float:
682
+ def GET_TIME_DIFFERENCE(self, *args: list[Any]) -> str | float:
683
683
  """GET_TIME_DIFFERENCE Function"""
684
684
  if len(args) > 0:
685
685
  return INVALID_NUMBER_OF_PARAMS.format(expected=0, received=len(args))
@@ -696,14 +696,14 @@ class LclCore:
696
696
 
697
697
  return args[1] if args[0] else args[2]
698
698
 
699
- def NOW(self, *args: List[Any]) -> float:
699
+ def NOW(self, *args: list[Any]) -> float:
700
700
  """NOW Function"""
701
701
  import zoneinfo
702
702
  from datetime import datetime
703
703
 
704
704
  return datetime.now(tz=zoneinfo.ZoneInfo('UTC')).timestamp()
705
705
 
706
- def REGEX(self, *args: List[Any]) -> str | None | bool:
706
+ def REGEX(self, *args: list[Any]) -> str | None | bool:
707
707
  """REGEX Function"""
708
708
  if len(args) != 2:
709
709
  return INVALID_NUMBER_OF_PARAMS.format(expected=2, received=len(args))
@@ -719,14 +719,14 @@ class LclCore:
719
719
  pattern = re.compile(args[1])
720
720
  return bool(pattern.match(args[0]))
721
721
 
722
- def IS_NONE(self, *args: List[Any]) -> str | bool:
722
+ def IS_NONE(self, *args: list[Any]) -> str | bool:
723
723
  """IS_NONE Function"""
724
724
  if len(args) != 1:
725
725
  return INVALID_NUMBER_OF_PARAMS.format(expected=1, received=len(args))
726
726
 
727
727
  return args[0] is None
728
728
 
729
- def NOT(self, *args: List[Any]) -> str | bool:
729
+ def NOT(self, *args: list[Any]) -> str | bool:
730
730
  """NOT Function"""
731
731
  if len(args) != 1:
732
732
  return INVALID_NUMBER_OF_PARAMS.format(expected=1, received=len(args))
@@ -736,7 +736,7 @@ class LclCore:
736
736
 
737
737
  return not args[0]
738
738
 
739
- def CONTAINS(self, *args: List[Any]) -> str | bool:
739
+ def CONTAINS(self, *args: list[Any]) -> str | bool:
740
740
  """CONTAINS function"""
741
741
  if len(args) != 2:
742
742
  return INVALID_NUMBER_OF_PARAMS.format(expected=2, received=len(args))
@@ -746,7 +746,7 @@ class LclCore:
746
746
 
747
747
  return str(args[0]) in str(args[1])
748
748
 
749
- def STARTS_WITH(self, *args: List[Any]) -> str | bool:
749
+ def STARTS_WITH(self, *args: list[Any]) -> str | bool:
750
750
  """STARTS_WITH function"""
751
751
  if len(args) != 2:
752
752
  return INVALID_NUMBER_OF_PARAMS.format(expected=2, received=len(args))
@@ -756,7 +756,7 @@ class LclCore:
756
756
 
757
757
  return str(args[1]).startswith(str(args[0]))
758
758
 
759
- def ENDS_WITH(self, *args: List[Any]) -> str | bool:
759
+ def ENDS_WITH(self, *args: list[Any]) -> str | bool:
760
760
  """ENDS_WITH function"""
761
761
  if len(args) != 2:
762
762
  return INVALID_NUMBER_OF_PARAMS.format(expected=2, received=len(args))
@@ -766,14 +766,14 @@ class LclCore:
766
766
 
767
767
  return str(args[1]).endswith(str(args[0]))
768
768
 
769
- def PRIMARY_DEVICE(self, *args: List[Any]) -> str:
769
+ def PRIMARY_DEVICE(self, *args: list[Any]) -> str:
770
770
  """PRIMARY_DEVICE function"""
771
771
  if len(args) > 0:
772
772
  return INVALID_NUMBER_OF_PARAMS.format(expected=0, received=len(args))
773
773
 
774
774
  return self._asset_constants.get('primaryDevice', None) # type: ignore
775
775
 
776
- def SUBSTRING(self, *args: List[Any]) -> str:
776
+ def SUBSTRING(self, *args: list[Any]) -> str:
777
777
  """Get a substring from string (args[0])"""
778
778
  if len(args) < 2:
779
779
  return INVALID_NUMBER_OF_PARAMS.format(
@@ -809,7 +809,7 @@ class LclCore:
809
809
  return args[0][args[1] : args[2]]
810
810
  return args[0][args[1] :]
811
811
 
812
- def UNIX_TO_STR(self, *args: List[Any]) -> str:
812
+ def UNIX_TO_STR(self, *args: list[Any]) -> str:
813
813
  """Convert UNIX timestamp date (args[0]) to format (args[1]) string"""
814
814
  if len(args) < 2:
815
815
  return INVALID_NUMBER_OF_PARAMS.format(expected=2, received=len(args))
@@ -836,7 +836,7 @@ class LclCore:
836
836
 
837
837
  return datetime.fromtimestamp(int(args[0]), tz=zoneinfo.ZoneInfo('UTC')).astimezone(tz).strftime(args[1]) # type: ignore
838
838
 
839
- def VERSION(self, *args: List[Any]) -> str:
839
+ def VERSION(self, *args: list[Any]) -> str:
840
840
  """VERSION function"""
841
841
  if len(args) > 0:
842
842
  return INVALID_NUMBER_OF_PARAMS.format(expected=0, received=len(args))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: layrz-sdk
3
- Version: 3.1.10
3
+ Version: 3.1.12
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>
@@ -2,74 +2,74 @@ layrz_sdk/__init__.py,sha256=ZB_ul85oms9MDwqHyl0X7QP3ry4tA9RdIe_o-aA3KB4,29
2
2
  layrz_sdk/constants.py,sha256=mtwaA1oOBo8KZ8F4QVQoSN4_vjjWz1qE_y7HfPQeDBA,75
3
3
  layrz_sdk/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  layrz_sdk/entities/__init__.py,sha256=Z_FnKRGVYH9pnrUcCJJBaYmoVOA67hQ-5iyDf7Ryva4,3823
5
- layrz_sdk/entities/asset.py,sha256=PsuGFSnpTf10vwk6cxcA1OOSstANZNKFQJeHFySPq-g,2209
5
+ layrz_sdk/entities/asset.py,sha256=wkTHxHdLHaMwd5DFREYXfsKisUCAt07erreijuY8YuQ,2197
6
6
  layrz_sdk/entities/asset_operation_mode.py,sha256=FANfXq5k_4Nk3dvDZwlMrgl3XozmQyOttXRiQvoaFps,665
7
7
  layrz_sdk/entities/broadcast_request.py,sha256=65j4X1rhWEikftX3fiNl8YWRHu7nNs5bdRRzXhq3kSo,272
8
8
  layrz_sdk/entities/broadcast_response.py,sha256=iV2R2JGIGHxJRSAiEwnw4SGOMPXby8P5Yp2eQF6ia6s,275
9
9
  layrz_sdk/entities/broadcast_result.py,sha256=KlUjb5beH9-SDw6KygWE6TGYS5QQGaLUH25BaCWcowY,706
10
10
  layrz_sdk/entities/broadcast_status.py,sha256=N_sszSFPIG3PKER9QYYI66E15xpnOm1QRMlqfrF7r08,620
11
- layrz_sdk/entities/case.py,sha256=Q65BsH4NKBAzsnnriXXhl79ErHUr06OhejtJkxt54WA,1793
11
+ layrz_sdk/entities/case.py,sha256=qAQCmSifxjJX4niaDMuZG2VQgeOJboRUVXBKCcJGnCI,1783
12
12
  layrz_sdk/entities/case_ignored_status.py,sha256=n2_bPXd2Jfo9UHald0JoBj4AqfKX0ZWM-ZxlXbfiiG0,538
13
13
  layrz_sdk/entities/case_status.py,sha256=RjACxI9agdcowiywcTLweA6yAgP0y4HvvY5PFKW79yk,461
14
- layrz_sdk/entities/checkpoint.py,sha256=9LZILh0xzVdF3Ot1CUg4Gcu812hs7EW8ZKpzd3VGYwo,555
14
+ layrz_sdk/entities/checkpoint.py,sha256=zwhEI2XpZPZ1mETZfTc2jBfbrB0L-Z5Ze8nmy2WerqM,530
15
15
  layrz_sdk/entities/comment.py,sha256=DAh6mlchqOMBeV1OhOEausEuyms4epv0ukODxFo7rPA,430
16
16
  layrz_sdk/entities/custom_field.py,sha256=HETHOohTx1Cp98dF11Huox6L_UVuBzz2F5nZhwuUCsk,287
17
- layrz_sdk/entities/custom_report_page.py,sha256=TjKwnvVMJz0qXDFBAUnF2lbQZZzanzKyspXAnMt_C80,531
17
+ layrz_sdk/entities/custom_report_page.py,sha256=hkBOu2NhsZKGOS5zuIWbxko87zOMmuJKZn9mL7uXr8I,540
18
18
  layrz_sdk/entities/device.py,sha256=mdrRFVZpr1HnGIJSLn-S0I_bwxbEnqPRJXivupqMG44,508
19
19
  layrz_sdk/entities/event.py,sha256=KWTLStPO2q8TyHa_HUIzWYeFPBYZgT0SNpuru1fh14k,777
20
20
  layrz_sdk/entities/geofence.py,sha256=g87P_HtVVACdwsE-o8potFo9snIRjc_3r6ePvsRw_ac,337
21
21
  layrz_sdk/entities/last_message.py,sha256=IixZmWGVtzJxBDc4U06OoSzmky4ZDeiSKn_X8delgN0,280
22
- layrz_sdk/entities/message.py,sha256=WS36Zm0FwvbzCZ7Tywtqvgb_hPy_Rtg4WZ1sskeQEx4,592
22
+ layrz_sdk/entities/message.py,sha256=9jl4ytijrrU5g8O03Eum1rzUpjPLOtLcwgucBPZ1aWU,586
23
23
  layrz_sdk/entities/outbound_service.py,sha256=h1B23WFfBAiUZxf-SdlgJn2yib_qxCRc8a1KlGq7d1I,235
24
- layrz_sdk/entities/position.py,sha256=j2WLAUcYVIVSGv_u8_dyLNFL4XXKQ96pXwzpvWjDaIo,2825
24
+ layrz_sdk/entities/position.py,sha256=pINPKYfnrDUzzkmZBGotYyFPhPn6jgh5qje-QDNTC0A,3156
25
25
  layrz_sdk/entities/presence_type.py,sha256=aR14DlVNxtm9ZC4DjCD2QBELY3Zu1JdWHrDLW3dYEiI,309
26
- layrz_sdk/entities/report.py,sha256=eFex5W9kq4FaCxz975hZgyEvJ1K_mprC6yIO12QvEK4,9176
26
+ layrz_sdk/entities/report.py,sha256=FhYx3yaxi7Qw6mFWvrHW2HIH9-W7Njrd6VHIft8YKXU,9164
27
27
  layrz_sdk/entities/report_col.py,sha256=iyRG81UDw-xXqGUN-nFaA1CPz4bUllAzxDki92cwN1s,1401
28
28
  layrz_sdk/entities/report_configuration.py,sha256=pG_P-_LG78MJ0FxINwWze2Oo4YVylKSSshZcLyF4xDI,244
29
29
  layrz_sdk/entities/report_data_type.py,sha256=-ck2hBmDcgWJpT9z_cUxbEOy-Yq0OaYfzjSSz5uj2w0,525
30
30
  layrz_sdk/entities/report_format.py,sha256=HCpHKtXteDJSH4uP-BsHevaG2Z3AT9k-hFrseUU3HUI,509
31
31
  layrz_sdk/entities/report_header.py,sha256=aodysmohkeySirPzkXk486srZhW1R7X8Gx1GbpOZ8b8,1386
32
- layrz_sdk/entities/report_page.py,sha256=793_wQ9bHaWZOYmRUU6nCFb7cLmPu5X7Y9mAk205b5Y,592
33
- layrz_sdk/entities/report_row.py,sha256=VLIT8GPJMpSw7VQE0J8GGvL1kAkMJZTOXFN6JopCtXU,822
32
+ layrz_sdk/entities/report_page.py,sha256=EtLEyBewYU2RoHx6HBvphaUc_ecgPXy0u_WLvczLbbQ,565
33
+ layrz_sdk/entities/report_row.py,sha256=KtwjolTKEVO1YvVJQm32j8dq_Hrkhfut-QbfOz7JCLw,816
34
34
  layrz_sdk/entities/sensor.py,sha256=FbuccK2-zMzb3nHqP5KCBQkGt8Fcgs8K7GAzCOonBMc,323
35
35
  layrz_sdk/entities/text_alignment.py,sha256=Yng48SpVmTjZ6bs00A-WXpsfisUiz_ri16dj2BFghjo,517
36
36
  layrz_sdk/entities/trigger.py,sha256=xi8vVbd-1-g0_cKucglT1Kn7Rt3evRCv8Wt07RmQ0u8,329
37
37
  layrz_sdk/entities/user.py,sha256=Y8lEfokACJ529m7Otaylszr62Vwl6_ncZxdmxb3jB5Y,246
38
38
  layrz_sdk/entities/waypoint.py,sha256=ijfAfRMIQdGtEk5QwjoWtUgW2mHOTm4pyaKxJupQJ_U,568
39
39
  layrz_sdk/entities/charts/axis_config.py,sha256=gCzPWaLIdfbRuaD6T_N4gWGM_cOgBbYqOHi_f1mMdus,619
40
- layrz_sdk/entities/charts/bar_chart.py,sha256=aboNZqM10hplyTAaki5HiOdknPKlZxY5GXo0Cw8xYiw,5204
40
+ layrz_sdk/entities/charts/bar_chart.py,sha256=l0Mkz0Rl1MjnHrYzvWS4TdPB0mD-gRoAAS0RAdncX28,5192
41
41
  layrz_sdk/entities/charts/chart_alignment.py,sha256=Q9IMQvKfI-5RPcW1JQktRJPjc2fIi7Fb66VODFeCHWU,489
42
- layrz_sdk/entities/charts/chart_color.py,sha256=cTN2_7WtF259N9nihLFHFAOLRKIr0Bi6wd_VhavwzPk,949
42
+ layrz_sdk/entities/charts/chart_color.py,sha256=12O-GB3wTBp-tZJinPfqDBZi7-ss-3fKVCQPRaExEkQ,949
43
43
  layrz_sdk/entities/charts/chart_configuration.py,sha256=ke3jbEQ4sUXbTGgz_0u2vfndSUipH1_or5iIRA2Zhxw,259
44
44
  layrz_sdk/entities/charts/chart_data_serie.py,sha256=WyDMQjMdNQbk6qa43hi3X8rWPnWCuL3qCTKIZgHJVpo,740
45
45
  layrz_sdk/entities/charts/chart_data_serie_type.py,sha256=wL49Pam9T52rCBexXjq9gw5zeXjcKTGr5L8YGkTTy68,507
46
46
  layrz_sdk/entities/charts/chart_data_type.py,sha256=bSrC0DU6G8cPMF8A-8LzMkqRDutLILEscRJE0YJzPu8,497
47
47
  layrz_sdk/entities/charts/chart_render_technology.py,sha256=LwxDGU36BGTGQlo-XSK8t2zMiJdERrZl52bfacl7EWQ,662
48
- layrz_sdk/entities/charts/column_chart.py,sha256=qVn-F4cf4zVcUp1_TzfOeU-OPdTu1J_9F0ZXfx9_H7Q,6241
49
- layrz_sdk/entities/charts/html_chart.py,sha256=h5DCfcYdHgGZdndfqEOKTF6KrznDDUYJz-inSAZule0,1025
50
- layrz_sdk/entities/charts/line_chart.py,sha256=H294hJkbWXGbjnwrwopmHrTXyho_qSN6oqeba7Q6JSQ,7510
48
+ layrz_sdk/entities/charts/column_chart.py,sha256=5Yj6jbTqgiu__svhXRmjEJrUYyRSZKjDOeFOZOw2QDo,6229
49
+ layrz_sdk/entities/charts/html_chart.py,sha256=VCzXJv8zMeQ8ElhgBIma2lkOpeFO9qXtFsVC77OmW1A,1025
50
+ layrz_sdk/entities/charts/line_chart.py,sha256=N8vGyoNlGs_BaaHfefAK1awsxSmH5GBr4f4MMzwRBRs,7498
51
51
  layrz_sdk/entities/charts/map_center_type.py,sha256=SdyBEV9ITx5Ss8ZDatK3TbMHp8YyNQYnVLcV3qhZYn8,445
52
- layrz_sdk/entities/charts/map_chart.py,sha256=tf0Tok5cYpXV5aLfUZGY-ZucEjG24-CDkgZinmbmmo0,3011
52
+ layrz_sdk/entities/charts/map_chart.py,sha256=8y7HkGVf7c1fMSYd2g949_QHrSW9WIJAzyNzSjP75Ss,2999
53
53
  layrz_sdk/entities/charts/map_point.py,sha256=cftGig-i3t5tITA94Ute7VPVcGAAeHHCMV6KWlABtgc,828
54
- layrz_sdk/entities/charts/number_chart.py,sha256=dASFRCCGmZHlzzWUwjn49FIgt0fNN1UgfPYpJ_FDlN4,1456
55
- layrz_sdk/entities/charts/pie_chart.py,sha256=TyUrjtEReFPdEYHaUrzSAZxVGM38g7Jzue_iz1MmRJM,3532
56
- layrz_sdk/entities/charts/radar_chart.py,sha256=NNt7asrs8GtQlCOZ6J7mj5O80AZaTgxYY_oi57JrjNo,2497
57
- layrz_sdk/entities/charts/radial_bar_chart.py,sha256=VIkYvx01xoTeJMw6KTfijBudw3GPycmUBG3sdkGR4Y8,3519
58
- layrz_sdk/entities/charts/scatter_chart.py,sha256=X2NQUWtZaXrT-oqzQhnMlLPEM8Jdg0Nhoz6ri7eZbcg,5810
59
- layrz_sdk/entities/charts/scatter_serie.py,sha256=_4pEG82b0IGWqdxdcVOvL_0FzC2b_HAdRTJQWVAmIk4,601
54
+ layrz_sdk/entities/charts/number_chart.py,sha256=18--2xiSPr7G1HMsBGbfPdPvk4-wrX0nfb5zs8q5Tws,1456
55
+ layrz_sdk/entities/charts/pie_chart.py,sha256=zChoDdelACgeAeuN4REvFJ6VhNJuoa22kgM3hkQzryI,3520
56
+ layrz_sdk/entities/charts/radar_chart.py,sha256=Yzz2-19BvxWgwXlacezGlrAg6pXtGBovzzjs082XrNY,2485
57
+ layrz_sdk/entities/charts/radial_bar_chart.py,sha256=NnjRAgTWfi1-56Z5WSJ5Lt_DjCNSs_Yh0RjDuhR20Io,3507
58
+ layrz_sdk/entities/charts/scatter_chart.py,sha256=8b3pIE8J6MePVIa3eB4eyRF6GUP0IK0zGOLWUMV79K4,5798
59
+ layrz_sdk/entities/charts/scatter_serie.py,sha256=mjJHMxJQH1QT7myjqAPdbMGhXTwHXY-zR52Em-Y3lys,574
60
60
  layrz_sdk/entities/charts/scatter_serie_item.py,sha256=9rWg9ko-fU1CGfVAsO0nYfXMzfAVTwZ7SNY599Yqhc0,241
61
- layrz_sdk/entities/charts/table_chart.py,sha256=m-yCpHcaqPel51e_HhZOmonsOlrFYiY7KTrZkAfFbBg,1596
61
+ layrz_sdk/entities/charts/table_chart.py,sha256=PEp0EqeM0bUFDSXWgTsM-S7-r8OLq23i2pvBfbgPVKY,1584
62
62
  layrz_sdk/entities/charts/table_header.py,sha256=iZl-EE30KFcML4uWgcLNdqEWri58T-E0NEq0lwr7PMA,228
63
63
  layrz_sdk/entities/charts/table_row.py,sha256=6GvfILfBhPXNncHhZH6P6RhxxMZj7KXTql7y0c_-L8Y,190
64
- layrz_sdk/entities/charts/timeline_chart.py,sha256=LINHaiyOoj64e0R5Y-vjH5WLInEFK0GL3RnyNzEMp8E,2209
65
- layrz_sdk/entities/charts/timeline_serie.py,sha256=SK8LVY8hqmdx7VIkZCk6Mf5AC11KRh-D2Zt8BdFiZ5Q,359
64
+ layrz_sdk/entities/charts/timeline_chart.py,sha256=TUBOizehbwrcXIayA-lRIDVMfBjF8j3jJMf3rmqkoOY,2197
65
+ layrz_sdk/entities/charts/timeline_serie.py,sha256=88nlNu_l9m1UPC5EJ436vBTLLC-cqbWUgzB6IN1NmhE,332
66
66
  layrz_sdk/entities/charts/timeline_serie_item.py,sha256=8Dj6zQyz70c6A1llEYDE0pCrg6YPIQw7qHjwFSyBAaA,406
67
- layrz_sdk/helpers/__init__.py,sha256=uWW-TbDdmAJ8w8Pjr7B3xjEJi6BzCsqzThj2974H3nM,130
68
- layrz_sdk/helpers/color.py,sha256=ilUy0_m_lLrQps7uP8WJ87hz48DeoQ0SkZH3tzN09lI,1254
69
- layrz_sdk/lcl/__init__.py,sha256=T9yk0RccanRnnITbw5tTxWld1gZFG6ySjvZ9G16mxPU,101
70
- layrz_sdk/lcl/core.py,sha256=wMO3dvm7x27dMseCAtnoQxAAQdpRLmllliQ9_YL-6ns,25646
71
- layrz_sdk-3.1.10.dist-info/licenses/LICENSE,sha256=h4aQZdgkHkEP6_m5wPfTsdDRdWOOgP7G_10OgDNmBf4,1063
72
- layrz_sdk-3.1.10.dist-info/METADATA,sha256=J0WmHINjMnx5R2G8z8Oua2IRkH9dW7CCwu3OuldJ7v0,1901
73
- layrz_sdk-3.1.10.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
74
- layrz_sdk-3.1.10.dist-info/top_level.txt,sha256=yUTMMzfdZ0HDWQH5TaSlFM4xtwmP1fSGxmlL1dmu4l4,10
75
- layrz_sdk-3.1.10.dist-info/RECORD,,
67
+ layrz_sdk/helpers/__init__.py,sha256=a5rlbJXtN46UI3w-xI1k7bziqDsF8NTVJV-HlViOP1o,120
68
+ layrz_sdk/helpers/color.py,sha256=r8HEQSE8yarB1MUdXdY3Yh91QjpxgIN0y-Lnn9wT5qg,1247
69
+ layrz_sdk/lcl/__init__.py,sha256=ZuSgEWVb-i3Ltb_M_SNfel-hqG42dGjMc0vLxFEW97I,94
70
+ layrz_sdk/lcl/core.py,sha256=_gEfJIW3qiFeq_lpF42qS6c2LH2e6Z0WE1ExmqZgtP0,25634
71
+ layrz_sdk-3.1.12.dist-info/licenses/LICENSE,sha256=h4aQZdgkHkEP6_m5wPfTsdDRdWOOgP7G_10OgDNmBf4,1063
72
+ layrz_sdk-3.1.12.dist-info/METADATA,sha256=hBvI0hS6n45bbcpZMjyvxsLmOmke1WLREsFo1tRfAYQ,1901
73
+ layrz_sdk-3.1.12.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
74
+ layrz_sdk-3.1.12.dist-info/top_level.txt,sha256=yUTMMzfdZ0HDWQH5TaSlFM4xtwmP1fSGxmlL1dmu4l4,10
75
+ layrz_sdk-3.1.12.dist-info/RECORD,,