Files
csv-loader-generics-present…/loader_1_simple.py
Eden Kirin 66c03b9179 CSV Loader
2023-02-16 15:45:07 +01:00

49 lines
1.0 KiB
Python

import csv
from enum import IntEnum
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
is_active: bool
class Config(CSVRowDefaultConfig):
bool_value_pair = BoolValuePair(true="YES", false="NO")
def main():
with open("csv/assets.csv", "r") as f:
reader = csv.reader(f, 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()