added 'if debug' logic, df to excel now working, better print statements

Signed-off-by: Dipti <dipti.dhond@candelatech.com>
This commit is contained in:
Dipti
2021-02-16 14:52:34 -08:00
parent 27b0d65657
commit 1a90891a74
3 changed files with 33 additions and 31 deletions

View File

@@ -16,6 +16,7 @@ from LANforge import LFRequest
import LANforge.LFRequest
import csv
import pandas as pd
#import xlsxwriter
class LFCliBase:
@@ -624,27 +625,29 @@ class LFCliBase:
#================ Pandas Dataframe Functions ======================================
#takes any dataframe and returns the specified file extension of it
def df_to_file(self, dataframe=None, output_f=None):
def df_to_file(self, output_f=None,dataframe=None, save_path=None):
df = dataframe
if output_f == 'hdf':
return df.to_hdf(output_f, 'table', append=True)
if output_f == 'parquet':
return df.to_parquet(output_f, engine='pyarrow')
if output_f == 'png':
#pd.set_option("display.max_rows", None, "display.max_columns", None)
#print(df)
if output_f.lower() == 'hdf':
df.to_hdf(save_path, 'table', append=True)
if output_f.lower() == 'parquet':
df.to_parquet(save_path, engine='pyarrow')
if output_f.lower() == 'png':
fig = df.plot().get_figure()
return fig.savefig(output_f)
if output_f.lower() in ['excel', 'xlsx']:
return df.to_excel(output_f, index=False)
if output_f == 'df':
return df
if output_f == 'json':
return df.to_json(output_f)
if output_f == 'stata':
return df.to_stata(output_f)
if output_f == 'pickle':
return df.to_pickle(output_f)
if output_f == 'html':
return df.to_html(output_f)
fig.savefig(save_path)
if output_f.lower() == 'xlsx':
df.to_excel(save_path)
if output_f.lower() == 'df':
df
if output_f.lower() == 'json':
df.to_json(save_path)
if output_f.lower() == 'stata':
df.to_stata(save_path)
if output_f.lower() == 'pickle':
df.to_pickle(save_path)
if output_f.lower() == 'html':
df.to_html(save_path)
#takes any format of a file and returns a dataframe of it
def file_to_df(self,file_name):

View File

@@ -545,8 +545,9 @@ class Realm(LFCliBase):
return matched_map
def name_to_eid(self, eid):
self.logg(level="debug", mesg="name_to_eid: "+str(eid))
def name_to_eid(self, eid,debug=False):
if debug:
self.logg(level="debug", mesg="name_to_eid: "+str(eid))
if (type(eid) is list) or (type(eid) is tuple):
return eid
return LFUtils.name_to_eid(eid)
@@ -1206,6 +1207,7 @@ class L3CXProfile(LFCliBase):
#default save to csv first
if report_file.split('.')[-1] != 'csv':
report_file = report_file.replace(str(output_format),'csv',1)
print("Saving rolling data into..." + str(report_file))
#retrieve compared report if specified - turn into dataframe === under construction ===
if compared_report is not None:
@@ -1330,10 +1332,7 @@ class L3CXProfile(LFCliBase):
#df to final report file output if necessary
if output_format.lower() != 'csv':
dataframe_output = pd.read_csv(report_file)
final_file = self.df_to_file(dataframe=dataframe_output, output_f=output_format)
#save final file output
#print(report_file)
self.df_to_file(dataframe=pd.read_csv(report_file), output_f=output_format, save_path=report_file.replace('csv',output_format,1))
def refresh_cx(self):
@@ -1408,7 +1407,7 @@ class L3CXProfile(LFCliBase):
side_b_resource = side_b_info[1]
for port_name in side_a:
side_a_info = self.local_realm.name_to_eid(port_name)
side_a_info = self.local_realm.name_to_eid(port_name,debug=debug_)
side_a_shelf = side_a_info[0]
side_a_resource = side_a_info[1]
if port_name.find('.') < 0:
@@ -1491,14 +1490,14 @@ class L3CXProfile(LFCliBase):
})
elif type(side_b) == list and type(side_a) != list:
side_a_info = self.local_realm.name_to_eid(side_a)
side_a_info = self.local_realm.name_to_eid(side_a,debug=debug_)
side_a_shelf = side_a_info[0]
side_a_resource = side_a_info[1]
# side_a_name = side_a_info[2]
for port_name in side_b:
print(side_b)
side_b_info = self.local_realm.name_to_eid(port_name)
side_b_info = self.local_realm.name_to_eid(port_name,debug=debug_)
side_b_shelf = side_b_info[0]
side_b_resource = side_b_info[1]
side_b_name = side_b_info[2]

View File

@@ -281,7 +281,7 @@ python3 ./test_ipv4_variable_time.py
# in new folder based in current file's directory
if args.report_file is None:
new_file_path = str(datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S")).replace(':',
new_file_path = str(datetime.datetime.now().strftime("%Y-%m-%d-%H-h-%M-m-%S-s")).replace(':',
'-') + '-test_ipv4_variable_time' # create path name
try:
path = os.path.join('/home/lanforge/report-data/', new_file_path)
@@ -296,7 +296,7 @@ python3 ./test_ipv4_variable_time.py
report_f = str(path) + '/data.' + args.output_format
output = args.output_format
else:
print('Defaulting to csv data file output type, naming it data.csv.')
print('Not supporting this report format or cannot find report format provided. Defaulting to csv data file output type, naming it data.csv.')
report_f = str(path) + '/data.csv'
output = 'csv'
@@ -306,7 +306,7 @@ python3 ./test_ipv4_variable_time.py
output = str(args.report_file).split('.')[-1]
else:
output = args.output_format
print("Saving report data in ... " + report_f)
print("Saving final report data in ... " + report_f)
# Retrieve last data file
compared_rept = None