1+ import json
12import pyo3_rust
2-
3- import app .usecases .render_full_xlsx .single_reports .report_1 as report_1
4- import app .usecases .render_full_xlsx .single_reports .report_2 as report_2
5- import app .usecases .render_full_xlsx .single_reports .report_3 as report_3
6-
7- # import app.grpc_client_impl.grpc_client as grpc_client
3+ import app .usecases .render_full_xlsx .single_reports .cpu_system_usage as cpu_system_usage
4+ import app .usecases .render_full_xlsx .single_reports .cpu_user_usage as cpu_user_usage
85from app .grpc_client_impl .grpc_client import GRPCClientSingleton
96
10-
117def render_full_xlsx (date_from : int , date_to : int ):
12- grpc_client = GRPCClientSingleton .get_instance ()
8+ grpc_client = GRPCClientSingleton .get_instance ()
139 system_usage = grpc_client .get_cpu_system_usage (date_from = date_from , date_to = date_to )
1410 user_usage = grpc_client .get_cpu_user_usage (date_from = date_from , date_to = date_to )
1511
16- reports = [report_1 , report_2 , report_3 ]
12+ reports = [cpu_system_usage , cpu_user_usage ]
1713 report_paths = [r .__name__ for r in reports ]
1814
19- final_excel = pyo3_rust .render_parallel_xlsx (reports = report_paths , date_from = date_from , date_to = date_to )
15+ system_usage_json_str = map_get_cpu_system_usage_response_to_json (system_usage )
16+ user_usage_json_str = map_get_cpu_user_usage_response_to_json (user_usage ) # Create JSON for user usage
17+
18+ # Pass a list of JSON strings corresponding to the report paths
19+ data_list_json_str = [system_usage_json_str , user_usage_json_str ]
20+
21+ final_excel = pyo3_rust .render_parallel_xlsx (
22+ module_paths = report_paths ,
23+ date_from = date_from ,
24+ date_to = date_to ,
25+ data = json .dumps (data_list_json_str ) # Serialize the list of JSON strings
26+ )
2027
2128 if not isinstance (final_excel , bytes ):
2229 raise TypeError ("Expected bytes from Rust function, got {}" .format (type (final_excel )))
2330
24- # We can check if the .xlsx file was properly created.
2531 with open ("final_report.xlsx" , "wb" ) as f :
2632 f .write (final_excel )
2733
2834 return final_excel
35+
36+ def map_get_cpu_system_usage_response_to_json (system_usage ):
37+ usage_data = []
38+ for usage in system_usage .usages :
39+ usage_data .append ({
40+ "cpu" : usage .cpu ,
41+ "avg_usage" : usage .avg_usage ,
42+ "max_usage" : usage .max_usage ,
43+ "min_usage" : usage .min_usage ,
44+ })
45+ return json .dumps (usage_data )
46+
47+ def map_get_cpu_user_usage_response_to_json (user_usage ):
48+ usage_data = []
49+ for usage in user_usage .usages :
50+ usage_data .append ({
51+ "cpu" : usage .cpu ,
52+ "avg_usage" : usage .avg_usage ,
53+ "max_usage" : usage .max_usage ,
54+ "min_usage" : usage .min_usage ,
55+ })
56+ return json .dumps (usage_data )
0 commit comments