layrz-sdk 3.1.31__tar.gz → 3.1.33__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 (115) hide show
  1. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/CHANGELOG.md +9 -0
  2. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/PKG-INFO +3 -4
  3. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/__init__.py +12 -0
  4. layrz_sdk-3.1.33/layrz_sdk/entities/action.py +81 -0
  5. layrz_sdk-3.1.33/layrz_sdk/entities/action_geofence_ownership.py +32 -0
  6. layrz_sdk-3.1.33/layrz_sdk/entities/action_kind.py +53 -0
  7. layrz_sdk-3.1.33/layrz_sdk/entities/action_subkind.py +35 -0
  8. layrz_sdk-3.1.33/layrz_sdk/entities/ats_reception.py +25 -0
  9. layrz_sdk-3.1.33/layrz_sdk/entities/geofence_category.py +47 -0
  10. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/trigger.py +12 -1
  11. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk.egg-info/PKG-INFO +3 -4
  12. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk.egg-info/SOURCES.txt +6 -0
  13. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/pyproject.toml +3 -3
  14. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/uv.lock +1 -1
  15. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/.github/workflows/checks.yml +0 -0
  16. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/.github/workflows/deploy.yml +0 -0
  17. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/.gitignore +0 -0
  18. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/.vscode/extensions.json +0 -0
  19. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/CODE_OF_CONDUCT.md +0 -0
  20. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/CONTRIBUTING.md +0 -0
  21. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/LICENSE +0 -0
  22. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/README.md +0 -0
  23. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/__init__.py +0 -0
  24. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/backwards.py +0 -0
  25. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/constants.py +0 -0
  26. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/asset.py +0 -0
  27. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/asset_constants.py +0 -0
  28. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/asset_operation_mode.py +0 -0
  29. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/broadcast/__init__.py +0 -0
  30. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/broadcast/payload.py +0 -0
  31. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/broadcast/request.py +0 -0
  32. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/broadcast/response.py +0 -0
  33. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/broadcast/result.py +0 -0
  34. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/broadcast/service.py +0 -0
  35. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/broadcast/status.py +0 -0
  36. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/case.py +0 -0
  37. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/case_ignored_status.py +0 -0
  38. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/case_status.py +0 -0
  39. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/axis_config.py +0 -0
  40. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/bar_chart.py +0 -0
  41. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/chart_alignment.py +0 -0
  42. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/chart_color.py +0 -0
  43. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/chart_configuration.py +0 -0
  44. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/chart_data_serie.py +0 -0
  45. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/chart_data_serie_type.py +0 -0
  46. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/chart_data_type.py +0 -0
  47. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/chart_render_technology.py +0 -0
  48. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/column_chart.py +0 -0
  49. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/html_chart.py +0 -0
  50. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/line_chart.py +0 -0
  51. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/map_center_type.py +0 -0
  52. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/map_chart.py +0 -0
  53. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/map_point.py +0 -0
  54. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/number_chart.py +0 -0
  55. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/pie_chart.py +0 -0
  56. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/radar_chart.py +0 -0
  57. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/radial_bar_chart.py +0 -0
  58. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/scatter_chart.py +0 -0
  59. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/scatter_serie.py +0 -0
  60. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/scatter_serie_item.py +0 -0
  61. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/table_chart.py +0 -0
  62. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/table_header.py +0 -0
  63. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/table_row.py +0 -0
  64. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/timeline_chart.py +0 -0
  65. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/timeline_serie.py +0 -0
  66. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/charts/timeline_serie_item.py +0 -0
  67. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/checkpoint.py +0 -0
  68. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/comment.py +0 -0
  69. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/custom_field.py +0 -0
  70. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/custom_report_page.py +0 -0
  71. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/device.py +0 -0
  72. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/event.py +0 -0
  73. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/function.py +0 -0
  74. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/geofence.py +0 -0
  75. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/last_message.py +0 -0
  76. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/message.py +0 -0
  77. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/modbus/__init__.py +0 -0
  78. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/modbus/config.py +0 -0
  79. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/modbus/parameter.py +0 -0
  80. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/modbus/schema.py +0 -0
  81. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/modbus/status.py +0 -0
  82. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/modbus/wait.py +0 -0
  83. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/outbound_service.py +0 -0
  84. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/position.py +0 -0
  85. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/presence_type.py +0 -0
  86. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/report.py +0 -0
  87. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/report_col.py +0 -0
  88. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/report_configuration.py +0 -0
  89. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/report_data_type.py +0 -0
  90. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/report_format.py +0 -0
  91. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/report_header.py +0 -0
  92. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/report_page.py +0 -0
  93. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/report_row.py +0 -0
  94. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/sensor.py +0 -0
  95. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/static_position.py +0 -0
  96. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/telemetry/__init__.py +0 -0
  97. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/telemetry/assetmessage.py +0 -0
  98. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/telemetry/devicemessage.py +0 -0
  99. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/text_alignment.py +0 -0
  100. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/trigger_kind.py +0 -0
  101. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/user.py +0 -0
  102. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/waypoint.py +0 -0
  103. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/entities/weekday.py +0 -0
  104. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/helpers/__init__.py +0 -0
  105. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/helpers/color.py +0 -0
  106. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/lcl/__init__.py +0 -0
  107. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/lcl/core.py +0 -0
  108. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk/py.typed +0 -0
  109. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk.egg-info/dependency_links.txt +0 -0
  110. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk.egg-info/requires.txt +0 -0
  111. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/layrz_sdk.egg-info/top_level.txt +0 -0
  112. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/manual_deploy.py +0 -0
  113. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/setup.cfg +0 -0
  114. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/tests/__init__.py +0 -0
  115. {layrz_sdk-3.1.31 → layrz_sdk-3.1.33}/tests/test_lcl.py +0 -0
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.1.33
4
+
5
+ - New `Action` model
6
+ - New `ActionKind`, `ActionSubKind`, `GeofenceCategory` and `ActionGeofenceOwnership` enums
7
+
8
+ ## 3.1.32
9
+
10
+ - New `AtsREception` model
11
+
3
12
  ## 3.1.31
4
13
 
5
14
  - Expanded `Trigger` model with new fields (Almost closed to the Dart equivalent on [`layrz_models`](https://pub.dev/packages/layrz_models))
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: layrz-sdk
3
- Version: 3.1.31
3
+ Version: 3.1.33
4
4
  Summary: Layrz SDK for Python
5
5
  Author-email: "Golden M, Inc." <software@goldenm.com>
6
- Maintainer-email: Kenny Mochizuki <kenny@goldenm.com>, Luis Reyes <lreyes@goldenm.com>, Kasen Li <kli@goldenm.com>, Miguel Zauzich <miguel@goldenm.com>
7
- License: MIT License
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>
7
+ License-Expression: MIT
8
8
  Project-URL: Repository, https://github.com/goldenm-software/layrz-sdk
9
9
  Project-URL: Changelog, https://github.com/goldenm-software/layrz-sdk/blob/main/CHANGELOG.md
10
10
  Keywords: sdk,goldenm,lcl,layrz compute language,layrz
@@ -14,7 +14,6 @@ Classifier: Programming Language :: Python :: 3.11
14
14
  Classifier: Programming Language :: Python :: 3.12
15
15
  Classifier: Programming Language :: Python :: 3.13
16
16
  Classifier: Programming Language :: Python :: 3.14
17
- Classifier: License :: OSI Approved :: MIT License
18
17
  Classifier: Operating System :: OS Independent
19
18
  Requires-Python: >=3.10
20
19
  Description-Content-Type: text/markdown
@@ -1,8 +1,13 @@
1
1
  """Init file"""
2
2
 
3
+ from .action import Action
4
+ from .action_geofence_ownership import ActionGeofenceOwnership
5
+ from .action_kind import ActionKind
6
+ from .action_subkind import ActionSubKind
3
7
  from .asset import Asset
4
8
  from .asset_constants import AssetConstants
5
9
  from .asset_operation_mode import AssetOperationMode
10
+ from .ats_reception import AtsReception
6
11
  from .broadcast import (
7
12
  BroadcastPayload,
8
13
  BroadcastRequest,
@@ -50,6 +55,7 @@ from .device import Device
50
55
  from .event import Event
51
56
  from .function import Function
52
57
  from .geofence import Geofence
58
+ from .geofence_category import GeofenceCategory
53
59
  from .last_message import LastMessage
54
60
  from .message import Message
55
61
  from .modbus import ModbusConfig, ModbusParameter, ModbusSchema, ModbusStatus, ModbusWait
@@ -152,4 +158,10 @@ __all__ = [
152
158
  'TriggerCaseKind',
153
159
  'TriggerCommentPattern',
154
160
  'Weekday',
161
+ 'AtsReception',
162
+ 'Action',
163
+ 'ActionKind',
164
+ 'ActionSubKind',
165
+ 'GeofenceCategory',
166
+ 'ActionGeofenceOwnership',
155
167
  ]
@@ -0,0 +1,81 @@
1
+ """Action entity"""
2
+
3
+ from datetime import timedelta
4
+
5
+ from pydantic import BaseModel, Field
6
+
7
+ from .action_geofence_ownership import ActionGeofenceOwnership
8
+ from .action_kind import ActionKind
9
+ from .action_subkind import ActionSubKind
10
+ from .geofence_category import GeofenceCategory
11
+
12
+
13
+ class Action(BaseModel):
14
+ """Action entity"""
15
+
16
+ model_config = {
17
+ 'json_encoders': {
18
+ timedelta: lambda v: v.total_seconds(),
19
+ ActionKind: lambda v: v.value,
20
+ ActionSubKind: lambda v: v.value,
21
+ GeofenceCategory: lambda v: v.value,
22
+ ActionGeofenceOwnership: lambda v: v.value,
23
+ },
24
+ }
25
+
26
+ pk: str = Field(
27
+ ...,
28
+ description='Primary key of the action entity',
29
+ alias='id',
30
+ )
31
+ name: str = Field(
32
+ ...,
33
+ description='Name of the action',
34
+ )
35
+ kind: ActionKind = Field(
36
+ ...,
37
+ description='Kind of the action',
38
+ )
39
+
40
+ command_id: str | None = Field(
41
+ default=None,
42
+ description='Tag ID associated with the action to send commands to primary devices',
43
+ )
44
+
45
+ subkind: ActionSubKind = Field(
46
+ default=ActionSubKind.UNUSED,
47
+ description='Subkind of the action',
48
+ )
49
+
50
+ wait_for_image: bool = Field(
51
+ default=False,
52
+ description='Whether to wait for an image to be taken before executing the action',
53
+ alias='watch_image',
54
+ )
55
+
56
+ geofence_cateogry: GeofenceCategory = Field(
57
+ default=GeofenceCategory.NONE,
58
+ description='Geofence category of the action',
59
+ )
60
+
61
+ geofence_name_formula: str | None = Field(
62
+ default=None,
63
+ description='Formula to generate the geofence name',
64
+ alias='geofence_name',
65
+ )
66
+
67
+ geofence_radius: float | None = Field(
68
+ default=None,
69
+ description='Radius of the geofence in meters',
70
+ alias='geofence_radius',
71
+ )
72
+
73
+ mappit_route_id: str | None = Field(
74
+ default=None,
75
+ description='Route ID for Mappit integration',
76
+ )
77
+
78
+ new_geofence_ownership: ActionGeofenceOwnership = Field(
79
+ default=ActionGeofenceOwnership.NONE,
80
+ description='Ownership of the new geofence created by the action',
81
+ )
@@ -0,0 +1,32 @@
1
+ """Action geofence ownership"""
2
+
3
+ import sys
4
+ from enum import Enum
5
+
6
+ if sys.version_info >= (3, 11):
7
+ from typing import Self
8
+ else:
9
+ from typing_extensions import Self
10
+
11
+
12
+ class ActionGeofenceOwnership(str, Enum):
13
+ """
14
+ Action geofence ownership definition
15
+ """
16
+
17
+ NONE = 'NONE'
18
+ """ Not assigned to any owner (Orphan) """
19
+
20
+ ASSET = 'ASSET'
21
+ """ Assigns the geofence to the owner of the asset """
22
+
23
+ ACTION = 'ACTION'
24
+ """ Assigns the geofence to the owner of the action """
25
+
26
+ def __str__(self: Self) -> str:
27
+ """Readable property"""
28
+ return self.name
29
+
30
+ def __repr__(self: Self) -> str:
31
+ """Readable property"""
32
+ return f'ActionGeofenceOwnership.{self.name}'
@@ -0,0 +1,53 @@
1
+ """Action kind"""
2
+
3
+ import sys
4
+ from enum import Enum
5
+
6
+ if sys.version_info >= (3, 11):
7
+ from typing import Self
8
+ else:
9
+ from typing_extensions import Self
10
+
11
+
12
+ class ActionKind(str, Enum):
13
+ """
14
+ Action kind definition
15
+ """
16
+
17
+ LINK = 'LINK'
18
+ """ Links or unkinks an asset or device to the parent asset """
19
+
20
+ PERFORM_OPERATION = 'PERFORMOPERATION'
21
+ """ Performs an operation over the activation """
22
+
23
+ SEND_TO_OUTBOUND = 'SENDTOOMEGA'
24
+ """ Send to Outbound services """
25
+
26
+ PERFORM_COMMAND = 'PERFORMCOMMAND'
27
+ """ Performs a command over the activation """
28
+
29
+ TO_MONITOR_CENTER = 'TOMONITORCENTER'
30
+ """ Sends the activation to the monitor center """
31
+
32
+ TO_CHECKPOINT_ROUTE = 'TOCHECKPOINTROUTE'
33
+ """ Sends the activation to the checkpoint route """
34
+
35
+ CORE_PROCESS = 'COREPROCESS'
36
+ """ Core process of the action """
37
+
38
+ CREATE_GEOFENCE = 'CREATE_GEOFENCE'
39
+ """ Creates a geofence for the action """
40
+
41
+ PURCHASE_ORDER_STATUS = 'PURCHASEORDERSTATUS'
42
+ """ Updates the purchase order status for the action """
43
+
44
+ EXCHANGE = 'EXCHANGE'
45
+ """ Sends the activation to the exchange service """
46
+
47
+ def __str__(self: Self) -> str:
48
+ """Readable property"""
49
+ return self.name
50
+
51
+ def __repr__(self: Self) -> str:
52
+ """Readable property"""
53
+ return f'ActionKind.{self.name}'
@@ -0,0 +1,35 @@
1
+ """Action sub kind"""
2
+
3
+ import sys
4
+ from enum import Enum
5
+
6
+ if sys.version_info >= (3, 11):
7
+ from typing import Self
8
+ else:
9
+ from typing_extensions import Self
10
+
11
+
12
+ class ActionSubKind(str, Enum):
13
+ """
14
+ Action sub kind definition
15
+ """
16
+
17
+ UNUSED = 'UNUSED'
18
+ """ Unused action sub kind, not linked to any action kind """
19
+
20
+ LINK = 'LINK'
21
+ """ Link asset or user to the parent asset """
22
+
23
+ UNLINK = 'UNLINK'
24
+ """ Unlink asset or user from the parent asset """
25
+
26
+ BOTH = 'BOTH'
27
+ """ Link and unlink asset or user to the parent asset """
28
+
29
+ def __str__(self: Self) -> str:
30
+ """Readable property"""
31
+ return self.name
32
+
33
+ def __repr__(self: Self) -> str:
34
+ """Readable property"""
35
+ return f'ActionSubKind.{self.name}'
@@ -0,0 +1,25 @@
1
+ """Ats Reception entity"""
2
+
3
+ from datetime import datetime
4
+ from typing import Optional
5
+
6
+ from pydantic import BaseModel, Field
7
+
8
+
9
+ class AtsReception(BaseModel):
10
+ """AtsReception entity"""
11
+
12
+ pk: int = Field(description='Defines the primary key of the AtsReception')
13
+ volume_bought: float = Field(
14
+ description='Volume bought in liters',
15
+ default=0.0,
16
+ )
17
+ real_volume: Optional[float] = Field(
18
+ description='Real volume in liters',
19
+ default=None,
20
+ )
21
+
22
+ received_at: datetime = Field(
23
+ description='Date and time when the reception was made',
24
+ default_factory=datetime.now,
25
+ )
@@ -0,0 +1,47 @@
1
+ """Geofence category"""
2
+
3
+ import sys
4
+ from enum import Enum
5
+
6
+ if sys.version_info >= (3, 11):
7
+ from typing import Self
8
+ else:
9
+ from typing_extensions import Self
10
+
11
+
12
+ class GeofenceCategory(str, Enum):
13
+ """
14
+ Geofence category definition
15
+ """
16
+
17
+ NONE = 'NONE'
18
+ """ Classic or uncategorized geofence """
19
+
20
+ CUSTOM = 'CUSTOM'
21
+ """ Geofence with non-standard category """
22
+
23
+ ADMINISTRATIVE = 'ADMINISTRATIVE'
24
+ """ Geofence as administrative area """
25
+
26
+ CUSTOMER = 'CUSTOMER'
27
+ """ Geofence as customer location """
28
+
29
+ PROSPECT = 'PROSPECT'
30
+ """ Similar to customer location but not yet a customer """
31
+
32
+ OTHER = 'OTHER'
33
+ """ Other geofence category """
34
+
35
+ POLYGON = 'POLYGON'
36
+ """ Geofence as search geozone """
37
+
38
+ LEAD = 'LEAD'
39
+ """ Geofence as lead location, not yet a prospect or customer """
40
+
41
+ def __str__(self: Self) -> str:
42
+ """Readable property"""
43
+ return self.name
44
+
45
+ def __repr__(self: Self) -> str:
46
+ """Readable property"""
47
+ return f'GeofenceCategory.{self.name}'
@@ -1,6 +1,6 @@
1
1
  """Trigger entity"""
2
2
 
3
- from datetime import datetime, time, timedelta
3
+ from datetime import time, timedelta
4
4
  from typing import Any
5
5
 
6
6
  from pydantic import BaseModel, Field
@@ -12,6 +12,17 @@ from .weekday import Weekday
12
12
  class Trigger(BaseModel):
13
13
  """Trigger entity"""
14
14
 
15
+ model_config = {
16
+ 'json_encoders': {
17
+ timedelta: lambda v: v.total_seconds(),
18
+ TriggerCaseKind: lambda v: v.value,
19
+ TriggerGeofenceKind: lambda v: v.value,
20
+ TriggerKind: lambda v: v.value,
21
+ TriggerCommentPattern: lambda v: v.value,
22
+ Weekday: lambda v: v.value,
23
+ },
24
+ }
25
+
15
26
  pk: int = Field(description='Defines the primary key of the trigger')
16
27
  name: str = Field(description='Defines the name of the trigger')
17
28
  code: str = Field(description='Defines the code of the trigger')
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: layrz-sdk
3
- Version: 3.1.31
3
+ Version: 3.1.33
4
4
  Summary: Layrz SDK for Python
5
5
  Author-email: "Golden M, Inc." <software@goldenm.com>
6
- Maintainer-email: Kenny Mochizuki <kenny@goldenm.com>, Luis Reyes <lreyes@goldenm.com>, Kasen Li <kli@goldenm.com>, Miguel Zauzich <miguel@goldenm.com>
7
- License: MIT License
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>
7
+ License-Expression: MIT
8
8
  Project-URL: Repository, https://github.com/goldenm-software/layrz-sdk
9
9
  Project-URL: Changelog, https://github.com/goldenm-software/layrz-sdk/blob/main/CHANGELOG.md
10
10
  Keywords: sdk,goldenm,lcl,layrz compute language,layrz
@@ -14,7 +14,6 @@ Classifier: Programming Language :: Python :: 3.11
14
14
  Classifier: Programming Language :: Python :: 3.12
15
15
  Classifier: Programming Language :: Python :: 3.13
16
16
  Classifier: Programming Language :: Python :: 3.14
17
- Classifier: License :: OSI Approved :: MIT License
18
17
  Classifier: Operating System :: OS Independent
19
18
  Requires-Python: >=3.10
20
19
  Description-Content-Type: text/markdown
@@ -20,9 +20,14 @@ layrz_sdk.egg-info/dependency_links.txt
20
20
  layrz_sdk.egg-info/requires.txt
21
21
  layrz_sdk.egg-info/top_level.txt
22
22
  layrz_sdk/entities/__init__.py
23
+ layrz_sdk/entities/action.py
24
+ layrz_sdk/entities/action_geofence_ownership.py
25
+ layrz_sdk/entities/action_kind.py
26
+ layrz_sdk/entities/action_subkind.py
23
27
  layrz_sdk/entities/asset.py
24
28
  layrz_sdk/entities/asset_constants.py
25
29
  layrz_sdk/entities/asset_operation_mode.py
30
+ layrz_sdk/entities/ats_reception.py
26
31
  layrz_sdk/entities/case.py
27
32
  layrz_sdk/entities/case_ignored_status.py
28
33
  layrz_sdk/entities/case_status.py
@@ -34,6 +39,7 @@ layrz_sdk/entities/device.py
34
39
  layrz_sdk/entities/event.py
35
40
  layrz_sdk/entities/function.py
36
41
  layrz_sdk/entities/geofence.py
42
+ layrz_sdk/entities/geofence_category.py
37
43
  layrz_sdk/entities/last_message.py
38
44
  layrz_sdk/entities/message.py
39
45
  layrz_sdk/entities/outbound_service.py
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "layrz-sdk"
3
- version = "3.1.31"
3
+ version = "3.1.33"
4
4
  description = "Layrz SDK for Python"
5
5
  authors = [
6
6
  {name = "Golden M, Inc.", email = "software@goldenm.com"}
@@ -12,11 +12,12 @@ maintainers = [
12
12
  {name = "Luis Reyes", email = "lreyes@goldenm.com"},
13
13
  {name = "Kasen Li", email = "kli@goldenm.com"},
14
14
  {name = "Miguel Zauzich", email = "miguel@goldenm.com"},
15
+ {name = "Angel Prieto", email = "aprieto@goldenm.com"},
15
16
  ]
16
17
 
17
18
  readme = "README.md"
18
19
 
19
- license = {text = "MIT License"}
20
+ license = "MIT"
20
21
 
21
22
  keywords = [
22
23
  "sdk",
@@ -32,7 +33,6 @@ classifiers = [
32
33
  "Programming Language :: Python :: 3.12",
33
34
  "Programming Language :: Python :: 3.13",
34
35
  "Programming Language :: Python :: 3.14",
35
- "License :: OSI Approved :: MIT License",
36
36
  "Operating System :: OS Independent",
37
37
  ]
38
38
  dependencies = [
@@ -343,7 +343,7 @@ wheels = [
343
343
 
344
344
  [[package]]
345
345
  name = "layrz-sdk"
346
- version = "3.1.31"
346
+ version = "3.1.33"
347
347
  source = { editable = "." }
348
348
  dependencies = [
349
349
  { name = "geopy" },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes