示例#1
0
def get_file_name() -> str:
    """
    :return: generate file name from file format + file path
    """
    file_format = Arguments.get_format_of_file()
    customer_file_name = Arguments.get_first_file_name()
    return f'{file_format}/{customer_file_name}'
示例#2
0
def main():
    file_format = Arguments.get_format_of_file()
    try:
        if file_format == 'csv':
            first_argument = Arguments.get_first_file_name()
            second_argument = Arguments.get_second_file_name()

            csv_parser = CsvParser(first_argument, second_argument)

            customer_data = csv_parser.extract_customer_data()
            vehicle_data = csv_parser.extract_vehicle_data()

            customers = [Customer(**customer) for customer in customer_data]
            for customer in customers:
                vehicles = [
                    Vehicle(**vehicle) for vehicle in vehicle_data
                    if customer.id == vehicle.get('owner_id')
                ]
                customer.add_vehicles(vehicles)

                result = csv_parser.generate_json_file_structure(customer)
                csv_parser.save_data_as_json(result)

        elif file_format == 'xml':
            first_argument = Arguments.get_first_file_name()

            xml_parser = XmlParser(first_argument)

            customer_data = xml_parser.extract_customer_data()
            vehicle_data = xml_parser.extract_vehicle_data()

            current_customer = Customer(**customer_data)
            all_vehicles = [Vehicle(**vehicle) for vehicle in vehicle_data]
            current_customer.add_vehicles(all_vehicles)

            result = xml_parser.generate_json_file_structure(current_customer)
            xml_parser.save_data_as_json(result)
        else:
            raise NotImplemented('Not Implemented yet')
    except ParserException as e:
        logger.error(e)
    except Exception as e:
        logger.error(e)