layrz-sdk 2.0.1__py3-none-any.whl → 2.0.3__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.

@@ -1,11 +1,13 @@
1
1
  """ Report formats """
2
2
  from enum import Enum
3
3
 
4
+
4
5
  class ReportFormat(Enum):
5
6
  """
6
7
  Report format definition.
7
8
  """
8
9
  MICROSOFT_EXCEL = 'MICROSOFT_EXCEL'
10
+ JSON = 'JSON'
9
11
 
10
12
  @property
11
13
  def __readable(self):
@@ -1,8 +1,12 @@
1
1
  """ Report class """
2
2
  import time
3
+
3
4
  import xlsxwriter
5
+
4
6
  from .col import ReportDataType
5
7
  from .format import ReportFormat
8
+
9
+
6
10
  class Report:
7
11
  """
8
12
  Report definition
@@ -13,6 +17,7 @@ class Report:
13
17
  pages (list(ReportPage)): List of pages to append into report
14
18
  export_format (ReportFormat): Format to export the report
15
19
  """
20
+
16
21
  def __init__(self, name, pages, export_format):
17
22
  self.__name = name
18
23
  self.__pages = pages
@@ -55,9 +60,48 @@ class Report:
55
60
  """ Export report to file """
56
61
  if self.export_format == ReportFormat.MICROSOFT_EXCEL:
57
62
  return self.__export_xlsx(path)
63
+ elif self.export_format == ReportFormat.JSON:
64
+ return self.__export_json()
58
65
  else:
59
66
  raise Exception(f'Unsupported export format: {self.export_format}')
60
67
 
68
+ def export_as_json(self):
69
+ """ Returns the report as a JSON dict"""
70
+ return self.__export_json()
71
+
72
+ def __export_json(self):
73
+ """ Returns a JSON dict of the report"""
74
+ json_pages = []
75
+ for page in self.pages:
76
+ headers = []
77
+ for header in page.headers:
78
+ headers.append({
79
+ 'content': header.content,
80
+ 'text_color': header.text_color,
81
+ 'color': header.color,
82
+ })
83
+ rows = []
84
+ for row in page.rows:
85
+ cells = []
86
+ for cell in row.content:
87
+ cells.append({
88
+ 'content': cell.content,
89
+ 'text_color': cell.text_color,
90
+ 'color': cell.color,
91
+ 'data_type': cell.data_type.value,
92
+ })
93
+ rows.append({'content': cells})
94
+ json_pages.append({
95
+ 'name': page.name,
96
+ 'headers': headers,
97
+ 'rows': rows,
98
+ })
99
+
100
+ return {
101
+ 'name': self.name,
102
+ 'pages': json_pages,
103
+ }
104
+
61
105
  def __export_xlsx(self, path):
62
106
  """ Export to Microsoft Excel (.xslx) """
63
107
 
@@ -109,7 +153,8 @@ class Report:
109
153
  style.update({'num_format': '0.00'})
110
154
  elif cell.data_type == ReportDataType.CURRENCY:
111
155
  value = float(cell.content)
112
- style.update({'num_format': f'"{cell.currency_symbol}" * #,##0.00;[Red]"{cell.currency_symbol}" * #,##0.00'})
156
+ style.update(
157
+ {'num_format': f'"{cell.currency_symbol}" * #,##0.00;[Red]"{cell.currency_symbol}" * #,##0.00'})
113
158
  else:
114
159
  value = cell.content
115
160
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: layrz-sdk
3
- Version: 2.0.1
3
+ Version: 2.0.3
4
4
  Summary: Layrz SDK
5
5
  Home-page: https://gitlab.com/layrz-software/libraries/layrz-sdk
6
6
  Author: Layrz
@@ -1,4 +1,4 @@
1
- layrz_sdk-2.0.1-py3.11-nspkg.pth,sha256=MNZOBc4slk3Y4bwVpQCN6pJyMwajK1uiAAaOOWDG7d8,534
1
+ layrz_sdk-2.0.3-py3.11-nspkg.pth,sha256=MNZOBc4slk3Y4bwVpQCN6pJyMwajK1uiAAaOOWDG7d8,534
2
2
  layrz/sdk/__init__.py,sha256=Am2QkkucYd98jo7Sg-uWMzaWIxX7ZZBWT4fl_tC_a3A,17
3
3
  layrz/sdk/test.py,sha256=ukcbEysgvi07wsrq_T9JHuIvJBTHce9CuTag3gXz6sE,18
4
4
  layrz/sdk/entities/__init__.py,sha256=YsYX1AtWx7VprfFHIw1yrdo2hig6_h0WBeNpT_4Bnfw,461
@@ -50,10 +50,10 @@ layrz/sdk/entities/repcom/__init__.py,sha256=66jv2MenHXtrs9bDynTpp3YhmZLLNH-8yiH
50
50
  layrz/sdk/entities/repcom/transaction.py,sha256=-qWWJLmSa9ZVCFJ1z73tbDDxJ2iz9dPHAjRDULbK56g,2653
51
51
  layrz/sdk/entities/reports/__init__.py,sha256=nY6klvGq99yf6VP_cQRSwq0u0sTXQ501ho6MyhnlHtk,209
52
52
  layrz/sdk/entities/reports/col.py,sha256=7xkzJHJE15BsTDtsILgIqegPhPmmMPcz8oOImb8hz68,2396
53
- layrz/sdk/entities/reports/format.py,sha256=Oho9enbePj7tEKGWSsy5Mrr09T-egKOGUvbgjKywd2w,407
53
+ layrz/sdk/entities/reports/format.py,sha256=g9TigTMIonoszqcIH-lteXI0tOvMl53AaDh1iISQ2fc,424
54
54
  layrz/sdk/entities/reports/header.py,sha256=EsftzWVkpgeLXhtGHLUUnWU0xma6nj1fGGhr9PKDvDs,1427
55
55
  layrz/sdk/entities/reports/page.py,sha256=HNijfo5fjgfVNi37c4dukLt986quT_wJstGIKUMbi1c,990
56
- layrz/sdk/entities/reports/report.py,sha256=2lTQVBELOHfIM8wL_nIFr8_MSqfyo4BHGbEhn_J7Uwg,3882
56
+ layrz/sdk/entities/reports/report.py,sha256=1U415YGgizse8eZmWmMwFB8TVjN32teEOqYFhNr4UaM,4933
57
57
  layrz/sdk/entities/reports/row.py,sha256=xDpBFCIb1ZY_Qc-Zs-9V0wDS-eGn1PmlJZpfiLeyZQE,1006
58
58
  layrz/sdk/entities/telemetry/__init__.py,sha256=Vi8CcmGsU6L1beWf4tG7JAh4b6B8Y4jY3xRqxaDvjm8,77
59
59
  layrz/sdk/entities/telemetry/message.py,sha256=-Pn02Gw-m4RkhzOrmmHfSj1onG-RmjmGy88mz4iBRgg,1208
@@ -62,9 +62,9 @@ layrz/sdk/helpers/__init__.py,sha256=h_C2SaMtW6seM5EQYjpyL1BLZOg5-ixqFzrejtS5IVQ
62
62
  layrz/sdk/helpers/color.py,sha256=w0JM9QiPcbcG91C0hcRMelh8WBmkns2Fr5bT5AFNUYw,1049
63
63
  layrz/sdk/lcl/__init__.py,sha256=ZgyOQN7o1Oagc04zJ5HRbzH6BPXXpYQaoiz_PRQsmRU,44
64
64
  layrz/sdk/lcl/core.py,sha256=Ls1nIYEhrrC0Eb0FEvu_5XGuVyUGOW2RheL3eaih4Sw,19560
65
- layrz_sdk-2.0.1.dist-info/LICENSE,sha256=vkKQGO9Zx8ROtjnsM_NU0Q9OWIVmsPdrR55pAzpf-Pc,1052
66
- layrz_sdk-2.0.1.dist-info/METADATA,sha256=JjywBomhY-jJCStko31_cqIOypmmAqxQFr6RuJF53NI,1288
67
- layrz_sdk-2.0.1.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
68
- layrz_sdk-2.0.1.dist-info/namespace_packages.txt,sha256=3T3zjRGOIP0hjf8rP2FlFk9qIO5l-UZirK4cAkD-VFg,6
69
- layrz_sdk-2.0.1.dist-info/top_level.txt,sha256=3T3zjRGOIP0hjf8rP2FlFk9qIO5l-UZirK4cAkD-VFg,6
70
- layrz_sdk-2.0.1.dist-info/RECORD,,
65
+ layrz_sdk-2.0.3.dist-info/LICENSE,sha256=vkKQGO9Zx8ROtjnsM_NU0Q9OWIVmsPdrR55pAzpf-Pc,1052
66
+ layrz_sdk-2.0.3.dist-info/METADATA,sha256=uwNF04xL2skKznWFHBtzgjzZ6R1MZkh3Unu_mDdJZVo,1288
67
+ layrz_sdk-2.0.3.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
68
+ layrz_sdk-2.0.3.dist-info/namespace_packages.txt,sha256=3T3zjRGOIP0hjf8rP2FlFk9qIO5l-UZirK4cAkD-VFg,6
69
+ layrz_sdk-2.0.3.dist-info/top_level.txt,sha256=3T3zjRGOIP0hjf8rP2FlFk9qIO5l-UZirK4cAkD-VFg,6
70
+ layrz_sdk-2.0.3.dist-info/RECORD,,