layrz-sdk 3.0.6__tar.gz → 3.0.8__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 (77) hide show
  1. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/PKG-INFO +6 -1
  2. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/README.md +5 -0
  3. layrz_sdk-3.0.8/layrz_sdk/entities/__init__.py +72 -0
  4. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/broadcasts/request.py +5 -4
  5. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/broadcasts/response.py +5 -4
  6. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/broadcasts/result.py +6 -5
  7. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/broadcasts/service.py +5 -4
  8. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/broadcasts/status.py +4 -3
  9. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/cases/case.py +13 -12
  10. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/cases/comment.py +5 -4
  11. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/cases/trigger.py +5 -4
  12. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/charts/__init__.py +1 -1
  13. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/charts/alignment.py +4 -3
  14. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/charts/bar.py +9 -7
  15. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/charts/color.py +5 -4
  16. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/charts/column.py +9 -7
  17. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/charts/configuration.py +9 -7
  18. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/charts/data_type.py +4 -3
  19. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/charts/exceptions.py +6 -5
  20. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/charts/html.py +5 -3
  21. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/charts/line.py +9 -8
  22. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/charts/map.py +13 -13
  23. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/charts/number.py +5 -3
  24. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/charts/pie.py +9 -7
  25. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/charts/radar.py +6 -4
  26. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/charts/radial_bar.py +9 -7
  27. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/charts/render_technology.py +4 -3
  28. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/charts/scatter.py +12 -10
  29. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/charts/serie.py +5 -3
  30. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/charts/serie_type.py +4 -3
  31. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/charts/table.py +15 -17
  32. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/charts/timeline.py +7 -6
  33. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/checkpoints/checkpoint.py +6 -5
  34. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/checkpoints/geofence.py +5 -4
  35. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/checkpoints/waypoint.py +5 -4
  36. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/events/event.py +5 -4
  37. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/formatting/text_align.py +4 -3
  38. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/general/asset.py +16 -10
  39. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/general/asset_operation_mode.py +5 -3
  40. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/general/custom_field.py +5 -4
  41. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/general/device.py +5 -4
  42. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/general/sensor.py +5 -4
  43. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/general/user.py +5 -4
  44. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/repcom/transaction.py +3 -2
  45. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/reports/col.py +9 -9
  46. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/reports/format.py +11 -7
  47. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/reports/header.py +12 -10
  48. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/reports/page.py +10 -8
  49. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/reports/report.py +126 -66
  50. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/reports/row.py +9 -8
  51. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/telemetry/message.py +6 -5
  52. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/telemetry/position.py +5 -4
  53. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/helpers/color.py +6 -5
  54. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/lcl/core.py +131 -120
  55. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk.egg-info/PKG-INFO +6 -1
  56. layrz_sdk-3.0.8/pyproject.toml +81 -0
  57. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/tests/test_lcl.py +53 -52
  58. layrz_sdk-3.0.6/layrz_sdk/entities/__init__.py +0 -26
  59. layrz_sdk-3.0.6/pyproject.toml +0 -246
  60. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/LICENSE +0 -0
  61. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/__init__.py +0 -0
  62. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/broadcasts/__init__.py +0 -0
  63. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/cases/__init__.py +0 -0
  64. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/checkpoints/__init__.py +0 -0
  65. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/events/__init__.py +0 -0
  66. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/formatting/__init__.py +0 -0
  67. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/general/__init__.py +0 -0
  68. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/repcom/__init__.py +0 -0
  69. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/reports/__init__.py +0 -0
  70. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/entities/telemetry/__init__.py +0 -0
  71. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/helpers/__init__.py +0 -0
  72. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk/lcl/__init__.py +0 -0
  73. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk.egg-info/SOURCES.txt +0 -0
  74. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk.egg-info/dependency_links.txt +0 -0
  75. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk.egg-info/requires.txt +0 -0
  76. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/layrz_sdk.egg-info/top_level.txt +0 -0
  77. {layrz_sdk-3.0.6 → layrz_sdk-3.0.8}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: layrz-sdk
3
- Version: 3.0.6
3
+ Version: 3.0.8
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>
@@ -26,6 +26,11 @@ Managed by Golden M, Inc.
26
26
  It's a group of tools/classes/SDKs that can be help you to implement scripts into Layrz modules, or
27
27
  incorporate them into your own projects.
28
28
 
29
+ ## Requirements
30
+ This library uses at least Python 3.10 or higher to work.
31
+
32
+ If you want to encrypt MS Excel files, you need to have the [`msoffice`](https://github.com/herumi/msoffice) utility installed in your system.
33
+
29
34
  ## Documentation
30
35
  It's available in our documentation site [developers.layrz.com](https://developers.layrz.com/Kits/Sdk)
31
36
 
@@ -6,6 +6,11 @@ Managed by Golden M, Inc.
6
6
  It's a group of tools/classes/SDKs that can be help you to implement scripts into Layrz modules, or
7
7
  incorporate them into your own projects.
8
8
 
9
+ ## Requirements
10
+ This library uses at least Python 3.10 or higher to work.
11
+
12
+ If you want to encrypt MS Excel files, you need to have the [`msoffice`](https://github.com/herumi/msoffice) utility installed in your system.
13
+
9
14
  ## Documentation
10
15
  It's available in our documentation site [developers.layrz.com](https://developers.layrz.com/Kits/Sdk)
11
16
 
@@ -0,0 +1,72 @@
1
+ """ Init file """
2
+ # Broadcast entities
3
+ from .broadcasts import BroadcastRequest, BroadcastResponse, BroadcastResult, BroadcastStatus, OutboundService
4
+
5
+ # Cases entitites
6
+ from .cases import Case, CaseIgnoredStatus, CaseStatus, Comment, Trigger
7
+
8
+ # Charts entities
9
+ from .charts import (
10
+ AreaChart,
11
+ AxisConfig,
12
+ BarChart,
13
+ ChartAlignment,
14
+ ChartColor,
15
+ ChartConfiguration,
16
+ ChartDataSerie,
17
+ ChartDataSerieType,
18
+ ChartDataType,
19
+ ChartException,
20
+ ChartRenderTechnology,
21
+ ColumnChart,
22
+ HTMLChart,
23
+ LineChart,
24
+ MapCenterType,
25
+ MapChart,
26
+ MapPoint,
27
+ NumberChart,
28
+ PieChart,
29
+ RadarChart,
30
+ RadialBarChart,
31
+ ScatterChart,
32
+ ScatterSerie,
33
+ ScatterSerieItem,
34
+ TableChart,
35
+ TableHeader,
36
+ TableRow,
37
+ TimelineChart,
38
+ TimelineSerie,
39
+ TimelineSerieItem,
40
+ get_color_list,
41
+ )
42
+
43
+ # Checkpoints entities
44
+ from .checkpoints import Checkpoint, Geofence, Waypoint
45
+
46
+ # Events entities
47
+ from .events import Event
48
+
49
+ # Formatting entities
50
+ from .formatting import TextAlignment
51
+
52
+ # General entities
53
+ from .general import Asset, AssetOperationMode, CustomField, Device, Sensor, User
54
+
55
+ # REPCOM entities
56
+ from .repcom import Transaction
57
+
58
+ # Reports entities
59
+ from .reports import (
60
+ CustomReportPage,
61
+ Report,
62
+ ReportCol,
63
+ ReportConfiguration,
64
+ ReportDataType,
65
+ ReportFormat,
66
+ ReportHeader,
67
+ ReportPage,
68
+ ReportRow,
69
+ )
70
+
71
+ # Telemetry entities
72
+ from .telemetry import Message, Position
@@ -1,4 +1,5 @@
1
1
  """ Broadcast Result Request data """
2
+ from typing import Dict, List, Self
2
3
 
3
4
 
4
5
  class BroadcastRequest:
@@ -10,19 +11,19 @@ class BroadcastRequest:
10
11
  - raw : Raw data
11
12
  """
12
13
 
13
- def __init__(self, json: dict | list, raw: str) -> None:
14
+ def __init__(self: Self, json: Dict | List, raw: str) -> None:
14
15
  self.json = json
15
16
  self.raw = raw
16
17
 
17
18
  @property
18
- def _readable(self) -> str:
19
+ def _readable(self: Self) -> str | None | bool:
19
20
  """ Readable """
20
21
  return f'BroadcastRequest(json={self.json}, raw={self.raw})'
21
22
 
22
- def __repr__(self) -> str:
23
+ def __repr__(self: Self) -> str | None | bool:
23
24
  """ Readable property """
24
25
  return self._readable
25
26
 
26
- def __str__(self) -> str:
27
+ def __str__(self: Self) -> str | None | bool:
27
28
  """ Readable property """
28
29
  return self._readable
@@ -1,4 +1,5 @@
1
1
  """ Broadcast Result Response data """
2
+ from typing import Dict, List, Self
2
3
 
3
4
 
4
5
  class BroadcastResponse:
@@ -10,19 +11,19 @@ class BroadcastResponse:
10
11
  - raw (str): Raw data
11
12
  """
12
13
 
13
- def __init__(self, json: dict | list, raw: str) -> None:
14
+ def __init__(self: Self, json: Dict | List, raw: str) -> str | None | bool:
14
15
  self.json = json
15
16
  self.raw = raw
16
17
 
17
18
  @property
18
- def _readable(self) -> str:
19
+ def _readable(self: Self) -> str | None | bool:
19
20
  """ Readable """
20
21
  return f'BroadcastResponse(json={self.json}, raw={self.raw})'
21
22
 
22
- def __repr__(self) -> str:
23
+ def __repr__(self: Self) -> str | None | bool:
23
24
  """ Readable property """
24
25
  return self._readable
25
26
 
26
- def __str__(self) -> str:
27
+ def __str__(self: Self) -> str | None | bool:
27
28
  """ Readable property """
28
29
  return self._readable
@@ -1,5 +1,6 @@
1
1
  """ Broadcast result """
2
2
  from datetime import datetime
3
+ from typing import Self
3
4
 
4
5
  from .request import BroadcastRequest
5
6
  from .response import BroadcastResponse
@@ -20,14 +21,14 @@ class BroadcastResult:
20
21
  """
21
22
 
22
23
  def __init__(
23
- self,
24
+ self: Self,
24
25
  service_id: int,
25
26
  asset_id: int,
26
27
  status: BroadcastStatus,
27
28
  request: BroadcastRequest,
28
29
  response: BroadcastResponse,
29
30
  submitted_at: datetime,
30
- ) -> None:
31
+ ) -> str | None | bool:
31
32
  self.service_id = service_id
32
33
  self.asset_id = asset_id
33
34
  self.status = status
@@ -36,15 +37,15 @@ class BroadcastResult:
36
37
  self.submitted_at = submitted_at
37
38
 
38
39
  @property
39
- def _readable(self) -> str:
40
+ def _readable(self: Self) -> str | None | bool:
40
41
  """ Readable """
41
42
  return f'BroadcastResult(service_id={self.service_id}, asset_id={self.asset_id}, status={self.status}, ' +\
42
43
  f'request={self.request}, response={self.response}, submitted_at={self.submitted_at})'
43
44
 
44
- def __repr__(self) -> str:
45
+ def __repr__(self: Self) -> str | None | bool:
45
46
  """ Readable property """
46
47
  return self._readable
47
48
 
48
- def __str__(self) -> str:
49
+ def __str__(self: Self) -> str | None | bool:
49
50
  """ Readable property """
50
51
  return self._readable
@@ -1,4 +1,5 @@
1
1
  """ Service entity """
2
+ from typing import Self
2
3
 
3
4
 
4
5
  class OutboundService:
@@ -10,19 +11,19 @@ class OutboundService:
10
11
  - name : Service Name
11
12
  """
12
13
 
13
- def __init__(self, pk: int, name: str) -> None:
14
+ def __init__(self: Self, pk: int, name: str) -> str | None | bool:
14
15
  self.pk = pk
15
16
  self.name = name
16
17
 
17
18
  @property
18
- def _readable(self) -> str:
19
+ def _readable(self: Self) -> str | None | bool:
19
20
  """ Readable """
20
21
  return f'OutboundService(pk={self.pk}, name={self.name})'
21
22
 
22
- def __repr__(self) -> str:
23
+ def __repr__(self: Self) -> str | None | bool:
23
24
  """ Readable property """
24
25
  return self._readable
25
26
 
26
- def __str__(self) -> str:
27
+ def __str__(self: Self) -> str | None | bool:
27
28
  """ Readable property """
28
29
  return self._readable
@@ -1,5 +1,6 @@
1
1
  """ Broadcast result Status """
2
2
  from enum import Enum
3
+ from typing import Self
3
4
 
4
5
 
5
6
  class BroadcastStatus(Enum):
@@ -12,14 +13,14 @@ class BroadcastStatus(Enum):
12
13
  DISCONNECTED = 'DISCONNECTED'
13
14
 
14
15
  @property
15
- def _readable(self) -> str:
16
+ def _readable(self: Self) -> str | None | bool:
16
17
  """ Readable """
17
18
  return f'BroadcastStatus.{self.value}'
18
19
 
19
- def __str__(self) -> str:
20
+ def __str__(self: Self) -> str | None | bool:
20
21
  """ Readable property """
21
22
  return self._readable
22
23
 
23
- def __repr__(self) -> str:
24
+ def __repr__(self: Self) -> str | None | bool:
24
25
  """ Readable property """
25
26
  return self._readable
@@ -2,6 +2,7 @@
2
2
 
3
3
  from datetime import datetime
4
4
  from enum import Enum
5
+ from typing import Self
5
6
 
6
7
  from .trigger import Trigger
7
8
 
@@ -13,15 +14,15 @@ class CaseStatus(Enum):
13
14
  CLOSED = 'CLOSED'
14
15
 
15
16
  @property
16
- def _readable(self) -> str:
17
+ def _readable(self: Self) -> str | None | bool:
17
18
  """ Readable """
18
19
  return f'BroadcastStatus.{self.value}'
19
20
 
20
- def __str__(self) -> str:
21
+ def __str__(self: Self) -> str | None | bool:
21
22
  """ Readable property """
22
23
  return self._readable
23
24
 
24
- def __repr__(self) -> str:
25
+ def __repr__(self: Self) -> str | None | bool:
25
26
  """ Readable property """
26
27
  return self._readable
27
28
 
@@ -36,15 +37,15 @@ class CaseIgnoredStatus(Enum):
36
37
  AUTO = 'AUTO'
37
38
 
38
39
  @property
39
- def _readable(self) -> str:
40
+ def _readable(self: Self) -> str | None | bool:
40
41
  """ Readable """
41
42
  return f'BroadcastStatus.{self.value}'
42
43
 
43
- def __str__(self) -> str:
44
+ def __str__(self: Self) -> str | None | bool:
44
45
  """ Readable property """
45
46
  return self._readable
46
47
 
47
- def __repr__(self) -> str:
48
+ def __repr__(self: Self) -> str | None | bool:
48
49
  """ Readable property """
49
50
  return self._readable
50
51
 
@@ -66,7 +67,7 @@ class Case:
66
67
  """
67
68
 
68
69
  def __init__(
69
- self,
70
+ self: Self,
70
71
  pk: int,
71
72
  trigger: Trigger,
72
73
  asset_id: int,
@@ -88,29 +89,29 @@ class Case:
88
89
  self._sequence = sequence
89
90
  self.ignored_status = ignored_status
90
91
 
91
- def get_sequence(self) -> str:
92
+ def get_sequence(self: Self) -> str | None | bool:
92
93
  """ Sequence getter """
93
94
  if self._sequence is not None:
94
95
  return f'{self.trigger.code}/{self._sequence}'
95
96
  else:
96
97
  return f'GENERIC/{self.pk}'
97
98
 
98
- def set_sequence(self, sequence: int) -> None:
99
+ def set_sequence(self: Self, sequence: int) -> None:
99
100
  """ Sequence setter """
100
101
  self._sequence = sequence
101
102
 
102
103
  sequence = property(get_sequence, set_sequence)
103
104
 
104
105
  @property
105
- def _readable(self) -> str:
106
+ def _readable(self: Self) -> str | None | bool:
106
107
  """ Readable """
107
108
  return f'Case(pk={self.pk}, trigger={self.trigger}, asset_id={self.asset_id}, ' +\
108
109
  f'comments={len(self.comments)}, opened_at={self.opened_at}, closed_at={self.closed_at})'
109
110
 
110
- def __str__(self) -> str:
111
+ def __str__(self: Self) -> str | None | bool:
111
112
  """ Readable property """
112
113
  return self._readable
113
114
 
114
- def __repr__(self) -> str:
115
+ def __repr__(self: Self) -> str | None | bool:
115
116
  """ Readable property """
116
117
  return self._readable
@@ -1,5 +1,6 @@
1
1
  """ Comment entity """
2
2
  from datetime import datetime
3
+ from typing import Self
3
4
 
4
5
  from layrz_sdk.entities.general.user import User
5
6
 
@@ -15,7 +16,7 @@ class Comment:
15
16
  - submitted_at : Date of comment submission
16
17
  """
17
18
 
18
- def __init__(self, pk: int, content: str, user: User, submitted_at: datetime) -> None:
19
+ def __init__(self: Self, pk: int, content: str, user: User, submitted_at: datetime) -> None:
19
20
  """ Constructor """
20
21
  self.pk = pk
21
22
  self.content = content
@@ -23,14 +24,14 @@ class Comment:
23
24
  self.submitted_at = submitted_at
24
25
 
25
26
  @property
26
- def _readable(self) -> str:
27
+ def _readable(self: Self) -> str | None | bool:
27
28
  """ Readable """
28
29
  return f'Comment(pk={self.pk}, content="{self.content}", user={self.user}, submitted_at={self.submitted_at})'
29
30
 
30
- def __str__(self) -> str:
31
+ def __str__(self: Self) -> str | None | bool:
31
32
  """ Readable property """
32
33
  return self._readable
33
34
 
34
- def __repr__(self) -> str:
35
+ def __repr__(self: Self) -> str | None | bool:
35
36
  """ Readable property """
36
37
  return self._readable
@@ -1,4 +1,5 @@
1
1
  """ Trigger entity """
2
+ from typing import Self
2
3
 
3
4
 
4
5
  class Trigger:
@@ -11,21 +12,21 @@ class Trigger:
11
12
  - code : Trigger code
12
13
  """
13
14
 
14
- def __init__(self, pk: int, name: str, code: str) -> None:
15
+ def __init__(self: Self, pk: int, name: str, code: str) -> None:
15
16
  """ Constructor """
16
17
  self.pk = pk
17
18
  self.name = name
18
19
  self.code = code
19
20
 
20
21
  @property
21
- def _readable(self) -> str:
22
+ def _readable(self: Self) -> str | None | bool:
22
23
  """ Readable """
23
24
  return f'Trigger(pk={self.pk}, name="{self.name}", code="{self.code}")'
24
25
 
25
- def __str__(self) -> str:
26
+ def __str__(self: Self) -> str | None | bool:
26
27
  """ Readable property """
27
28
  return self._readable
28
29
 
29
- def __repr__(self) -> str:
30
+ def __repr__(self: Self) -> str | None | bool:
30
31
  """ Readable property """
31
32
  return self._readable
@@ -3,7 +3,7 @@ from .alignment import ChartAlignment
3
3
  from .bar import BarChart
4
4
  from .color import ChartColor, get_color_list
5
5
  from .column import ColumnChart
6
- from .configuration import ChartConfiguration, AxisConfig
6
+ from .configuration import AxisConfig, ChartConfiguration
7
7
  from .data_type import ChartDataType
8
8
  from .exceptions import ChartException
9
9
  from .html import HTMLChart
@@ -1,5 +1,6 @@
1
1
  """ Chart alignment """
2
2
  from enum import Enum
3
+ from typing import Self
3
4
 
4
5
 
5
6
  class ChartAlignment(Enum):
@@ -11,14 +12,14 @@ class ChartAlignment(Enum):
11
12
  RIGHT = 'right'
12
13
 
13
14
  @property
14
- def _readable(self) -> str:
15
+ def _readable(self: Self) -> str | None | bool:
15
16
  """ Readable """
16
17
  return f'ChartAlignment.{self.value}'
17
18
 
18
- def __str__(self) -> str:
19
+ def __str__(self: Self) -> str | None | bool:
19
20
  """ Readable property """
20
21
  return self._readable
21
22
 
22
- def __repr__(self) -> str:
23
+ def __repr__(self: Self) -> str | None | bool:
23
24
  """ Readable property """
24
25
  return self._readable
@@ -1,4 +1,6 @@
1
1
  """ Bar chart """
2
+ from typing import Any, List, Self
3
+
2
4
  from .alignment import ChartAlignment
3
5
  from .configuration import AxisConfig
4
6
  from .exceptions import ChartException
@@ -13,9 +15,9 @@ class BarChart:
13
15
  """
14
16
 
15
17
  def __init__(
16
- self,
18
+ self: Self,
17
19
  x_axis: ChartDataSerie,
18
- y_axis: list[ChartDataSerie],
20
+ y_axis: List[ChartDataSerie],
19
21
  title: str = 'Chart',
20
22
  align: ChartAlignment = ChartAlignment.CENTER,
21
23
  x_axis_config: AxisConfig = None,
@@ -66,9 +68,9 @@ class BarChart:
66
68
  self.y_axis_config = y_axis_config
67
69
 
68
70
  def render(
69
- self,
71
+ self: Self,
70
72
  technology: ChartRenderTechnology = ChartRenderTechnology.SYNCFUSION_FLUTTER_CHARTS,
71
- ) -> dict:
73
+ ) -> Any:
72
74
  """
73
75
  Render chart to a graphic Library.
74
76
  We have two graphic libraries: GRAPHIC and APEXCHARTS.
@@ -103,7 +105,7 @@ class BarChart:
103
105
  'configuration': [f'Unsupported rendering technology {technology.name}'],
104
106
  }
105
107
 
106
- def _render_syncfusion_flutter_charts(self) -> list[dict]:
108
+ def _render_syncfusion_flutter_charts(self: Self) -> Any:
107
109
  """
108
110
  Converts the configuration of the chart to Syncfusion Flutter Charts.
109
111
  """
@@ -139,7 +141,7 @@ class BarChart:
139
141
  },
140
142
  }
141
143
 
142
- def _render_graphic(self) -> list[dict]:
144
+ def _render_graphic(self: Self) -> Any:
143
145
  """
144
146
  Converts the configuration of the chart to Flutter library graphic.
145
147
  """
@@ -158,7 +160,7 @@ class BarChart:
158
160
 
159
161
  return series
160
162
 
161
- def _render_apexcharts(self) -> dict:
163
+ def _render_apexcharts(self: Self) -> Any:
162
164
  """
163
165
  Converts the configuration of the chart to Javascript library ApexCharts.
164
166
  """
@@ -1,5 +1,6 @@
1
1
  """ Chart alignment """
2
2
  from enum import Enum
3
+ from typing import Any, Self
3
4
 
4
5
 
5
6
  class ChartColor(Enum):
@@ -17,19 +18,19 @@ class ChartColor(Enum):
17
18
  LIME = '#CDDC39'
18
19
 
19
20
  @property
20
- def _readable(self) -> str:
21
+ def _readable(self: Self) -> str | None | bool:
21
22
  """ Readable """
22
23
  return f'ChartColor.{self.value}'
23
24
 
24
- def __str__(self) -> str:
25
+ def __str__(self: Self) -> str | None | bool:
25
26
  """ Readable property """
26
27
  return self._readable
27
28
 
28
- def __repr__(self) -> str:
29
+ def __repr__(self: Self) -> str | None | bool:
29
30
  """ Readable property """
30
31
  return self._readable
31
32
 
32
33
 
33
- def get_color_list() -> list[str]:
34
+ def get_color_list() -> Any:
34
35
  """ Get all colors """
35
36
  return [color.value for color in ChartColor]
@@ -1,4 +1,6 @@
1
1
  """ Column chart """
2
+ from typing import Any, List, Self
3
+
2
4
  from layrz_sdk.helpers import convert_to_rgba
3
5
 
4
6
  from .alignment import ChartAlignment
@@ -16,9 +18,9 @@ class ColumnChart:
16
18
  """
17
19
 
18
20
  def __init__(
19
- self,
21
+ self: Self,
20
22
  x_axis: ChartDataSerie,
21
- y_axis: list[ChartDataSerie],
23
+ y_axis: List[ChartDataSerie],
22
24
  title: str = 'Chart',
23
25
  align: ChartAlignment = ChartAlignment.CENTER,
24
26
  x_axis_config: AxisConfig = None,
@@ -69,9 +71,9 @@ class ColumnChart:
69
71
  self.y_axis_config = y_axis_config
70
72
 
71
73
  def render(
72
- self,
74
+ self: Self,
73
75
  technology: ChartRenderTechnology = ChartRenderTechnology.SYNCFUSION_FLUTTER_CHARTS,
74
- ) -> dict:
76
+ ) -> Any:
75
77
  """
76
78
  Render chart to a graphic Library.
77
79
  We have two graphic libraries: GRAPHIC and APEXCHARTS.
@@ -106,7 +108,7 @@ class ColumnChart:
106
108
  'configuration': [f'Unsupported {technology}'],
107
109
  }
108
110
 
109
- def _render_syncfusion_flutter_charts(self) -> dict:
111
+ def _render_syncfusion_flutter_charts(self: Self) -> Any:
110
112
  """
111
113
  Converts the configuration of the chart to Syncfusion Flutter Charts.
112
114
  """
@@ -142,7 +144,7 @@ class ColumnChart:
142
144
  },
143
145
  }
144
146
 
145
- def _render_graphic(self) -> list[dict]:
147
+ def _render_graphic(self: Self) -> Any:
146
148
  """
147
149
  Converts the configuration of the chart to Flutter library graphic.
148
150
  """
@@ -161,7 +163,7 @@ class ColumnChart:
161
163
 
162
164
  return series
163
165
 
164
- def _render_apexcharts(self) -> dict:
166
+ def _render_apexcharts(self: Self) -> Any:
165
167
  """
166
168
  Converts the configuration of the chart to Javascript library ApexCharts.
167
169
  """
@@ -1,4 +1,6 @@
1
1
  """ Charts entities """
2
+ from typing import Self
3
+
2
4
  from .data_type import ChartDataType
3
5
 
4
6
 
@@ -7,21 +9,21 @@ class ChartConfiguration:
7
9
  Chart configuration
8
10
  """
9
11
 
10
- def __init__(self, name: str, description: str) -> None:
12
+ def __init__(self: Self, name: str, description: str) -> None:
11
13
  """ Constructor """
12
14
  self.name = name
13
15
  self.description = description
14
16
 
15
17
  @property
16
- def _readable(self) -> str:
18
+ def _readable(self: Self) -> str | None | bool:
17
19
  """ Readable """
18
20
  return f'ChartConfiguration(name="{self.name}")'
19
21
 
20
- def __str__(self) -> str:
22
+ def __str__(self: Self) -> str | None | bool:
21
23
  """ Readable property """
22
24
  return self._readable
23
25
 
24
- def __repr__(self) -> str:
26
+ def __repr__(self: Self) -> str | None | bool:
25
27
  """ Readable property """
26
28
  return self._readable
27
29
 
@@ -30,11 +32,11 @@ class AxisConfig:
30
32
  """ Axis configuration """
31
33
 
32
34
  def __init__(
33
- self,
35
+ self: Self,
34
36
  label: str = '',
35
37
  measure_unit: str = '',
36
- min_value: int | float = None,
37
- max_value: int | float = None,
38
+ min_value: float = None,
39
+ max_value: float = None,
38
40
  data_type: ChartDataType = ChartDataType.DATETIME,
39
41
  ) -> None:
40
42
  """
@@ -1,5 +1,6 @@
1
1
  """ Chart Data type """
2
2
  from enum import Enum
3
+ from typing import Self
3
4
 
4
5
 
5
6
  class ChartDataType(Enum):
@@ -11,14 +12,14 @@ class ChartDataType(Enum):
11
12
  NUMBER = 'NUMBER'
12
13
 
13
14
  @property
14
- def _readable(self) -> str:
15
+ def _readable(self: Self) -> str | None | bool:
15
16
  """ Readable """
16
17
  return f'ChartDataType.{self.value}'
17
18
 
18
- def __str__(self) -> str:
19
+ def __str__(self: Self) -> str | None | bool:
19
20
  """ Readable property """
20
21
  return self._readable
21
22
 
22
- def __repr__(self) -> str:
23
+ def __repr__(self: Self) -> str | None | bool:
23
24
  """ Readable property """
24
25
  return self._readable