From f95974b1e7c61f215bafa9c1eaa46cb8b6e6585e Mon Sep 17 00:00:00 2001 From: Dipti Date: Mon, 8 Feb 2021 19:27:33 -0800 Subject: [PATCH] addition of translation of csv to another format --- py-json/LANforge/lfcli_base.py | 41 ++++++++++++++++++++++++--- py-json/realm.py | 51 ++++++---------------------------- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/py-json/LANforge/lfcli_base.py b/py-json/LANforge/lfcli_base.py index 052a172f..34c5eb15 100644 --- a/py-json/LANforge/lfcli_base.py +++ b/py-json/LANforge/lfcli_base.py @@ -602,13 +602,46 @@ class LFCliBase: col_counter_per_line += 1 #================ Pandas Dataframe Functions ====================================== - def df_to_file(dataframe, file_name, file_type): - pass + + #takes any format of a file and returns a dataframe of it + def df_to_file(dataframe, outputfile_name_path): + df = dataframe + if output_file_type == 'hdf': + return df.to_hdf(output_file_type, 'table', append=True) + if output_file_type == 'parquet': + return df.to_parquet(output_file_type, engine='pyarrow') + if output_file_type == 'png': + fig = df.plot().get_figure() + return fig.savefig(output_file_type) + if output_file_type.lower() in ['excel', 'xlsx'] or report_file.split('.')[-1] == 'xlsx': + return df.to_excel(output_file_type, index=False) + if output_file_type == 'df': + return df + supported_formats = ['csv', 'json', 'stata', 'pickle','html'] + for format in supported_formats: + if output_file_type.lower() == format: + return exec('df.to_' + x + '("'+file_name'")') + + #takes any format of a file and returns a dataframe of it def file_to_df(file_type, file_name): pass + def append_df_to_file(dataframe, file_name): pass - def csv_to_other_format(csv, format): - pass + + #dataframe conversion + # df = pd.DataFrame(full_test_data_list) + # df=df[["Timestamp","Timestamp milliseconds", *header_row[:-2]]] + #compare previous data to current data + + #systeminfo = self.json_get('/') + + # df['LFGUI Release'] = systeminfo['VersionInfo']['BuildVersion'] + # df['Script Name'] = script_name + # df['Arguments'] = arguments + + # for x in ['LFGUI Release', 'Script Name', 'Arguments']: + # df[x][1:] = '' + # # ~class diff --git a/py-json/realm.py b/py-json/realm.py index 4c746bf3..7a99778a 100755 --- a/py-json/realm.py +++ b/py-json/realm.py @@ -1186,7 +1186,7 @@ class L3CXProfile(LFCliBase): raise ValueError("L3CXProfile::monitor wants a list of column names to monitor") if output_format is not None: if output_format.lower() != report_file.split('.')[-1]: - if output_format.lower() != 'excel': + if output_format.lower() != 'csv': raise ValueError('Filename %s does not match output format %s' % (report_file, output_format)) else: output_format = report_file.split('.')[-1] @@ -1258,39 +1258,9 @@ class L3CXProfile(LFCliBase): old_cx_rx_values = new_cx_rx_values time.sleep(monitor_interval) csvfile.close() + #here, do column manipulations + #here, - - #===================================== convert under this line to new function (function csv to other format)======================================= - - #dataframe conversion - # df = pd.DataFrame(full_test_data_list) - # df=df[["Timestamp","Timestamp milliseconds", *header_row[:-2]]] - #compare previous data to current data - - #systeminfo = self.json_get('/') - - # df['LFGUI Release'] = systeminfo['VersionInfo']['BuildVersion'] - # df['Script Name'] = script_name - # df['Arguments'] = arguments - - # for x in ['LFGUI Release', 'Script Name', 'Arguments']: - # df[x][1:] = '' - # if output_format == 'hdf': - # df.to_hdf(report_file, 'table', append=True) - # if output_format == 'parquet': - # df.to_parquet(report_file, engine='pyarrow') - # if output_format == 'png': - # fig = df.plot().get_figure() - # fig.savefig(report_file) - # if output_format.lower() in ['excel', 'xlsx'] or report_file.split('.')[-1] == 'xlsx': - # df.to_excel(report_file, index=False) - # if output_format == 'df': - # return df - # supported_formats = ['csv', 'json', 'stata', 'pickle','html'] - # for x in supported_formats: - # if output_format.lower() == x or report_file.split('.')[-1] == x: - # exec('df.to_' + x + '("'+report_file+'")') - def refresh_cx(self): for cx_name in self.created_cx.keys(): @@ -1709,20 +1679,16 @@ class L4CXProfile(LFCliBase): else: output_format = report_file.split('.')[-1] - # Step 1, column names + # Step 1 - Assign column names - fields=None if col_names is not None and len(col_names) > 0: - fields = ",".join(col_names) header_row=col_names - if debug: - print(fields) else: header_row=list((list(self.json_get("/layer4/all")['endpoint'][0].values())[0].keys())) - if debug: - print(header_row) + if debug: + print(header_row) - # Step 2, monitor columns, + # Step 2 - Monitor columns start_time = datetime.datetime.now() end_time = start_time + datetime.timedelta(seconds=duration_sec) @@ -1737,9 +1703,10 @@ class L4CXProfile(LFCliBase): timestamps = [] for test in range(1+iterations): while datetime.datetime.now() < end_time: - if fields is None: + if col_names is None: response = self.json_get("/layer4/all") else: + fields = ",".join(col_names) response = self.json_get("/layer4/%s?fields=%s" % (created_cx, fields)) if debug: print(response)