layrz-sdk 3.0.13__py3-none-any.whl → 3.1.0__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 (123) hide show
  1. layrz_sdk/__init__.py +1 -1
  2. layrz_sdk/constants.py +5 -0
  3. layrz_sdk/entities/__init__.py +129 -73
  4. layrz_sdk/entities/asset.py +71 -0
  5. layrz_sdk/entities/{general/asset_operation_mode.py → asset_operation_mode.py} +31 -30
  6. layrz_sdk/entities/broadcast_request.py +12 -0
  7. layrz_sdk/entities/broadcast_response.py +12 -0
  8. layrz_sdk/entities/broadcast_result.py +20 -0
  9. layrz_sdk/entities/{broadcasts/status.py → broadcast_status.py} +28 -27
  10. layrz_sdk/entities/case.py +47 -0
  11. layrz_sdk/entities/case_ignored_status.py +26 -0
  12. layrz_sdk/entities/case_status.py +23 -0
  13. layrz_sdk/entities/charts/axis_config.py +15 -0
  14. layrz_sdk/entities/charts/{bar.py → bar_chart.py} +171 -208
  15. layrz_sdk/entities/charts/chart_alignment.py +27 -0
  16. layrz_sdk/entities/charts/chart_color.py +44 -0
  17. layrz_sdk/entities/charts/chart_configuration.py +10 -0
  18. layrz_sdk/entities/charts/chart_data_serie.py +19 -0
  19. layrz_sdk/entities/charts/chart_data_serie_type.py +28 -0
  20. layrz_sdk/entities/charts/chart_data_type.py +27 -0
  21. layrz_sdk/entities/charts/{render_technology.py → chart_render_technology.py} +30 -29
  22. layrz_sdk/entities/charts/{column.py → column_chart.py} +197 -236
  23. layrz_sdk/entities/charts/html_chart.py +34 -0
  24. layrz_sdk/entities/charts/{line.py → line_chart.py} +244 -282
  25. layrz_sdk/entities/charts/map_center_type.py +22 -0
  26. layrz_sdk/entities/charts/map_chart.py +104 -0
  27. layrz_sdk/entities/charts/map_point.py +22 -0
  28. layrz_sdk/entities/charts/number_chart.py +50 -0
  29. layrz_sdk/entities/charts/{pie.py → pie_chart.py} +127 -148
  30. layrz_sdk/entities/charts/radar_chart.py +77 -0
  31. layrz_sdk/entities/charts/{radial_bar.py → radial_bar_chart.py} +127 -148
  32. layrz_sdk/entities/charts/{scatter.py → scatter_chart.py} +206 -290
  33. layrz_sdk/entities/charts/scatter_serie.py +15 -0
  34. layrz_sdk/entities/charts/scatter_serie_item.py +8 -0
  35. layrz_sdk/entities/charts/table_chart.py +50 -0
  36. layrz_sdk/entities/charts/table_header.py +8 -0
  37. layrz_sdk/entities/charts/table_row.py +9 -0
  38. layrz_sdk/entities/charts/timeline_chart.py +75 -0
  39. layrz_sdk/entities/charts/timeline_serie.py +12 -0
  40. layrz_sdk/entities/charts/timeline_serie_item.py +12 -0
  41. layrz_sdk/entities/checkpoint.py +18 -0
  42. layrz_sdk/entities/comment.py +16 -0
  43. layrz_sdk/entities/custom_field.py +10 -0
  44. layrz_sdk/entities/custom_report_page.py +16 -0
  45. layrz_sdk/entities/device.py +13 -0
  46. layrz_sdk/entities/event.py +23 -0
  47. layrz_sdk/entities/geofence.py +11 -0
  48. layrz_sdk/entities/last_message.py +12 -0
  49. layrz_sdk/entities/message.py +23 -0
  50. layrz_sdk/entities/outbound_service.py +10 -0
  51. layrz_sdk/entities/position.py +101 -0
  52. layrz_sdk/entities/presence_type.py +16 -0
  53. layrz_sdk/entities/{reports/report.py → report.py} +257 -286
  54. layrz_sdk/entities/report_col.py +40 -0
  55. layrz_sdk/entities/report_configuration.py +8 -0
  56. layrz_sdk/entities/report_data_type.py +28 -0
  57. layrz_sdk/entities/{reports/format.py → report_format.py} +27 -26
  58. layrz_sdk/entities/report_header.py +43 -0
  59. layrz_sdk/entities/report_page.py +17 -0
  60. layrz_sdk/entities/report_row.py +28 -0
  61. layrz_sdk/entities/sensor.py +11 -0
  62. layrz_sdk/entities/{formatting/text_align.py → text_alignment.py} +26 -25
  63. layrz_sdk/entities/trigger.py +11 -0
  64. layrz_sdk/entities/user.py +10 -0
  65. layrz_sdk/entities/waypoint.py +18 -0
  66. layrz_sdk/helpers/__init__.py +8 -2
  67. layrz_sdk/helpers/color.py +41 -45
  68. layrz_sdk/lcl/__init__.py +7 -2
  69. layrz_sdk/lcl/core.py +832 -813
  70. layrz_sdk/py.typed +0 -0
  71. {layrz_sdk-3.0.13.dist-info → layrz_sdk-3.1.0.dist-info}/LICENSE +6 -6
  72. {layrz_sdk-3.0.13.dist-info → layrz_sdk-3.1.0.dist-info}/METADATA +48 -45
  73. layrz_sdk-3.1.0.dist-info/RECORD +75 -0
  74. {layrz_sdk-3.0.13.dist-info → layrz_sdk-3.1.0.dist-info}/WHEEL +1 -1
  75. layrz_sdk/entities/broadcasts/__init__.py +0 -6
  76. layrz_sdk/entities/broadcasts/request.py +0 -30
  77. layrz_sdk/entities/broadcasts/response.py +0 -30
  78. layrz_sdk/entities/broadcasts/result.py +0 -53
  79. layrz_sdk/entities/broadcasts/service.py +0 -28
  80. layrz_sdk/entities/cases/__init__.py +0 -4
  81. layrz_sdk/entities/cases/case.py +0 -120
  82. layrz_sdk/entities/cases/comment.py +0 -37
  83. layrz_sdk/entities/cases/trigger.py +0 -31
  84. layrz_sdk/entities/charts/__init__.py +0 -21
  85. layrz_sdk/entities/charts/alignment.py +0 -26
  86. layrz_sdk/entities/charts/color.py +0 -38
  87. layrz_sdk/entities/charts/configuration.py +0 -54
  88. layrz_sdk/entities/charts/data_type.py +0 -26
  89. layrz_sdk/entities/charts/exceptions.py +0 -29
  90. layrz_sdk/entities/charts/html.py +0 -44
  91. layrz_sdk/entities/charts/map.py +0 -179
  92. layrz_sdk/entities/charts/number.py +0 -52
  93. layrz_sdk/entities/charts/radar.py +0 -102
  94. layrz_sdk/entities/charts/serie.py +0 -56
  95. layrz_sdk/entities/charts/serie_type.py +0 -27
  96. layrz_sdk/entities/charts/table.py +0 -74
  97. layrz_sdk/entities/charts/timeline.py +0 -148
  98. layrz_sdk/entities/checkpoints/__init__.py +0 -4
  99. layrz_sdk/entities/checkpoints/checkpoint.py +0 -50
  100. layrz_sdk/entities/checkpoints/waypoint.py +0 -52
  101. layrz_sdk/entities/events/__init__.py +0 -2
  102. layrz_sdk/entities/events/event.py +0 -58
  103. layrz_sdk/entities/formatting/__init__.py +0 -2
  104. layrz_sdk/entities/general/__init__.py +0 -9
  105. layrz_sdk/entities/general/asset.py +0 -72
  106. layrz_sdk/entities/general/custom_field.py +0 -29
  107. layrz_sdk/entities/general/device.py +0 -45
  108. layrz_sdk/entities/general/geofence.py +0 -53
  109. layrz_sdk/entities/general/sensor.py +0 -31
  110. layrz_sdk/entities/general/user.py +0 -29
  111. layrz_sdk/entities/repcom/__init__.py +0 -2
  112. layrz_sdk/entities/repcom/transaction.py +0 -54
  113. layrz_sdk/entities/reports/__init__.py +0 -7
  114. layrz_sdk/entities/reports/col.py +0 -86
  115. layrz_sdk/entities/reports/header.py +0 -57
  116. layrz_sdk/entities/reports/page.py +0 -64
  117. layrz_sdk/entities/reports/row.py +0 -43
  118. layrz_sdk/entities/telemetry/__init__.py +0 -5
  119. layrz_sdk/entities/telemetry/last_message.py +0 -41
  120. layrz_sdk/entities/telemetry/message.py +0 -37
  121. layrz_sdk/entities/telemetry/position.py +0 -51
  122. layrz_sdk-3.0.13.dist-info/RECORD +0 -70
  123. {layrz_sdk-3.0.13.dist-info → layrz_sdk-3.1.0.dist-info}/top_level.txt +0 -0
@@ -1,148 +0,0 @@
1
- """Timeline chart entities"""
2
-
3
- from datetime import datetime
4
- from typing import Any, List
5
-
6
- from .alignment import ChartAlignment
7
- from .exceptions import ChartException
8
-
9
-
10
- class TimelineSerieItem:
11
- """
12
- Chart Data Serie Item for Timeline Charts
13
- """
14
-
15
- def __init__(self, name: str, start_at: datetime, end_at: datetime, color: str) -> None:
16
- """
17
- Constructor
18
- ----
19
- Arguments
20
- - name : Name of the item.
21
- - start_at : Start date of the item.
22
- - end_at : End date of the item.
23
- - color : Color of the item.
24
- """
25
- if not isinstance(name, str):
26
- raise ChartException('name must be an instance of str')
27
- self.name = name
28
-
29
- if not isinstance(start_at, datetime):
30
- raise ChartException('start_at must be an instance of datetime')
31
- self.start_at = start_at
32
-
33
- if not isinstance(end_at, datetime):
34
- raise ChartException('end_at must be an instance of datetime')
35
- self.end_at = end_at
36
-
37
- if not isinstance(color, str):
38
- raise ChartException('color must be an instance of str')
39
- self.color = color
40
-
41
-
42
- class TimelineSerie:
43
- """
44
- Chart Data Serie for Timeline charts
45
- """
46
-
47
- def __init__(self, data: List[TimelineSerieItem], label: str) -> None:
48
- """
49
- Constructor
50
- ----
51
- Arguments
52
- - data : List of data points.
53
- - label : Label of the serie.
54
- """
55
- for i, datum in enumerate(data):
56
- if not isinstance(datum, TimelineSerieItem):
57
- raise ChartException(f'Y Axis serie {i} must be an instance of ChartDataSerie')
58
- self.data = data
59
-
60
- if not isinstance(label, str):
61
- raise ChartException('label must be an instance of str')
62
- self.label = label
63
-
64
-
65
- class TimelineChart:
66
- """
67
- Timeline chart configuration
68
- """
69
-
70
- def __init__(
71
- self,
72
- series: List[TimelineSerie],
73
- title: str = 'Chart',
74
- align: ChartAlignment = ChartAlignment.CENTER,
75
- ) -> None:
76
- """
77
- Constructor
78
- ----
79
- Arguments
80
- - series : Defines the series of the chart, uses the TimelineSerie class.
81
- Please read the documentation to more information.
82
- - title : Title of the chart.
83
- - align : Alignment of the chart.
84
- """
85
- for i, serie in enumerate(series):
86
- if not isinstance(serie, TimelineSerie):
87
- raise ChartException(f'Y Axis serie {i} must be an instance of TimelineSerie')
88
- self.series = series
89
-
90
- if not isinstance(title, str):
91
- raise ChartException('title must be an instance of str')
92
- self.title = title
93
-
94
- if not isinstance(align, ChartAlignment):
95
- raise ChartException('align must be an instance of ChartAlignment')
96
- self.align = align
97
-
98
- def render(self) -> Any:
99
- """
100
- Render chart to a Javascript Library.
101
- Currently only available for ApexCharts.
102
- """
103
- return {'library': 'APEXCHARTS', 'configuration': self._render_apexcharts()}
104
-
105
- def _render_apexcharts(self) -> Any:
106
- """
107
- Converts the configuration of the chart to Javascript library ApexCharts.
108
- """
109
-
110
- series = []
111
-
112
- for serie in self.series:
113
- data = []
114
-
115
- for item in serie.data:
116
- data.append(
117
- {
118
- 'x': item.name,
119
- 'y': [item.start_at.timestamp() * 1000, item.end_at.timestamp() * 1000],
120
- 'fillColor': item.color,
121
- }
122
- )
123
-
124
- series.append({'name': serie.label, 'data': data})
125
-
126
- config = {
127
- 'series': series,
128
- 'title': {
129
- 'text': self.title,
130
- 'align': self.align.value,
131
- 'style': {'fontFamily': 'Fira Sans Condensed', 'fontSize': '20px', 'fontWeight': 'normal'},
132
- },
133
- 'chart': {
134
- 'type': 'rangeBar',
135
- 'animations': {'enabled': False},
136
- 'toolbar': {'show': False},
137
- 'zoom': {'enabled': False},
138
- },
139
- 'xaxis': {'type': 'datetime'},
140
- 'plotOptions': {
141
- 'bar': {
142
- 'horizontal': True,
143
- }
144
- },
145
- 'dataLabels': {'enabled': True},
146
- }
147
-
148
- return config
@@ -1,4 +0,0 @@
1
- """Checkpoints entities"""
2
-
3
- from .checkpoint import Checkpoint
4
- from .waypoint import Waypoint
@@ -1,50 +0,0 @@
1
- """Checkpoints entitites"""
2
-
3
- from datetime import datetime
4
- from typing import List
5
-
6
- from .waypoint import Waypoint
7
-
8
-
9
- class Checkpoint:
10
- """
11
- Checkpoint entity definition
12
- ---
13
- Attributes
14
- - pk : Checkpoint activation ID
15
- - asset_id : Asset ID
16
- - waypoints : List of waypoints of the checkpoint
17
- - start_at : Start date
18
- - end_at : End date
19
- """
20
-
21
- def __init__(
22
- self,
23
- pk: int,
24
- asset_id: int,
25
- waypoints: List[Waypoint],
26
- start_at: datetime,
27
- end_at: datetime,
28
- ) -> None:
29
- """Constructor"""
30
- self.pk = pk
31
- self.asset_id = asset_id
32
- self.waypoints = waypoints
33
- self.start_at = start_at
34
- self.end_at = end_at
35
-
36
- @property
37
- def _readable(self) -> str | None | bool:
38
- """Readable"""
39
- return (
40
- f'Checkpoint(pk={self.pk}, asset_id={self.asset_id}, waypoints={self.waypoints}, '
41
- + f'start_at={self.start_at}, end_at={self.end_at})'
42
- )
43
-
44
- def __str__(self) -> str | None | bool:
45
- """Readable property"""
46
- return self._readable
47
-
48
- def __repr__(self) -> str | None | bool:
49
- """Readable property"""
50
- return self._readable
@@ -1,52 +0,0 @@
1
- """Waypoint entity"""
2
-
3
- from datetime import datetime
4
-
5
- from layrz_sdk.entities.general.geofence import Geofence
6
-
7
-
8
- class Waypoint:
9
- """
10
- Checkpoint waypoint entity definition
11
- ---
12
- Attributes
13
- - pk : Waypoint ID
14
- - geofence : Related geofence
15
- - start_at : Date of start this waypoint stage
16
- - end_at : Date of end this waypoint stage
17
- - sequence_real : Real sequence performed
18
- - sequence_ideal : Ideal/defined sequence
19
- """
20
-
21
- def __init__(
22
- self,
23
- pk: int,
24
- geofence: Geofence,
25
- start_at: datetime,
26
- end_at: datetime,
27
- sequence_real: int,
28
- sequence_ideal: int,
29
- ) -> None:
30
- """Constructor"""
31
- self.pk = pk
32
- self.geofence = geofence
33
- self.start_at = start_at
34
- self.end_at = end_at
35
- self.sequence_real = sequence_real
36
- self.sequence_ideal = sequence_ideal
37
-
38
- @property
39
- def _readable(self) -> str | None | bool:
40
- """Readable"""
41
- return (
42
- f'Waypoint(pk={self.pk}, geofence={self.geofence}, start_at={self.start_at}, '
43
- + f'end_at={self.end_at}, sequence_real={self.sequence_real}, sequence_ideal={self.sequence_ideal})'
44
- )
45
-
46
- def __str__(self) -> str | None | bool:
47
- """Readable property"""
48
- return self._readable
49
-
50
- def __repr__(self) -> str | None | bool:
51
- """Readable property"""
52
- return self._readable
@@ -1,2 +0,0 @@
1
- """ Events entities """
2
- from .event import Event
@@ -1,58 +0,0 @@
1
- """Event entity"""
2
-
3
- from datetime import datetime
4
-
5
- from layrz_sdk.entities.cases.trigger import Trigger
6
- from layrz_sdk.entities.general.geofence import Geofence, PresenceType
7
- from layrz_sdk.entities.telemetry.message import Message
8
-
9
-
10
- class Event:
11
- """
12
- Event entity definition
13
-
14
- Available attributes
15
- --------------------
16
- pk : Event ID
17
- trigger : Trigger object that triggered the event
18
- asset_id : ID of the Asset owner of the event
19
- message : Telemetry information of the event
20
- activated_at : Reception/triggered at
21
- geofence : Geofence where the event occurred
22
- presence_type : Presence type of the event
23
- """
24
-
25
- def __init__(
26
- self,
27
- pk: int,
28
- trigger: Trigger,
29
- asset_id: int,
30
- message: Message,
31
- activated_at: datetime,
32
- geofence: Geofence | None = None,
33
- presence_type: PresenceType | None = None,
34
- ) -> None:
35
- """Constructor"""
36
- self.pk = pk
37
- self.trigger = trigger
38
- self.asset_id = asset_id
39
- self.message = message
40
- self.activated_at = activated_at
41
- self.geofence = geofence
42
- self.presence_type = presence_type
43
-
44
- @property
45
- def _readable(self) -> str | None | bool:
46
- """Readable"""
47
- return (
48
- f'Event(pk={self.pk}, trigger={self.trigger}, asset_id={self.asset_id}, '
49
- + f'message={self.message}, activated_at={self.activated_at})'
50
- )
51
-
52
- def __str__(self) -> str | None | bool:
53
- """Readable property"""
54
- return self._readable
55
-
56
- def __repr__(self) -> str | None | bool:
57
- """Readable property"""
58
- return self._readable
@@ -1,2 +0,0 @@
1
- """ Formatting entities """
2
- from .text_align import TextAlignment
@@ -1,9 +0,0 @@
1
- """General entities"""
2
-
3
- from .asset import Asset
4
- from .asset_operation_mode import AssetOperationMode
5
- from .custom_field import CustomField
6
- from .device import Device
7
- from .geofence import Geofence, PresenceType
8
- from .sensor import Sensor
9
- from .user import User
@@ -1,72 +0,0 @@
1
- """Asset Entity"""
2
-
3
- from typing import List
4
-
5
- from .asset_operation_mode import AssetOperationMode
6
- from .custom_field import CustomField
7
- from .device import Device
8
- from .sensor import Sensor
9
-
10
-
11
- class Asset:
12
- """
13
- Asset entity definition
14
- ---
15
- Attributes
16
- - pk : Asset ID
17
- - name : Name of the asset
18
- - vin : Vehicle identification number
19
- - plate : Vehicle plate number
20
- - asset_type : Asset type ID
21
- - devices : List of devices
22
- - operation_mode : Operation mode of the asset
23
- - custom_fields : List of custom fields
24
- - children : List of children assets
25
- - sensors : List of sensors
26
- """
27
-
28
- def __init__(
29
- self,
30
- pk: int,
31
- name: str,
32
- vin: str,
33
- plate: str,
34
- asset_type: int,
35
- operation_mode: AssetOperationMode,
36
- sensors: List[Sensor] = None,
37
- custom_fields: List[CustomField] = None,
38
- devices: List[Device] = None,
39
- children: List = None,
40
- ) -> None:
41
- """Constructor"""
42
- self.pk = pk
43
- self.name = name
44
- self.vin = vin
45
- self.plate = plate
46
- self.asset_type = asset_type
47
- self.operation_mode = operation_mode
48
- self.sensors = sensors if sensors else []
49
- self.custom_fields = custom_fields if custom_fields else []
50
- self.devices = devices if devices else []
51
-
52
- if children and self.operation_mode == AssetOperationMode.ASSETMULTIPLE:
53
- self.children = children
54
- else:
55
- self.children = []
56
-
57
- @property
58
- def _readable(self) -> str | None | bool:
59
- """Readable"""
60
- return (
61
- f'Asset(pk={self.pk}, name={self.name}, vin={self.vin}, plate={self.plate}, '
62
- + f'asset_type={self.asset_type}, operation_mode={self.operation_mode}, '
63
- + f'custom_fields={self.custom_fields}, children={self.children}, sensors={self.sensors})'
64
- )
65
-
66
- def __str__(self) -> str | None | bool:
67
- """Readable property"""
68
- return self._readable
69
-
70
- def __repr__(self) -> str | None | bool:
71
- """Readable property"""
72
- return self._readable
@@ -1,29 +0,0 @@
1
- """Custom Field entitiy"""
2
-
3
-
4
- class CustomField:
5
- """
6
- Custom field definition
7
- ---
8
- Attributes
9
- - name : Name of the custom field
10
- - value : Value of the custom field
11
- """
12
-
13
- def __init__(self, name: str, value: str) -> None:
14
- """Constructor"""
15
- self.name = name
16
- self.value = value
17
-
18
- @property
19
- def _readable(self) -> str | None | bool:
20
- """Readable"""
21
- return f'CustomField(name={self.name}, value={self.value})'
22
-
23
- def __str__(self) -> str | None | bool:
24
- """Readable property"""
25
- return self._readable
26
-
27
- def __repr__(self) -> str | None | bool:
28
- """Readable property"""
29
- return self._readable
@@ -1,45 +0,0 @@
1
- """Device entitiy"""
2
-
3
-
4
- class Device:
5
- """
6
- Device definition
7
- ---
8
- Attributes
9
- - pk : Device ID
10
- - name : Name of the device
11
- - ident : Unique identifier of the device.
12
- - protocol : Protocol slug of the device.
13
- - is_primary : True if this device is the primary device of the asset.
14
- """
15
-
16
- def __init__(
17
- self,
18
- pk: int,
19
- name: str,
20
- ident: str,
21
- protocol: str,
22
- is_primary: bool = False,
23
- ) -> None:
24
- """Constructor"""
25
- self.pk = pk
26
- self.name = name
27
- self.ident = ident
28
- self.protocol = protocol
29
- self.is_primary = is_primary
30
-
31
- @property
32
- def _readable(self) -> str | None | bool:
33
- """Readable"""
34
- return (
35
- f'Device(pk={self.pk}, ident={self.ident}, name={self.name}, protocol={self.protocol}, '
36
- + f'is_primary={self.is_primary})'
37
- )
38
-
39
- def __str__(self) -> str | None | bool:
40
- """Readable property"""
41
- return self._readable
42
-
43
- def __repr__(self) -> str | None | bool:
44
- """Readable property"""
45
- return self._readable
@@ -1,53 +0,0 @@
1
- """Geofence entity"""
2
-
3
- from enum import Enum
4
-
5
-
6
- class Geofence:
7
- """
8
- Geofence entity definition
9
- ---
10
- Attributes
11
- - pk : Geofence ID
12
- - name : Geofence name
13
- - color : Geofence color in Hex format
14
- """
15
-
16
- def __init__(self, pk: int, name: str, color: str) -> None:
17
- """Constructor"""
18
- self.pk = pk
19
- self.name = name
20
- self.color = color
21
-
22
- @property
23
- def _readable(self) -> str | None | bool:
24
- """Readable"""
25
- return f'Geofence(pk={self.pk}, name={self.name}, color={self.color})'
26
-
27
- def __str__(self) -> str | None | bool:
28
- """Readable property"""
29
- return self._readable
30
-
31
- def __repr__(self) -> str | None | bool:
32
- """Readable property"""
33
- return self._readable
34
-
35
-
36
- class PresenceType(Enum):
37
- """Presence type enum"""
38
-
39
- ENTRANCE = 'ENTRANCE'
40
- EXIT = 'EXIT'
41
-
42
- @property
43
- def _readable(self) -> str | None | bool:
44
- """Readable"""
45
- return f'PresenceType.{self.value}'
46
-
47
- def __str__(self) -> str | None | bool:
48
- """Readable property"""
49
- return self._readable
50
-
51
- def __repr__(self) -> str | None | bool:
52
- """Readable property"""
53
- return self._readable
@@ -1,31 +0,0 @@
1
- """Sensor entity"""
2
-
3
-
4
- class Sensor:
5
- """
6
- Sensor entity
7
- ---
8
- Attributes
9
- pk : Sensor ID
10
- name : Name of the sensor
11
- slug : Slug of the sensor
12
- """
13
-
14
- def __init__(self, pk: int, name: str, slug: str) -> None:
15
- """Constructor"""
16
- self.pk = pk
17
- self.name = name
18
- self.slug = slug
19
-
20
- @property
21
- def _readable(self) -> str | None | bool:
22
- """Readable"""
23
- return f'Sensor(pk={self.pk}, name={self.name}, slug={self.slug})'
24
-
25
- def __str__(self) -> str | None | bool:
26
- """Readable property"""
27
- return self._readable
28
-
29
- def __repr__(self) -> str | None | bool:
30
- """Readable property"""
31
- return self._readable
@@ -1,29 +0,0 @@
1
- """User entity"""
2
-
3
-
4
- class User:
5
- """
6
- User entity definition
7
- ---
8
- Attributes
9
- pk : User ID
10
- name : User name
11
- """
12
-
13
- def __init__(self, pk: int, name: str) -> None:
14
- """Constructor"""
15
- self.pk = pk
16
- self.name = name
17
-
18
- @property
19
- def _readable(self) -> str | None | bool:
20
- """Readable"""
21
- return f'User(pk={self.pk}, name={self.name})'
22
-
23
- def __str__(self) -> str | None | bool:
24
- """Readable property"""
25
- return self._readable
26
-
27
- def __repr__(self) -> str | None | bool:
28
- """Readable property"""
29
- return self._readable
@@ -1,2 +0,0 @@
1
- """ Repcom entities """
2
- from .transaction import Transaction
@@ -1,54 +0,0 @@
1
- """Transaction entity"""
2
-
3
- from datetime import datetime, timedelta
4
-
5
- from layrz_sdk.entities.general.asset import Asset
6
-
7
-
8
- class Transaction:
9
- """
10
- Transaction definition
11
- ---
12
- Attributes
13
- pk : Transaction ID
14
- asset : Asset related to the transaction
15
- amount : Amount of the transaction
16
- quantity : Quantity of the transaction
17
- mileage : Mileage in kilometers
18
- distance : Distance traveled in kilometers
19
- engine_time : Time with the engine on
20
- idle_time : Time with the engine on without movement
21
- in_geofence : Flag to indicate if transaction occurred inside a geofence
22
- geofence_name : Name of the geofence where transaction occurred
23
- received_at : Transaction reception date and time
24
- is_wildcard : Wildcard indicator for transaction
25
- """
26
-
27
- def __init__(
28
- self,
29
- pk: int,
30
- asset: Asset,
31
- amount: float,
32
- quantity: float,
33
- mileage: float,
34
- distance: float,
35
- engine_time: timedelta,
36
- idle_time: timedelta,
37
- in_geofence: bool,
38
- geofence_name: str,
39
- received_at: datetime,
40
- is_wildcard: bool,
41
- ) -> None:
42
- """Constructor"""
43
- self.pk = pk
44
- self.asset = asset
45
- self.amount = amount
46
- self.quantity = quantity
47
- self.mileage = mileage
48
- self.distance = distance
49
- self.engine_time = engine_time
50
- self.idle_time = idle_time
51
- self.in_geofence = in_geofence
52
- self.geofence_name = geofence_name
53
- self.received_at = received_at
54
- self.is_wildcard = is_wildcard
@@ -1,7 +0,0 @@
1
- """ Init file """
2
- from .col import ReportCol, ReportDataType
3
- from .format import ReportFormat
4
- from .header import ReportHeader
5
- from .page import CustomReportPage, ReportPage
6
- from .report import Report, ReportConfiguration
7
- from .row import ReportRow