layrz-sdk 3.0.7__py3-none-any.whl → 3.0.9__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.
- layrz_sdk/entities/__init__.py +55 -9
- layrz_sdk/entities/broadcasts/request.py +5 -4
- layrz_sdk/entities/broadcasts/response.py +5 -4
- layrz_sdk/entities/broadcasts/result.py +6 -5
- layrz_sdk/entities/broadcasts/service.py +5 -4
- layrz_sdk/entities/broadcasts/status.py +4 -3
- layrz_sdk/entities/cases/case.py +13 -12
- layrz_sdk/entities/cases/comment.py +5 -4
- layrz_sdk/entities/cases/trigger.py +5 -4
- layrz_sdk/entities/charts/__init__.py +1 -1
- layrz_sdk/entities/charts/alignment.py +4 -3
- layrz_sdk/entities/charts/bar.py +9 -7
- layrz_sdk/entities/charts/color.py +5 -4
- layrz_sdk/entities/charts/column.py +9 -7
- layrz_sdk/entities/charts/configuration.py +9 -7
- layrz_sdk/entities/charts/data_type.py +4 -3
- layrz_sdk/entities/charts/exceptions.py +6 -5
- layrz_sdk/entities/charts/html.py +5 -3
- layrz_sdk/entities/charts/line.py +9 -8
- layrz_sdk/entities/charts/map.py +13 -13
- layrz_sdk/entities/charts/number.py +5 -3
- layrz_sdk/entities/charts/pie.py +9 -7
- layrz_sdk/entities/charts/radar.py +6 -4
- layrz_sdk/entities/charts/radial_bar.py +9 -7
- layrz_sdk/entities/charts/render_technology.py +4 -3
- layrz_sdk/entities/charts/scatter.py +12 -10
- layrz_sdk/entities/charts/serie.py +5 -3
- layrz_sdk/entities/charts/serie_type.py +4 -3
- layrz_sdk/entities/charts/table.py +15 -17
- layrz_sdk/entities/charts/timeline.py +7 -6
- layrz_sdk/entities/checkpoints/checkpoint.py +6 -5
- layrz_sdk/entities/checkpoints/geofence.py +5 -4
- layrz_sdk/entities/checkpoints/waypoint.py +5 -4
- layrz_sdk/entities/events/event.py +5 -4
- layrz_sdk/entities/formatting/text_align.py +4 -3
- layrz_sdk/entities/general/asset.py +11 -9
- layrz_sdk/entities/general/asset_operation_mode.py +4 -3
- layrz_sdk/entities/general/custom_field.py +5 -4
- layrz_sdk/entities/general/device.py +5 -4
- layrz_sdk/entities/general/sensor.py +5 -4
- layrz_sdk/entities/general/user.py +5 -4
- layrz_sdk/entities/repcom/transaction.py +3 -2
- layrz_sdk/entities/reports/col.py +9 -9
- layrz_sdk/entities/reports/format.py +11 -7
- layrz_sdk/entities/reports/header.py +12 -10
- layrz_sdk/entities/reports/page.py +10 -8
- layrz_sdk/entities/reports/report.py +130 -66
- layrz_sdk/entities/reports/row.py +7 -5
- layrz_sdk/entities/telemetry/message.py +6 -5
- layrz_sdk/entities/telemetry/position.py +5 -4
- layrz_sdk/helpers/color.py +6 -5
- layrz_sdk/lcl/core.py +131 -120
- {layrz_sdk-3.0.7.dist-info → layrz_sdk-3.0.9.dist-info}/METADATA +6 -1
- layrz_sdk-3.0.9.dist-info/RECORD +69 -0
- {layrz_sdk-3.0.7.dist-info → layrz_sdk-3.0.9.dist-info}/WHEEL +1 -1
- layrz_sdk-3.0.7.dist-info/RECORD +0 -69
- {layrz_sdk-3.0.7.dist-info → layrz_sdk-3.0.9.dist-info}/LICENSE +0 -0
- {layrz_sdk-3.0.7.dist-info → layrz_sdk-3.0.9.dist-info}/top_level.txt +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
""" Checkpoints entitites """
|
|
2
2
|
from datetime import datetime
|
|
3
|
+
from typing import List, Self
|
|
3
4
|
|
|
4
5
|
from .waypoint import Waypoint
|
|
5
6
|
|
|
@@ -17,10 +18,10 @@ class Checkpoint:
|
|
|
17
18
|
"""
|
|
18
19
|
|
|
19
20
|
def __init__(
|
|
20
|
-
self,
|
|
21
|
+
self: Self,
|
|
21
22
|
pk: int,
|
|
22
23
|
asset_id: int,
|
|
23
|
-
waypoints:
|
|
24
|
+
waypoints: List[Waypoint],
|
|
24
25
|
start_at: datetime,
|
|
25
26
|
end_at: datetime,
|
|
26
27
|
) -> None:
|
|
@@ -32,15 +33,15 @@ class Checkpoint:
|
|
|
32
33
|
self.end_at = end_at
|
|
33
34
|
|
|
34
35
|
@property
|
|
35
|
-
def _readable(self) -> str:
|
|
36
|
+
def _readable(self: Self) -> str | None | bool:
|
|
36
37
|
""" Readable """
|
|
37
38
|
return f'Checkpoint(pk={self.pk}, asset_id={self.asset_id}, waypoints={self.waypoints}, ' +\
|
|
38
39
|
f'start_at={self.start_at}, end_at={self.end_at})'
|
|
39
40
|
|
|
40
|
-
def __str__(self) -> str:
|
|
41
|
+
def __str__(self: Self) -> str | None | bool:
|
|
41
42
|
""" Readable property """
|
|
42
43
|
return self._readable
|
|
43
44
|
|
|
44
|
-
def __repr__(self) -> str:
|
|
45
|
+
def __repr__(self: Self) -> str | None | bool:
|
|
45
46
|
""" Readable property """
|
|
46
47
|
return self._readable
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
""" Geofence entity """
|
|
2
|
+
from typing import Self
|
|
2
3
|
|
|
3
4
|
|
|
4
5
|
class Geofence:
|
|
@@ -11,21 +12,21 @@ class Geofence:
|
|
|
11
12
|
- color : Geofence color in Hex format
|
|
12
13
|
"""
|
|
13
14
|
|
|
14
|
-
def __init__(self, pk: int, name: str, color: str) -> None:
|
|
15
|
+
def __init__(self: Self, pk: int, name: str, color: str) -> None:
|
|
15
16
|
""" Constructor """
|
|
16
17
|
self.pk = pk
|
|
17
18
|
self.name = name
|
|
18
19
|
self.color = color
|
|
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'Geofence(pk={self.pk}, name={self.name}, color={self.color})'
|
|
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
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
""" Waypoint entity """
|
|
2
2
|
from datetime import datetime
|
|
3
|
+
from typing import Self
|
|
3
4
|
|
|
4
5
|
from .geofence import Geofence
|
|
5
6
|
|
|
@@ -18,7 +19,7 @@ class Waypoint:
|
|
|
18
19
|
"""
|
|
19
20
|
|
|
20
21
|
def __init__(
|
|
21
|
-
self,
|
|
22
|
+
self: Self,
|
|
22
23
|
pk: int,
|
|
23
24
|
geofence: Geofence,
|
|
24
25
|
start_at: datetime,
|
|
@@ -35,15 +36,15 @@ class Waypoint:
|
|
|
35
36
|
self.sequence_ideal = sequence_ideal
|
|
36
37
|
|
|
37
38
|
@property
|
|
38
|
-
def _readable(self) -> str:
|
|
39
|
+
def _readable(self: Self) -> str | None | bool:
|
|
39
40
|
""" Readable """
|
|
40
41
|
return f'Waypoint(pk={self.pk}, geofence={self.geofence}, start_at={self.start_at}, ' +\
|
|
41
42
|
f'end_at={self.end_at}, sequence_real={self.sequence_real}, sequence_ideal={self.sequence_ideal})'
|
|
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
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
""" Event entity """
|
|
2
2
|
from datetime import datetime
|
|
3
|
+
from typing import Self
|
|
3
4
|
|
|
4
5
|
from layrz_sdk.entities.cases.trigger import Trigger
|
|
5
6
|
from layrz_sdk.entities.telemetry.message import Message
|
|
@@ -19,7 +20,7 @@ class Event:
|
|
|
19
20
|
"""
|
|
20
21
|
|
|
21
22
|
def __init__(
|
|
22
|
-
self,
|
|
23
|
+
self: Self,
|
|
23
24
|
pk: int,
|
|
24
25
|
trigger: Trigger,
|
|
25
26
|
asset_id: int,
|
|
@@ -34,15 +35,15 @@ class Event:
|
|
|
34
35
|
self.activated_at = activated_at
|
|
35
36
|
|
|
36
37
|
@property
|
|
37
|
-
def _readable(self) -> str:
|
|
38
|
+
def _readable(self: Self) -> str | None | bool:
|
|
38
39
|
""" Readable """
|
|
39
40
|
return f'Event(pk={self.pk}, trigger={self.trigger}, asset_id={self.asset_id}, ' +\
|
|
40
41
|
f'message={self.message}, activated_at={self.activated_at})'
|
|
41
42
|
|
|
42
|
-
def __str__(self) -> str:
|
|
43
|
+
def __str__(self: Self) -> str | None | bool:
|
|
43
44
|
""" Readable property """
|
|
44
45
|
return self._readable
|
|
45
46
|
|
|
46
|
-
def __repr__(self) -> str:
|
|
47
|
+
def __repr__(self: Self) -> str | None | bool:
|
|
47
48
|
""" Readable property """
|
|
48
49
|
return self._readable
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
""" Text alignment """
|
|
2
2
|
from enum import Enum
|
|
3
|
+
from typing import Self
|
|
3
4
|
|
|
4
5
|
|
|
5
6
|
class TextAlignment(Enum):
|
|
@@ -10,14 +11,14 @@ class TextAlignment(Enum):
|
|
|
10
11
|
JUSTIFY = 'justify'
|
|
11
12
|
|
|
12
13
|
@property
|
|
13
|
-
def _readable(self) -> str:
|
|
14
|
+
def _readable(self: Self) -> str | None | bool:
|
|
14
15
|
""" Readable """
|
|
15
16
|
return f'TextAlignment.{self.value}'
|
|
16
17
|
|
|
17
|
-
def __str__(self) -> str:
|
|
18
|
+
def __str__(self: Self) -> str | None | bool:
|
|
18
19
|
""" Readable property """
|
|
19
20
|
return self._readable
|
|
20
21
|
|
|
21
|
-
def __repr__(self) -> str:
|
|
22
|
+
def __repr__(self: Self) -> str | None | bool:
|
|
22
23
|
""" Readable property """
|
|
23
24
|
return self._readable
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
""" Asset Entity """
|
|
2
|
+
from typing import List, Self
|
|
3
|
+
|
|
2
4
|
from .asset_operation_mode import AssetOperationMode
|
|
3
5
|
from .custom_field import CustomField
|
|
4
6
|
from .device import Device
|
|
@@ -23,18 +25,18 @@ class Asset:
|
|
|
23
25
|
"""
|
|
24
26
|
|
|
25
27
|
def __init__(
|
|
26
|
-
self,
|
|
28
|
+
self: Self,
|
|
27
29
|
pk: int,
|
|
28
30
|
name: str,
|
|
29
31
|
vin: str,
|
|
30
32
|
plate: str,
|
|
31
33
|
asset_type: int,
|
|
32
34
|
operation_mode: AssetOperationMode,
|
|
33
|
-
sensors:
|
|
34
|
-
custom_fields:
|
|
35
|
-
devices:
|
|
36
|
-
children:
|
|
37
|
-
):
|
|
35
|
+
sensors: List[Sensor] = None,
|
|
36
|
+
custom_fields: List[CustomField] = None,
|
|
37
|
+
devices: List[Device] = None,
|
|
38
|
+
children: List = None,
|
|
39
|
+
) -> None:
|
|
38
40
|
""" Constructor """
|
|
39
41
|
self.pk = pk
|
|
40
42
|
self.name = name
|
|
@@ -52,16 +54,16 @@ class Asset:
|
|
|
52
54
|
self.children = []
|
|
53
55
|
|
|
54
56
|
@property
|
|
55
|
-
def _readable(self) -> str:
|
|
57
|
+
def _readable(self: Self) -> str | None | bool:
|
|
56
58
|
""" Readable """
|
|
57
59
|
return f'Asset(pk={self.pk}, name={self.name}, vin={self.vin}, plate={self.plate}, ' +\
|
|
58
60
|
f'asset_type={self.asset_type}, operation_mode={self.operation_mode}, ' +\
|
|
59
61
|
f'custom_fields={self.custom_fields}, children={self.children}, sensors={self.sensors})'
|
|
60
62
|
|
|
61
|
-
def __str__(self) -> str:
|
|
63
|
+
def __str__(self: Self) -> str | None | bool:
|
|
62
64
|
""" Readable property """
|
|
63
65
|
return self._readable
|
|
64
66
|
|
|
65
|
-
def __repr__(self) -> str:
|
|
67
|
+
def __repr__(self: Self) -> str | None | bool:
|
|
66
68
|
""" Readable property """
|
|
67
69
|
return self._readable
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
""" Asset Operation Mode """
|
|
2
2
|
from enum import Enum
|
|
3
|
+
from typing import Self
|
|
3
4
|
|
|
4
5
|
|
|
5
6
|
class AssetOperationMode(Enum):
|
|
@@ -15,14 +16,14 @@ class AssetOperationMode(Enum):
|
|
|
15
16
|
ZONE = 'ZONE'
|
|
16
17
|
|
|
17
18
|
@property
|
|
18
|
-
def _readable(self) -> str:
|
|
19
|
+
def _readable(self: Self) -> str | None | bool:
|
|
19
20
|
""" Readable """
|
|
20
21
|
return self.value
|
|
21
22
|
|
|
22
|
-
def __str__(self) -> str:
|
|
23
|
+
def __str__(self: Self) -> str | None | bool:
|
|
23
24
|
""" Readable property """
|
|
24
25
|
return self._readable
|
|
25
26
|
|
|
26
|
-
def __repr__(self) -> str:
|
|
27
|
+
def __repr__(self: Self) -> str | None | bool:
|
|
27
28
|
""" Readable property """
|
|
28
29
|
return self._readable
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
""" Custom Field entitiy """
|
|
2
|
+
from typing import Self
|
|
2
3
|
|
|
3
4
|
|
|
4
5
|
class CustomField:
|
|
@@ -10,20 +11,20 @@ class CustomField:
|
|
|
10
11
|
- value : Value of the custom field
|
|
11
12
|
"""
|
|
12
13
|
|
|
13
|
-
def __init__(self, name: str, value: str) -> None:
|
|
14
|
+
def __init__(self: Self, name: str, value: str) -> None:
|
|
14
15
|
""" Constructor """
|
|
15
16
|
self.name = name
|
|
16
17
|
self.value = value
|
|
17
18
|
|
|
18
19
|
@property
|
|
19
|
-
def _readable(self) -> str:
|
|
20
|
+
def _readable(self: Self) -> str | None | bool:
|
|
20
21
|
""" Readable """
|
|
21
22
|
return f'CustomField(name={self.name}, value={self.value})'
|
|
22
23
|
|
|
23
|
-
def __str__(self) -> str:
|
|
24
|
+
def __str__(self: Self) -> str | None | bool:
|
|
24
25
|
""" Readable property """
|
|
25
26
|
return self._readable
|
|
26
27
|
|
|
27
|
-
def __repr__(self) -> str:
|
|
28
|
+
def __repr__(self: Self) -> str | None | bool:
|
|
28
29
|
""" Readable property """
|
|
29
30
|
return self._readable
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
""" Device entitiy """
|
|
2
|
+
from typing import Self
|
|
2
3
|
|
|
3
4
|
|
|
4
5
|
class Device:
|
|
@@ -14,7 +15,7 @@ class Device:
|
|
|
14
15
|
"""
|
|
15
16
|
|
|
16
17
|
def __init__(
|
|
17
|
-
self,
|
|
18
|
+
self: Self,
|
|
18
19
|
pk: int,
|
|
19
20
|
name: str,
|
|
20
21
|
ident: str,
|
|
@@ -29,15 +30,15 @@ class Device:
|
|
|
29
30
|
self.is_primary = is_primary
|
|
30
31
|
|
|
31
32
|
@property
|
|
32
|
-
def _readable(self) -> str:
|
|
33
|
+
def _readable(self: Self) -> str | None | bool:
|
|
33
34
|
""" Readable """
|
|
34
35
|
return f'Device(pk={self.pk}, ident={self.ident}, name={self.name}, protocol={self.protocol}, ' +\
|
|
35
36
|
f'is_primary={self.is_primary})'
|
|
36
37
|
|
|
37
|
-
def __str__(self) -> str:
|
|
38
|
+
def __str__(self: Self) -> str | None | bool:
|
|
38
39
|
""" Readable property """
|
|
39
40
|
return self._readable
|
|
40
41
|
|
|
41
|
-
def __repr__(self) -> str:
|
|
42
|
+
def __repr__(self: Self) -> str | None | bool:
|
|
42
43
|
""" Readable property """
|
|
43
44
|
return self._readable
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
""" Sensor entity """
|
|
2
|
+
from typing import Self
|
|
2
3
|
|
|
3
4
|
|
|
4
5
|
class Sensor:
|
|
@@ -11,21 +12,21 @@ class Sensor:
|
|
|
11
12
|
slug : Slug of the sensor
|
|
12
13
|
"""
|
|
13
14
|
|
|
14
|
-
def __init__(self, pk: int, name: str, slug: str) -> None:
|
|
15
|
+
def __init__(self: Self, pk: int, name: str, slug: str) -> None:
|
|
15
16
|
""" Constructor """
|
|
16
17
|
self.pk = pk
|
|
17
18
|
self.name = name
|
|
18
19
|
self.slug = slug
|
|
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'Sensor(pk={self.pk}, name={self.name}, slug={self.slug})'
|
|
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
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
""" User entity """
|
|
2
|
+
from typing import Self
|
|
2
3
|
|
|
3
4
|
|
|
4
5
|
class User:
|
|
@@ -10,20 +11,20 @@ class User:
|
|
|
10
11
|
name : User name
|
|
11
12
|
"""
|
|
12
13
|
|
|
13
|
-
def __init__(self, pk: int, name: str) -> None:
|
|
14
|
+
def __init__(self: Self, pk: int, name: str) -> None:
|
|
14
15
|
""" Constructor """
|
|
15
16
|
self.pk = pk
|
|
16
17
|
self.name = name
|
|
17
18
|
|
|
18
19
|
@property
|
|
19
|
-
def _readable(self) -> str:
|
|
20
|
+
def _readable(self: Self) -> str | None | bool:
|
|
20
21
|
""" Readable """
|
|
21
22
|
return f'User(pk={self.pk}, name={self.name})'
|
|
22
23
|
|
|
23
|
-
def __str__(self) -> str:
|
|
24
|
+
def __str__(self: Self) -> str | None | bool:
|
|
24
25
|
""" Readable property """
|
|
25
26
|
return self._readable
|
|
26
27
|
|
|
27
|
-
def __repr__(self) -> str:
|
|
28
|
+
def __repr__(self: Self) -> str | None | bool:
|
|
28
29
|
""" Readable property """
|
|
29
30
|
return self._readable
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
""" Transaction entity """
|
|
2
2
|
from datetime import datetime, timedelta
|
|
3
|
+
from typing import Self
|
|
3
4
|
|
|
4
5
|
from layrz_sdk.entities.general.asset import Asset
|
|
5
6
|
|
|
@@ -24,7 +25,7 @@ class Transaction:
|
|
|
24
25
|
"""
|
|
25
26
|
|
|
26
27
|
def __init__(
|
|
27
|
-
self,
|
|
28
|
+
self: Self,
|
|
28
29
|
pk: int,
|
|
29
30
|
asset: Asset,
|
|
30
31
|
amount: float,
|
|
@@ -37,7 +38,7 @@ class Transaction:
|
|
|
37
38
|
geofence_name: str,
|
|
38
39
|
received_at: datetime,
|
|
39
40
|
is_wildcard: bool,
|
|
40
|
-
):
|
|
41
|
+
) -> None:
|
|
41
42
|
""" Constructor """
|
|
42
43
|
self.pk = pk
|
|
43
44
|
self.asset = asset
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
""" Report col """
|
|
2
2
|
import warnings
|
|
3
3
|
from enum import Enum
|
|
4
|
-
from typing import Any
|
|
4
|
+
from typing import Any, Self
|
|
5
5
|
|
|
6
6
|
from ..formatting.text_align import TextAlignment
|
|
7
7
|
|
|
@@ -18,15 +18,15 @@ class ReportDataType(Enum):
|
|
|
18
18
|
CURRENCY = 'currency'
|
|
19
19
|
|
|
20
20
|
@property
|
|
21
|
-
def _readable(self) -> str:
|
|
21
|
+
def _readable(self: Self) -> str | None | bool:
|
|
22
22
|
""" Readable """
|
|
23
23
|
return f'ReportDataType.{self.value}'
|
|
24
24
|
|
|
25
|
-
def __str__(self) -> str:
|
|
25
|
+
def __str__(self: Self) -> str | None | bool:
|
|
26
26
|
""" Readable property """
|
|
27
27
|
return self._readable
|
|
28
28
|
|
|
29
|
-
def __repr__(self) -> str:
|
|
29
|
+
def __repr__(self: Self) -> str | None | bool:
|
|
30
30
|
""" Readable property """
|
|
31
31
|
return self._readable
|
|
32
32
|
|
|
@@ -48,7 +48,7 @@ class ReportCol:
|
|
|
48
48
|
"""
|
|
49
49
|
|
|
50
50
|
def __init__(
|
|
51
|
-
self,
|
|
51
|
+
self: Self,
|
|
52
52
|
content: Any,
|
|
53
53
|
color: str = '#ffffff',
|
|
54
54
|
text_color: str = None,
|
|
@@ -62,7 +62,7 @@ class ReportCol:
|
|
|
62
62
|
self.color = color
|
|
63
63
|
|
|
64
64
|
if text_color is not None:
|
|
65
|
-
warnings.warn('text_color is deprecated, use color instead', DeprecationWarning)
|
|
65
|
+
warnings.warn('text_color is deprecated, use color instead', DeprecationWarning, stacklevel=2)
|
|
66
66
|
|
|
67
67
|
self.align = align
|
|
68
68
|
self.data_type = data_type
|
|
@@ -71,14 +71,14 @@ class ReportCol:
|
|
|
71
71
|
self.bold = bold
|
|
72
72
|
|
|
73
73
|
@property
|
|
74
|
-
def _readable(self) -> str:
|
|
74
|
+
def _readable(self: Self) -> str | None | bool:
|
|
75
75
|
""" Readable property """
|
|
76
76
|
return f'ReportCol(content={self.content})'
|
|
77
77
|
|
|
78
|
-
def __repr__(self) -> str:
|
|
78
|
+
def __repr__(self: Self) -> str | None | bool:
|
|
79
79
|
""" Readable property """
|
|
80
80
|
return self._readable
|
|
81
81
|
|
|
82
|
-
def __str__(self) -> str:
|
|
82
|
+
def __str__(self: Self) -> str | None | bool:
|
|
83
83
|
""" Readable property """
|
|
84
84
|
return self._readable
|
|
@@ -1,23 +1,27 @@
|
|
|
1
|
-
"""
|
|
1
|
+
"""Report formats"""
|
|
2
|
+
|
|
2
3
|
from enum import Enum
|
|
4
|
+
from typing import Self
|
|
3
5
|
|
|
4
6
|
|
|
5
7
|
class ReportFormat(Enum):
|
|
6
8
|
"""
|
|
7
9
|
Report format definition.
|
|
8
10
|
"""
|
|
11
|
+
|
|
9
12
|
MICROSOFT_EXCEL = 'MICROSOFT_EXCEL'
|
|
10
13
|
JSON = 'JSON'
|
|
14
|
+
PDF = 'PDF'
|
|
11
15
|
|
|
12
16
|
@property
|
|
13
|
-
def _readable(self) -> str:
|
|
14
|
-
"""
|
|
17
|
+
def _readable(self: Self) -> str:
|
|
18
|
+
"""Readable"""
|
|
15
19
|
return f'ReportFormat.{self.value}'
|
|
16
20
|
|
|
17
|
-
def __str__(self) -> str:
|
|
18
|
-
"""
|
|
21
|
+
def __str__(self: Self) -> str:
|
|
22
|
+
"""Readable property"""
|
|
19
23
|
return self._readable
|
|
20
24
|
|
|
21
|
-
def __repr__(self) -> str:
|
|
22
|
-
"""
|
|
25
|
+
def __repr__(self: Self) -> str:
|
|
26
|
+
"""Readable property"""
|
|
23
27
|
return self._readable
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
"""
|
|
1
|
+
"""Report header"""
|
|
2
|
+
|
|
2
3
|
import warnings
|
|
4
|
+
from typing import Self
|
|
3
5
|
|
|
4
6
|
from ..formatting.text_align import TextAlignment
|
|
5
7
|
|
|
@@ -21,7 +23,7 @@ class ReportHeader:
|
|
|
21
23
|
"""
|
|
22
24
|
|
|
23
25
|
def __init__(
|
|
24
|
-
self,
|
|
26
|
+
self: Self,
|
|
25
27
|
content: str,
|
|
26
28
|
width: int = None,
|
|
27
29
|
color: str = '#ffffff',
|
|
@@ -32,25 +34,25 @@ class ReportHeader:
|
|
|
32
34
|
self.content = content
|
|
33
35
|
|
|
34
36
|
if width is not None:
|
|
35
|
-
warnings.warn('width is deprecated, use width instead', DeprecationWarning)
|
|
37
|
+
warnings.warn('width is deprecated, use width instead', DeprecationWarning, stacklevel=2)
|
|
36
38
|
|
|
37
39
|
self.color = color
|
|
38
40
|
|
|
39
41
|
if text_color is not None:
|
|
40
|
-
warnings.warn('text_color is deprecated, use color instead', DeprecationWarning)
|
|
42
|
+
warnings.warn('text_color is deprecated, use color instead', DeprecationWarning, stacklevel=2)
|
|
41
43
|
|
|
42
44
|
self.align = align
|
|
43
45
|
self.bold = bold
|
|
44
46
|
|
|
45
47
|
@property
|
|
46
|
-
def _readable(self) -> str:
|
|
47
|
-
"""
|
|
48
|
+
def _readable(self: Self) -> str | None | bool:
|
|
49
|
+
"""Readable property"""
|
|
48
50
|
return f'ReportHeader(content={self.content})'
|
|
49
51
|
|
|
50
|
-
def __str__(self) -> str:
|
|
51
|
-
"""
|
|
52
|
+
def __str__(self: Self) -> str | None | bool:
|
|
53
|
+
"""Readable property"""
|
|
52
54
|
return self._readable
|
|
53
55
|
|
|
54
|
-
def __repr__(self) -> str:
|
|
55
|
-
"""
|
|
56
|
+
def __repr__(self: Self) -> str | None | bool:
|
|
57
|
+
"""Readable property"""
|
|
56
58
|
return self._readable
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
""" Report page """
|
|
2
|
+
from typing import List, Self
|
|
3
|
+
|
|
2
4
|
from .header import ReportHeader
|
|
3
5
|
from .row import ReportRow
|
|
4
6
|
|
|
@@ -14,10 +16,10 @@ class ReportPage:
|
|
|
14
16
|
"""
|
|
15
17
|
|
|
16
18
|
def __init__(
|
|
17
|
-
self,
|
|
19
|
+
self: Self,
|
|
18
20
|
name: str,
|
|
19
|
-
headers:
|
|
20
|
-
rows:
|
|
21
|
+
headers: List[ReportHeader],
|
|
22
|
+
rows: List[ReportRow],
|
|
21
23
|
freeze_header: bool = False,
|
|
22
24
|
) -> None:
|
|
23
25
|
self.name = name
|
|
@@ -26,15 +28,15 @@ class ReportPage:
|
|
|
26
28
|
self.freeze_header = freeze_header
|
|
27
29
|
|
|
28
30
|
@property
|
|
29
|
-
def _readable(self) -> str:
|
|
31
|
+
def _readable(self: Self) -> str | None | bool:
|
|
30
32
|
""" Readable property """
|
|
31
33
|
return f'ReportPage(name={self.name}, headers={self.headers}, rows={self.rows})'
|
|
32
34
|
|
|
33
|
-
def __str__(self) -> str:
|
|
35
|
+
def __str__(self: Self) -> str | None | bool:
|
|
34
36
|
""" Readable property """
|
|
35
37
|
return self._readable
|
|
36
38
|
|
|
37
|
-
def __repr__(self) -> str:
|
|
39
|
+
def __repr__(self: Self) -> str | None | bool:
|
|
38
40
|
""" Readable property """
|
|
39
41
|
return self._readable
|
|
40
42
|
|
|
@@ -48,11 +50,11 @@ class CustomReportPage:
|
|
|
48
50
|
- name : Name of the page. Length should be less than 60 characters
|
|
49
51
|
Methods:
|
|
50
52
|
- builder(Worksheet) -> None : Function to build the page
|
|
51
|
-
The builder receives a `Worksheet` object as an argument and shouldn't
|
|
53
|
+
The builder receives a `Worksheet` object as an argument and shouldn't
|
|
52
54
|
return anything.
|
|
53
55
|
"""
|
|
54
56
|
|
|
55
|
-
def __init__(self, name: str, builder: callable) -> None:
|
|
57
|
+
def __init__(self: Self, name: str, builder: callable) -> None:
|
|
56
58
|
""" Constructor """
|
|
57
59
|
self.name = name
|
|
58
60
|
|