layrz-sdk 3.0.1__tar.gz → 3.0.3__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 (74) hide show
  1. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/PKG-INFO +1 -1
  2. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/__init__.py +3 -3
  3. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/charts/__init__.py +1 -0
  4. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/charts/line.py +52 -2
  5. layrz_sdk-3.0.3/layrz_sdk/entities/charts/render_technology.py +24 -0
  6. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/lcl/core.py +12 -1
  7. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk.egg-info/PKG-INFO +1 -1
  8. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk.egg-info/SOURCES.txt +1 -0
  9. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/pyproject.toml +1 -1
  10. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/LICENSE +0 -0
  11. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/README.md +0 -0
  12. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/__init__.py +0 -0
  13. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/broadcasts/__init__.py +0 -0
  14. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/broadcasts/request.py +0 -0
  15. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/broadcasts/response.py +0 -0
  16. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/broadcasts/result.py +0 -0
  17. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/broadcasts/service.py +0 -0
  18. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/broadcasts/status.py +0 -0
  19. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/cases/__init__.py +0 -0
  20. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/cases/case.py +0 -0
  21. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/cases/comment.py +0 -0
  22. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/cases/trigger.py +0 -0
  23. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/charts/alignment.py +0 -0
  24. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/charts/bar.py +0 -0
  25. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/charts/column.py +0 -0
  26. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/charts/configuration.py +0 -0
  27. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/charts/data_type.py +0 -0
  28. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/charts/exceptions.py +0 -0
  29. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/charts/html.py +0 -0
  30. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/charts/map.py +0 -0
  31. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/charts/number.py +0 -0
  32. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/charts/pie.py +0 -0
  33. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/charts/radar.py +0 -0
  34. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/charts/radial_bar.py +0 -0
  35. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/charts/scatter.py +0 -0
  36. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/charts/serie.py +0 -0
  37. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/charts/serie_type.py +0 -0
  38. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/charts/table.py +0 -0
  39. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/charts/timeline.py +0 -0
  40. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/checkpoints/__init__.py +0 -0
  41. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/checkpoints/checkpoint.py +0 -0
  42. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/checkpoints/geofence.py +0 -0
  43. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/checkpoints/waypoint.py +0 -0
  44. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/events/__init__.py +0 -0
  45. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/events/event.py +0 -0
  46. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/formatting/__init__.py +0 -0
  47. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/formatting/text_align.py +0 -0
  48. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/general/__init__.py +0 -0
  49. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/general/asset.py +0 -0
  50. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/general/asset_operation_mode.py +0 -0
  51. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/general/custom_field.py +0 -0
  52. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/general/device.py +0 -0
  53. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/general/sensor.py +0 -0
  54. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/general/user.py +0 -0
  55. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/repcom/__init__.py +0 -0
  56. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/repcom/transaction.py +0 -0
  57. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/reports/__init__.py +0 -0
  58. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/reports/col.py +0 -0
  59. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/reports/format.py +0 -0
  60. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/reports/header.py +0 -0
  61. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/reports/page.py +0 -0
  62. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/reports/report.py +0 -0
  63. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/reports/row.py +0 -0
  64. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/telemetry/__init__.py +0 -0
  65. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/telemetry/message.py +0 -0
  66. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/entities/telemetry/position.py +0 -0
  67. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/helpers/__init__.py +0 -0
  68. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/helpers/color.py +0 -0
  69. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk/lcl/__init__.py +0 -0
  70. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk.egg-info/dependency_links.txt +0 -0
  71. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk.egg-info/requires.txt +0 -0
  72. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/layrz_sdk.egg-info/top_level.txt +0 -0
  73. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/setup.cfg +0 -0
  74. {layrz_sdk-3.0.1 → layrz_sdk-3.0.3}/tests/test_lcl.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: layrz-sdk
3
- Version: 3.0.1
3
+ Version: 3.0.3
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>
@@ -5,9 +5,9 @@ from .broadcasts import (BroadcastRequest, BroadcastResponse, BroadcastResult, B
5
5
  from .cases import Case, CaseIgnoredStatus, CaseStatus, Comment, Trigger
6
6
  # Charts entities
7
7
  from .charts import (AreaChart, BarChart, ChartAlignment, ChartConfiguration, ChartDataSerie, ChartDataSerieType,
8
- ChartDataType, ChartException, ColumnChart, HTMLChart, LineChart, MapCenterType, MapChart,
9
- MapPoint, NumberChart, PieChart, RadarChart, RadialBarChart, ScatterChart, ScatterSerie,
10
- ScatterSerieItem, TableChart, TableHeader, TableRow, TimelineChart, TimelineSerie,
8
+ ChartDataType, ChartException, ChartRenderTechnology, ColumnChart, HTMLChart, LineChart,
9
+ MapCenterType, MapChart, MapPoint, NumberChart, PieChart, RadarChart, RadialBarChart, ScatterChart,
10
+ ScatterSerie, ScatterSerieItem, TableChart, TableHeader, TableRow, TimelineChart, TimelineSerie,
11
11
  TimelineSerieItem)
12
12
  # Checkpoints entities
13
13
  from .checkpoints import Checkpoint, Geofence, Waypoint
@@ -12,6 +12,7 @@ from .number import NumberChart
12
12
  from .pie import PieChart
13
13
  from .radar import RadarChart
14
14
  from .radial_bar import RadialBarChart
15
+ from .render_technology import ChartRenderTechnology
15
16
  from .scatter import ScatterChart, ScatterSerie, ScatterSerieItem
16
17
  from .serie import ChartDataSerie
17
18
  from .serie_type import ChartDataSerieType
@@ -3,6 +3,7 @@
3
3
  from .alignment import ChartAlignment
4
4
  from .data_type import ChartDataType
5
5
  from .exceptions import ChartException
6
+ from .render_technology import ChartRenderTechnology
6
7
  from .serie import ChartDataSerie
7
8
  from .serie_type import ChartDataSerieType
8
9
 
@@ -48,7 +49,7 @@ class LineChart:
48
49
  raise ChartException('align must be an instance of ChartAlignment')
49
50
  self.align = align
50
51
 
51
- def render(self, use_new_definition: bool = False) -> dict | list[dict]:
52
+ def render(self, technology: ChartRenderTechnology) -> dict | list[dict]:
52
53
  """
53
54
  Render chart to a graphic Library.
54
55
  We have two graphic libraries: GRAPHIC and CANVASJS.
@@ -57,18 +58,67 @@ class LineChart:
57
58
  CANVASJS is a Javascript chart library. This is the default option.
58
59
  """
59
60
 
60
- if use_new_definition:
61
+ if technology == ChartRenderTechnology.GRAPHIC:
61
62
  return {
62
63
  'library': 'GRAPHIC',
63
64
  'chart': 'LINE',
64
65
  'configuration': self._render_graphic(),
65
66
  }
67
+
68
+ if technology == ChartRenderTechnology.SYNCFUSION_FLUTTER_CHARTS:
69
+ return {
70
+ 'library': 'syncfusion_flutter_charts',
71
+ 'chart': 'LINE',
72
+ 'configuration': self._render_syncfusion_flutter_charts(),
73
+ }
74
+
66
75
  return {
67
76
  'library': 'CANVASJS',
68
77
  'chart': 'LINE',
69
78
  'configuration': self._render_canvasjs(),
70
79
  }
71
80
 
81
+ def _render_syncfusion_flutter_charts(self) -> list[dict]:
82
+ """
83
+ Converts the configuration of the chart to a Flutter library syncfusion_flutter_charts.
84
+ """
85
+ series = []
86
+
87
+ for serie in self.y_axis:
88
+ if serie.serie_type not in [ChartDataSerieType.LINE, ChartDataSerieType.AREA]:
89
+ continue
90
+
91
+ points = []
92
+
93
+ for i, value in enumerate(self.x_axis.data):
94
+ x_value = value.timestamp() if self.x_axis.data_type == ChartDataType.DATETIME else value
95
+ if not isinstance(x_value, (int, float)):
96
+ continue
97
+
98
+ y_value = serie.data[i]
99
+ if isinstance(y_value, bool):
100
+ if y_value:
101
+ y_value = 1
102
+ else:
103
+ y_value = 0
104
+
105
+ if not isinstance(y_value, (int, float)):
106
+ continue
107
+
108
+ points.append({
109
+ 'xAxis': x_value,
110
+ 'yAxis': y_value,
111
+ })
112
+
113
+ series.append({
114
+ 'color': serie.color,
115
+ 'values': points,
116
+ 'label': serie.label,
117
+ 'type': 'AREA' if serie.serie_type == ChartDataSerieType.AREA else 'LINE',
118
+ })
119
+
120
+ return series
121
+
72
122
  def _render_graphic(self) -> list[dict]:
73
123
  """
74
124
  Converts the configuration of the chart to a Flutter library Graphic.
@@ -0,0 +1,24 @@
1
+ """ Chart rendering technology / library """
2
+ from enum import Enum
3
+
4
+
5
+ class ChartRenderTechnology(Enum):
6
+ """
7
+ Chart Alignment
8
+ """
9
+ CANVAS_JS = 'CANVAS_JS'
10
+ GRAPHIC = 'GRAPHIC'
11
+ SYNCFUSION_FLUTTER_CHARTS = 'SYNCFUSION_FLUTTER_CHARTS'
12
+
13
+ @property
14
+ def _readable(self) -> str:
15
+ """ Readable """
16
+ return f'ChartRenderTechnology.{self.value}'
17
+
18
+ def __str__(self) -> str:
19
+ """ Readable property """
20
+ return self._readable
21
+
22
+ def __repr__(self) -> str:
23
+ """ Readable property """
24
+ return self._readable
@@ -112,6 +112,7 @@ class LclCore:
112
112
  'PRIMARY_DEVICE': self.PRIMARY_DEVICE,
113
113
  'SUBSTRING': self.SUBSTRING,
114
114
  'UNIX_TO_STR': self.UNIX_TO_STR,
115
+ 'VERSION': self.VERSION,
115
116
  }
116
117
  global_functions.update(additional_globals)
117
118
 
@@ -616,7 +617,7 @@ class LclCore:
616
617
  if len(args) != 3:
617
618
  return INVALID_NUMBER_OF_PARAMS.format(expected=3, received=len(args))
618
619
 
619
- if args[0] is None or args[1] is None or args[2] is None:
620
+ if args[0] is None:
620
621
  return None
621
622
 
622
623
  return args[1] if args[0] else args[2]
@@ -761,3 +762,13 @@ class LclCore:
761
762
  .fromtimestamp(int(args[0]), tz=zoneinfo.ZoneInfo('UTC'))\
762
763
  .astimezone(tz)\
763
764
  .strftime(args[1])
765
+
766
+ def VERSION(self, *args: list[Any]) -> str:
767
+ """ VERSION function """
768
+ if len(args) > 0:
769
+ return INVALID_NUMBER_OF_PARAMS.format(expected=0, received=len(args))
770
+
771
+ import importlib.metadata
772
+ version = importlib.metadata.version('layrz_sdk')
773
+
774
+ return f'LCL {version} - Layrz SDK Runtime'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: layrz-sdk
3
- Version: 3.0.1
3
+ Version: 3.0.3
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>
@@ -32,6 +32,7 @@ layrz_sdk/entities/charts/number.py
32
32
  layrz_sdk/entities/charts/pie.py
33
33
  layrz_sdk/entities/charts/radar.py
34
34
  layrz_sdk/entities/charts/radial_bar.py
35
+ layrz_sdk/entities/charts/render_technology.py
35
36
  layrz_sdk/entities/charts/scatter.py
36
37
  layrz_sdk/entities/charts/serie.py
37
38
  layrz_sdk/entities/charts/serie_type.py
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "layrz-sdk"
3
- version = "3.0.1"
3
+ version = "3.0.3"
4
4
  description = "Layrz SDK for Python"
5
5
  authors = [
6
6
  {name = "Golden M, Inc.", email = "software@goldenm.com"}
File without changes
File without changes
File without changes
File without changes