forked from LiveCarta/LiveCartaMeta
first commit
This commit is contained in:
13
sources/file_types/AbstractParser.py
Normal file
13
sources/file_types/AbstractParser.py
Normal file
@@ -0,0 +1,13 @@
|
||||
from abc import ABC, abstractmethod
|
||||
from pydantic import Extra, BaseModel
|
||||
|
||||
|
||||
class AbstractParser(BaseModel, ABC):
|
||||
|
||||
|
||||
class Config:
|
||||
extra = Extra.allow
|
||||
|
||||
@abstractmethod
|
||||
def parse(self, source):
|
||||
pass
|
||||
12
sources/file_types/CsvParser.py
Normal file
12
sources/file_types/CsvParser.py
Normal file
@@ -0,0 +1,12 @@
|
||||
import csv
|
||||
|
||||
from sources.file_types.AbstractParser import AbstractParser
|
||||
|
||||
|
||||
class CsvParser(AbstractParser):
|
||||
|
||||
def parse(self, source):
|
||||
with open(source, 'r') as item:
|
||||
reader = csv.DictReader(item)
|
||||
for line in reader:
|
||||
yield line
|
||||
Reference in New Issue
Block a user