def main(): logging.basicConfig(level=logging.INFO) chapter(f" NORMAL START ", filler='=') chapter(f"Process arguments - configure") conf = configure() chapter(f"Load csv [{conf['inputfile']}]") input_data = DataTable(displayfield='Name') input_data.load_csv(conf['inputfile'], conf['delimiter'], conf['limit']) # input_data.show_fields(('Active', 'Name', 'Description')) input_data.show_fields() chapter(f"Remove unwanted records") input_data.remove_records({'Active': 'N'}) chapter(f"Replace some shizzle - newlines, semicolons, etc") # input_data.replace_in_field(field='Description', frompart='\n', topart='<br/>') input_data.replace_in_field(field='Description', frompart=';', topart='.') # input_data.show_fields(('Active', 'Name', 'Description')) chapter(f"Checking uniqueness of field Name") isUnique = input_data.is_unique_field(fieldname='Name') chapter(f"Add some extra fields") input_data.add_counter_field('gen-id', initialvalue=10001) input_data.copy_field(sourcefield='Description', newfield='gen-short-description') input_data.add_fixed_field('fix-text-1', 'from') input_data.add_combined_field(newfield='gen-subtitle', fieldstocombine=['Type', 'fix-text-1', 'Country'], delimiter=' ') chapter(f"Generate complex combined feature field from the feature fields") input_data.add_combined_features_field('combined-features', conf['featurelist']) # input_data.show_fields(('Name', 'Product', 'combined-features')) chapter(f"Combine the category fields into one category (list)field") input_data.add_fixed_field('fix-maincat', 'Inhabitants') input_data.add_combined_categories_field('combined-categories', conf['categorieslist']) # input_data.show_fields(('Name', 'Product', 'combined-categories')) chapter(f"Re-map fields for Prestashop") output_data = input_data.re_map_table(conf['finalfieldmap'], displayfield='NAME') chapter(f"Some tests - output to screen") output_data.show_fields(('UNIQUE-ID', 'NAME', 'TYPE', 'CATEGORIES', 'FEATURES')) # output_data.show_record('Bollie') isUnique = output_data.is_unique_field(fieldname='NAME') # Finally we write the resulting products csv file chapter(f"Writing resulting csv - [{conf['outputfile']}]") output_data.write_csv(conf['outputfile'], delimiter=';') chapter(f" NORMAL END ", filler='=') exit(0)
def main(): logging.basicConfig(level=logging.INFO) logging.info('=== NORMAL START ===' + '=' * 111) chapter(f"Process arguments - configure") conf = configure() pprint.pprint(conf, width=132, indent=10, depth=2) chapter(f"Load left csv file [{conf['left']}]") left_data = DataTable(displayfield=conf['keyfield']) left_data.load_csv(conf['left'], conf['fielddelimiter'], conf['limit']) # print(left_data.records) # left_data.show_fields() chapter(f"Load right csv file [{conf['right']}]") right_data = DataTable(displayfield=conf['keyfield']) right_data.load_csv(conf['right'], conf['fielddelimiter'], conf['limit']) # print(left_data.records) # right_data.show_fields(('Name', 'Category', 'Type')) chapter(f"Check key is unique in both files") if left_data.is_unique_field(conf['keyfield']): logging.info(f"[{conf['keyfield']}] is unique in left file - OK") else: logging.error( f"[{conf['keyfield']}] is NOT unique in left file - exiting") exit(3) if right_data.is_unique_field(conf['keyfield']): logging.info(f"[{conf['keyfield']}] is unique in right file - OK") else: logging.error( f"[{conf['keyfield']}] is NOT unique in right file - exiting") exit(3) chapter(f"Diff them csv files") diff = diff_data(left_data, right_data, conf['keyfield'], conf['fieldlist']) # print(diff) logging.info('=== NORMAL END ===' + '=' * 113) exit(0)