Files
csv-loader-generics-present…/loader_5_from_list.py
2023-02-16 20:19:45 +01:00

62 lines
2.3 KiB
Python

import csv
from enum import IntEnum
import requests
from lib.csv_loader import CSVLoader, CSVRow
from lib.csv_loader.csv_loader import BoolValuePair, CSVRowDefaultConfig
class ActionEnum(IntEnum):
INSERT = 0
UPDATE = 1
DELETE = 2
class AssetRow(CSVRow):
asset_id: str
asset_action: ActionEnum
serial_number: str
brand_id: int
model_id: int
csv_content = [
'"asset_id";"asset_action";"serial_number";"brand_id";"model_id";"fiscal_device";"master_system_id";"uid";"data_type";"audit_id"',
'"kdHSqoiZhkeuTVBNxraN";0;619424146021142446798498081758;99;1153541;1;"SSsEStytXSjIsinUzftG";"06ce0fed-d80c-4752-8923-544da7c876b6";"CUMULATIVE";"NONE"',
'"jrHoRAenIJMUbCIPBtth";0;719320166058188715248485944107;814397;6;0;"";"";"";""',
'"tzfBwDrLbIDhWzlfHjLe";0;915703577452730298126736643045;51500;64746;0;"";"";"";""',
'"cAPRArDozeDakrTfnCPm";0;971562679443770830776578263954;6;724678;1;"MrFOJXhbwxrisNBpUzOh";"beb2380f-8852-451e-8365-87e6816292ce";"PERIOD";"ID106"',
'"tEmFxUedeCvOuKCpgmGu";0;938691817183552061187410560615;5163;4265946;0;"";"";"";""',
'"LWIMpOllWJtrJaooBaMP";0;614842602516041785255220888836;6;401143;1;"lCSFLItlCYbEhPnvIDSe";"eac6420e-7d1d-48e9-a601-13b9d6ca8f90";"CUMULATIVE";"ID102"',
'"ocRQOONQyixZasLsHyNO";0;706550829841828070469899744448;954;73;0;"";"";"";""',
'"vewYeIVZySKAUUkpieAx";0;363107851149183544404834214880;322377;2192890;1;"UfCZtXAnRIWTYJIahZKf";"87212d41-3793-4a78-9b3c-924ad6210cf5";"CUMULATIVE";"DA101"',
'"qzYCDCHvVPmdMThIMjUd";0;268178212822631478031448196246;5;86955;0;"";"";"";""',
'"ptMtXpAaKvsHTkijcrzl";0;452950079406792377275633884199;996;954395;0;"";"";"";""',
'"BZuEjftneISKQcVDEXeK";0;468342155909862741706527121608;312117372;546;0;"";"";"";"" ',
]
def main():
reader = csv.reader(csv_content, delimiter=";")
csv_loader = CSVLoader[AssetRow](
reader=reader,
output_model_cls=AssetRow,
has_header=True,
aggregate_errors=True,
)
result = csv_loader.read_rows()
"Results:"
for row in result.rows:
print(row)
if result.has_errors():
print("Errors:")
for error in result.errors:
print(f"Line: {error.line_number}: {error.original_error}")
if __name__ == "__main__":
main()