Glider
Loading...
Searching...
No Matches
FormatManager.py
Go to the documentation of this file.
1# from pandas import ExcelFile, DataFrame
2from Validate import validate_data
3from ErrorHandler import ErrorHandler
4from TemplateManager import TemplateManager
5
7 def df_csv(*args):
8 """Executes full procedure
9
10 Args:
11 event (dict): is a dictionary with all client and sales information
12 type_format (str): format name
13 file (dict): features required by file
14 session (boto3 obj): AWS client connection
15 write_DF (class): mapper columns method
16 Returns: data_otto (pandas dataframe)
17 status (str)
18 """
19 event = args[0]
20 type_format = args[1]
21 file = args[2]
22 session = args[3]
23 write_DF = args[4]
24 try:
25 filename = file["file"]
26 s3_path_file = "s3://{bucket}/{key}/{filename}".format(bucket=event["bucket"][0], key=event["path"][0], filename=filename)
27 columns_csv = event["format"][type_format]["columns"]
28 data = TemplateManager.preprocessing(dir_file=s3_path_file, type_format=type_format, file_features=file, session=session, release_col=columns_csv[0]["value"])
29 print("ORIGINAL DATA \n {}".format(data.head()))
30 low = [x.lower() for x in data.columns.to_list()]
31 data.columns = low
32 # data = validate_data().validate_columns(data, columns_csv)
33 data_otto = write_DF.ftypes(data, columns_csv, type_format, filename)
34 data_otto["file"] = filename
35 status = "Ok"
36 return data_otto, status
37 except Exception as status:
38 return "File could not be loaded", status
39
40# class xlsManager:
41# def df_excel(event, s3_object, formats, file, write_DF): #s3_object=s3_object, formats=str, file=dict, write_DF=class
42# filename = file["file"]
43# sheet = file["sheet"]
44# delimiter = event["format"][formats]["delimiter"]
45# columns_xls = event["format"][formats]["columns"]
46# skip_rows = file["skip_rows"]
47# xls = ExcelFile(s3_object['Body'].read())
48# name = filename.split(".xls")
49# sheet_empty = 0
50# data = TemplateManager.preprocessing(xls, formats, sheet, delimiter, skip_rows)
51# print("ORIGINAL DATA \n {}".format(data.head()))
52# low = [x.lower() for x in data.columns.to_list()]
53# data.columns = low
54# data = validate_data().validate_columns(data, columns_xls)
55# # data = read_excel(xls, sheet_name=sheet, keep_default_na=False)
56# if len(data) == 0:
57# sheet_empty += 1
58# # print("sheet {} is empty".format(sheet))
59# return 0
60# else:
61# # write_DF.format_type(data, formats, filename)
62# data_otto = write_DF.ftypes(data, columns_xls, formats, filename)
63# filename = filename+"-"+sheet.replace(" ", "_")
64# data_otto["filename"] = filename
65# xls.close()
66# return data_otto, filename