def data_processing_last(b_data, provider, dir_name, file_name, tab_col): dataMatrix = group_frame_by_duration_and_rate(formatDataFromBank(b_data, provider)) if dataMatrix: fileUtils.displayRates(tab_col, dataMatrix) return fileUtils.upToDate(file_name, dir_name, dataMatrix, tab_col) else: return None
def elantisLoanScraper(): print('ELANTIS SCRAPE PROCESSING ...') tab_col = ['PROVIDER ', 'PRODUCTID', 'LOAN TYPE', 'MIN AMT', 'MAX AMT', 'TERM', 'RATE'] data_matrix = formatDataFromBank(bankData(), 'ELANTIS') if data_matrix: fileUtils.displayRates(tab_col, data_matrix) return fileUtils.upToDate('elantis_rates', 'ELANTIS SCRAPE', data_matrix, tab_col) else: return None
def loanProcedure(pdt): print('BNPPF {} SCRAPE PROCESSING ...'.format(pdt)) tab_col = [ 'PROVIDER ', 'PRODUCTID', 'LOAN TYPE', 'MIN AMT', 'MAX AMT', 'MINTERM', 'MAXTERM', 'RATE' ] data_matrix = formatDataFromBank(pdt_bank_data(pdt), 'BNPPF') if data_matrix: fileUtils.displayRates(tab_col, data_matrix) return fileUtils.upToDate('bnp_{}_rates'.format(pdt.lower()), 'BNP SCRAPE', data_matrix, tab_col) else: return None
def compare_rate_and_notify(delta): message = [] # TC website rates and products tc_product_and_rates = get_tc_rate() for pdt in tc_product_and_rates: # correspond a product to the appropriate bank bank = product_to_bank(pdt) # compute the weighted rate if the bank has both apps if bank in android_bank_apps: if bank in ios_bank_apps: actual_rate = rate_computer(get_android_data(bank), get_ios_data(bank)) else: # else consider the unique rate actual_rate = get_android_data(bank)["rate"] elif bank in ios_bank_apps: actual_rate = get_ios_data(bank)["rate"] else: # if the bank is not present in any of the app repository actual_rate = None # if the difference btn the actual rate and the tc_web site rate gt delta if actual_rate and abs(actual_rate - tc_product_and_rates[pdt]) > delta: if not "{} .... NOT OK!".format(bank.lower()) in message: message += ["{} .... NOT OK!".format(bank.lower())] if not message: message += [ "", "APP RATINGS STATUS", "all app ratings ...................................OK!" ] else: message = [ "", "", "APP RATINGS STATUS WITH A DIFFERENCE OF MORE THAN: {}". format(delta), "" ] + message fileUtils.displayRates([ "APP", "ANDROID_RATINGS", "ANDROID_REVIEWS", "IOS_RATINGS", "IOS_REVIEWS", "WEIGHTED_RATINGS", "TOP COMPARE RATINGS" ], app_rate_frame()) return message
def processData(dataMatrix, tab_Column, directoryName, fileName): if dataMatrix: fileUtils.displayRates(tab_Column, dataMatrix) return fileUtils.upToDate(fileName, directoryName, dataMatrix, tab_Column) else: return None
def process_crf_data(dataMatrix, tab_Column, directoryName, fileName): data_to_display = fileUtils.createNewFrame(dataMatrix, fileUtils.getFileContentAsList(fileName, directoryName)) fileUtils.displayRates(tab_Column, data_to_display) return fileUtils.carrefourRatesUpdate(fileName, directoryName, dataMatrix, tab_Column, [])