Exemple #1
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)
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)