fork download
  1. # !/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import csv
  4. import typing as T
  5. import logging
  6. from csv import DictReader
  7. from collections import OrderedDict
  8. from src.pwcvalidator.Operators import *
  9. from src.pwcvalidator.BaseValidators import NonMandatoryField
  10.  
  11.  
  12. class PCW(T.NamedTuple):
  13. field1: str
  14. field2: str
  15.  
  16. @classmethod
  17. def from_row(cls, row: dict):
  18. #print(cls._field_types.items())
  19. return cls(**{key: type_(row[key]) for key, type_ in cls._field_types.items()})
  20.  
  21. @staticmethod
  22. def validate_csv(reader: DictReader) -> bool:
  23. for index, row in enumerate(reader):
  24. try:
  25. PCW.from_row(row)
  26. except Exception as ERROR_MESSAGE:
  27. logging.error(f'{ERROR_MESSAGE} -- row_number: {index + 1}')
  28. return False
  29. return True
  30.  
  31.  
  32. def csv_file(filepath: str):
  33. with open(filepath) as file:
  34. reader = csv.DictReader(file, delimiter=',')
  35. for r in reader:
  36. yield r
  37.  
  38.  
  39.  
  40. for i in csv_file("../test_csv.csv")
  41. PCW.validate_csv(i)
  42.  
  43.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
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
stdout
Standard output is empty