layrz-sdk 4.0.13__tar.gz → 4.0.14__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.

Files changed (124) hide show
  1. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/PKG-INFO +1 -1
  2. layrz_sdk-4.0.14/layrz_sdk/decorators/__init__.py +5 -0
  3. layrz_sdk-4.0.14/layrz_sdk/decorators/func_timing.py +96 -0
  4. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk.egg-info/PKG-INFO +1 -1
  5. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk.egg-info/SOURCES.txt +2 -0
  6. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/pyproject.toml +1 -1
  7. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/LICENSE +0 -0
  8. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/README.md +0 -0
  9. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/__init__.py +0 -0
  10. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/constants.py +0 -0
  11. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/__init__.py +0 -0
  12. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/action.py +0 -0
  13. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/action_geofence_ownership.py +0 -0
  14. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/action_kind.py +0 -0
  15. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/action_subkind.py +0 -0
  16. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/asset.py +0 -0
  17. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/asset_constants.py +0 -0
  18. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/asset_contact.py +0 -0
  19. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/asset_operation_mode.py +0 -0
  20. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/ats_entry.py +0 -0
  21. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/ats_exit_history.py +0 -0
  22. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/ats_possible_entry.py +0 -0
  23. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/ats_possible_exit.py +0 -0
  24. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/ats_reception.py +0 -0
  25. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/broadcast/__init__.py +0 -0
  26. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/broadcast/payload.py +0 -0
  27. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/broadcast/request.py +0 -0
  28. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/broadcast/response.py +0 -0
  29. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/broadcast/result.py +0 -0
  30. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/broadcast/service.py +0 -0
  31. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/broadcast/status.py +0 -0
  32. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/case.py +0 -0
  33. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/case_ignored_status.py +0 -0
  34. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/case_status.py +0 -0
  35. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/axis_config.py +0 -0
  36. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/bar_chart.py +0 -0
  37. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/chart_alignment.py +0 -0
  38. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/chart_color.py +0 -0
  39. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/chart_configuration.py +0 -0
  40. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/chart_data_serie.py +0 -0
  41. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/chart_data_serie_type.py +0 -0
  42. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/chart_data_type.py +0 -0
  43. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/chart_render_technology.py +0 -0
  44. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/column_chart.py +0 -0
  45. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/html_chart.py +0 -0
  46. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/line_chart.py +0 -0
  47. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/map_center_type.py +0 -0
  48. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/map_chart.py +0 -0
  49. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/map_point.py +0 -0
  50. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/number_chart.py +0 -0
  51. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/pie_chart.py +0 -0
  52. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/radar_chart.py +0 -0
  53. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/radial_bar_chart.py +0 -0
  54. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/scatter_chart.py +0 -0
  55. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/scatter_serie.py +0 -0
  56. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/scatter_serie_item.py +0 -0
  57. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/table_chart.py +0 -0
  58. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/table_header.py +0 -0
  59. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/table_row.py +0 -0
  60. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/timeline_chart.py +0 -0
  61. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/timeline_serie.py +0 -0
  62. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/charts/timeline_serie_item.py +0 -0
  63. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/checkpoint.py +0 -0
  64. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/command_series_ticket.py +0 -0
  65. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/comment.py +0 -0
  66. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/custom_field.py +0 -0
  67. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/custom_report_page.py +0 -0
  68. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/destination_phone.py +0 -0
  69. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/device.py +0 -0
  70. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/event.py +0 -0
  71. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/exchange_service.py +0 -0
  72. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/function.py +0 -0
  73. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/geofence.py +0 -0
  74. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/geofence_category.py +0 -0
  75. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/last_message.py +0 -0
  76. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/message.py +0 -0
  77. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/modbus/__init__.py +0 -0
  78. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/modbus/config.py +0 -0
  79. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/modbus/parameter.py +0 -0
  80. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/modbus/schema.py +0 -0
  81. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/modbus/status.py +0 -0
  82. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/modbus/wait.py +0 -0
  83. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/notification_type.py +0 -0
  84. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/operation.py +0 -0
  85. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/operation_case_payload.py +0 -0
  86. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/operation_payload.py +0 -0
  87. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/operation_type.py +0 -0
  88. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/outbound_service.py +0 -0
  89. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/platform.py +0 -0
  90. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/position.py +0 -0
  91. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/presence_type.py +0 -0
  92. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/preset.py +0 -0
  93. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/report.py +0 -0
  94. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/report_col.py +0 -0
  95. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/report_configuration.py +0 -0
  96. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/report_data_type.py +0 -0
  97. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/report_format.py +0 -0
  98. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/report_header.py +0 -0
  99. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/report_page.py +0 -0
  100. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/report_row.py +0 -0
  101. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/request_type.py +0 -0
  102. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/sensor.py +0 -0
  103. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/sound_effect.py +0 -0
  104. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/static_position.py +0 -0
  105. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/telemetry/__init__.py +0 -0
  106. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/telemetry/assetmessage.py +0 -0
  107. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/telemetry/devicemessage.py +0 -0
  108. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/text_alignment.py +0 -0
  109. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/timezone.py +0 -0
  110. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/trigger.py +0 -0
  111. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/trigger_kind.py +0 -0
  112. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/user.py +0 -0
  113. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/waypoint.py +0 -0
  114. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/entities/weekday.py +0 -0
  115. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/helpers/__init__.py +0 -0
  116. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/helpers/color.py +0 -0
  117. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/lcl/__init__.py +0 -0
  118. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/lcl/core.py +0 -0
  119. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk/py.typed +0 -0
  120. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk.egg-info/dependency_links.txt +0 -0
  121. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk.egg-info/requires.txt +0 -0
  122. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/layrz_sdk.egg-info/top_level.txt +0 -0
  123. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/setup.cfg +0 -0
  124. {layrz_sdk-4.0.13 → layrz_sdk-4.0.14}/tests/test_lcl.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: layrz-sdk
3
- Version: 4.0.13
3
+ Version: 4.0.14
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>
@@ -0,0 +1,5 @@
1
+ """decorators"""
2
+
3
+ from .func_timing import func_timing
4
+
5
+ __all__ = ['func_timing']
@@ -0,0 +1,96 @@
1
+ """Timing decorator"""
2
+
3
+ import asyncio
4
+ import logging
5
+ import os
6
+ from collections.abc import Callable
7
+ from functools import wraps
8
+ from typing import Any, ParamSpec, TypeVar, overload
9
+
10
+ T = TypeVar('T')
11
+ P = ParamSpec('P')
12
+
13
+ log = logging.getLogger(__name__)
14
+
15
+ SHOULD_DISPLAY = os.environ.get('LAYRZ_SDK_DISPLAY_TIMING', '1') == '1'
16
+
17
+
18
+ @overload
19
+ def func_timing(func: Callable[P, T]) -> Callable[P, T]: ...
20
+
21
+
22
+ @overload
23
+ def func_timing(*, depth: int) -> Callable[[Callable[P, T]], Callable[P, T]]: ...
24
+
25
+
26
+ def func_timing(
27
+ func: Callable[P, T] | None = None,
28
+ *,
29
+ depth: int = 0,
30
+ ) -> Any:
31
+ """
32
+ Decorator to time a function execution.
33
+
34
+ :param depth: The depth of the function call for logging indentation.
35
+ :return: The wrapped function with timing functionality.
36
+ """
37
+
38
+ def decorator(func: Callable[P, T]) -> Callable[P, T]:
39
+ """Decorator to time a function"""
40
+ import time
41
+
42
+ prefix = '\t' * depth
43
+
44
+ @wraps(func)
45
+ async def async_wrapper(*args: P.args, **kwargs: P.kwargs) -> T:
46
+ start_time = time.perf_counter_ns()
47
+ result: T = await func(*args, **kwargs) # type: ignore
48
+ diff = time.perf_counter_ns() - start_time
49
+
50
+ if SHOULD_DISPLAY:
51
+ log.info(f'{prefix}{func.__name__}() took {_readable_time(diff)}')
52
+
53
+ return result
54
+
55
+ @wraps(func)
56
+ def sync_wrapper(*args: P.args, **kwargs: P.kwargs) -> T:
57
+ start_time = time.perf_counter_ns()
58
+ result = func(*args, **kwargs)
59
+ diff = time.perf_counter_ns() - start_time
60
+
61
+ if SHOULD_DISPLAY:
62
+ log.info(f'{prefix}{func.__name__}() took {_readable_time(diff)}')
63
+
64
+ return result
65
+
66
+ if asyncio.iscoroutinefunction(func):
67
+ return async_wrapper # type: ignore
68
+ return sync_wrapper
69
+
70
+ if func is None:
71
+ return decorator
72
+ return decorator(func)
73
+
74
+
75
+ def _readable_time(diff: int) -> str:
76
+ """Convert nanoseconds to a readable format"""
77
+ if diff < 1_000:
78
+ return f'{diff} ns'
79
+
80
+ diff = diff // 1_000
81
+ if diff < 1_000:
82
+ return f'{diff} μs'
83
+
84
+ diff = diff // 1_000
85
+ if diff < 1_000:
86
+ return f'{diff} ms'
87
+
88
+ diff = diff // 1_000
89
+ if diff < 60:
90
+ return f'{diff} s'
91
+
92
+ diff = diff // 60
93
+ if diff < 60:
94
+ return f'{diff} m'
95
+
96
+ return f'{diff // 60} h'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: layrz-sdk
3
- Version: 4.0.13
3
+ Version: 4.0.14
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>
@@ -9,6 +9,8 @@ layrz_sdk.egg-info/SOURCES.txt
9
9
  layrz_sdk.egg-info/dependency_links.txt
10
10
  layrz_sdk.egg-info/requires.txt
11
11
  layrz_sdk.egg-info/top_level.txt
12
+ layrz_sdk/decorators/__init__.py
13
+ layrz_sdk/decorators/func_timing.py
12
14
  layrz_sdk/entities/__init__.py
13
15
  layrz_sdk/entities/action.py
14
16
  layrz_sdk/entities/action_geofence_ownership.py
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "layrz-sdk"
3
- version = "4.0.13"
3
+ version = "4.0.14"
4
4
  description = "Layrz SDK for Python"
5
5
  authors = [{ name = "Golden M, Inc.", email = "software@goldenm.com" }]
6
6
  requires-python = ">=3.13"
File without changes
File without changes
File without changes
File without changes