62 lines
2.3 KiB
Python
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()
|