# !/usr/bin/env python
# -*- coding: utf-8 -*-
import csv
import typing as T
import logging
from csv import DictReader
from collections import OrderedDict
from src.pwcvalidator.Operators import *
from src.pwcvalidator.BaseValidators import NonMandatoryField
class PCW(T.NamedTuple):
field1: str
field2: str
@classmethod
def from_row(cls, row: dict):
#print(cls._field_types.items())
return cls(**{key: type_(row[key]) for key, type_ in cls._field_types.items()})
@staticmethod
def validate_csv(reader: DictReader) -> bool:
for index, row in enumerate(reader):
try:
PCW.from_row(row)
logging.error(f'{ERROR_MESSAGE} -- row_number: {index + 1}')
return False
return True
def csv_file(filepath: str):
with open(filepath) as file:
reader = csv.DictReader(file, delimiter=',')
for r in reader:
yield r
for i in csv_file("../test_csv.csv")
PCW.validate_csv(i)
IyAhL3Vzci9iaW4vZW52IHB5dGhvbgojIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQppbXBvcnQgY3N2CmltcG9ydCB0eXBpbmcgYXMgVAppbXBvcnQgbG9nZ2luZwpmcm9tIGNzdiBpbXBvcnQgRGljdFJlYWRlcgpmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBPcmRlcmVkRGljdApmcm9tIHNyYy5wd2N2YWxpZGF0b3IuT3BlcmF0b3JzIGltcG9ydCAqCmZyb20gc3JjLnB3Y3ZhbGlkYXRvci5CYXNlVmFsaWRhdG9ycyBpbXBvcnQgTm9uTWFuZGF0b3J5RmllbGQKCgpjbGFzcyBQQ1coVC5OYW1lZFR1cGxlKToKICAgIGZpZWxkMTogc3RyIAogICAgZmllbGQyOiBzdHIKCiAgICBAY2xhc3NtZXRob2QKICAgIGRlZiBmcm9tX3JvdyhjbHMsIHJvdzogZGljdCk6CiAgICAgICAgI3ByaW50KGNscy5fZmllbGRfdHlwZXMuaXRlbXMoKSkKICAgICAgICByZXR1cm4gY2xzKCoqe2tleTogdHlwZV8ocm93W2tleV0pIGZvciBrZXksIHR5cGVfIGluIGNscy5fZmllbGRfdHlwZXMuaXRlbXMoKX0pCgogICAgQHN0YXRpY21ldGhvZAogICAgZGVmIHZhbGlkYXRlX2NzdihyZWFkZXI6IERpY3RSZWFkZXIpIC0+IGJvb2w6CiAgICAgICAgZm9yIGluZGV4LCByb3cgaW4gZW51bWVyYXRlKHJlYWRlcik6CiAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgIFBDVy5mcm9tX3Jvdyhyb3cpCiAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgRVJST1JfTUVTU0FHRToKICAgICAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoZid7RVJST1JfTUVTU0FHRX0gLS0gcm93X251bWJlcjoge2luZGV4ICsgMX0nKQogICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgcmV0dXJuIFRydWUKCgpkZWYgY3N2X2ZpbGUoZmlsZXBhdGg6IHN0cik6CiAgICB3aXRoIG9wZW4oZmlsZXBhdGgpIGFzIGZpbGU6CiAgICAgICAgcmVhZGVyID0gY3N2LkRpY3RSZWFkZXIoZmlsZSwgZGVsaW1pdGVyPScsJykKICAgICAgICBmb3IgciBpbiByZWFkZXI6CiAgICAgICAgICAgIHlpZWxkIHIKCgoKZm9yIGkgaW4gY3N2X2ZpbGUoIi4uL3Rlc3RfY3N2LmNzdiIpCglQQ1cudmFsaWRhdGVfY3N2KGkpCgo=
Main.java:1: error: illegal character: '#'
# !/usr/bin/env python
^
Main.java:1: error: class, interface, or enum expected
# !/usr/bin/env python
^
Main.java:2: error: illegal character: '#'
# -*- coding: utf-8 -*-
^
Main.java:3: error: '.' expected
import csv
^
Main.java:4: error: ';' expected
import typing as T
^
Main.java:4: error: class, interface, or enum expected
import typing as T
^
Main.java:5: error: '.' expected
import logging
^
Main.java:6: error: ';' expected
from csv import DictReader
^
Main.java:6: error: '.' expected
from csv import DictReader
^
Main.java:7: error: ';' expected
from collections import OrderedDict
^
Main.java:7: error: '.' expected
from collections import OrderedDict
^
Main.java:8: error: ';' expected
from src.pwcvalidator.Operators import *
^
Main.java:8: error: <identifier> expected
from src.pwcvalidator.Operators import *
^
Main.java:9: error: ';' expected
from src.pwcvalidator.BaseValidators import NonMandatoryField
^
Main.java:9: error: '.' expected
from src.pwcvalidator.BaseValidators import NonMandatoryField
^
Main.java:12: error: ';' expected
class PCW(T.NamedTuple):
^
Main.java:12: error: class, interface, or enum expected
class PCW(T.NamedTuple):
^
Main.java:12: error: class, interface, or enum expected
class PCW(T.NamedTuple):
^
Main.java:17: error: class, interface, or enum expected
def from_row(cls, row: dict):
^
Main.java:18: error: illegal character: '#'
#print(cls._field_types.items())
^
Main.java:22: error: class, interface, or enum expected
def validate_csv(reader: DictReader) -> bool:
^
Main.java:27: error: unclosed character literal
logging.error(f'{ERROR_MESSAGE} -- row_number: {index + 1}')
^
Main.java:27: error: unclosed character literal
logging.error(f'{ERROR_MESSAGE} -- row_number: {index + 1}')
^
23 errors