63 lines
1.6 KiB
Python
63 lines
1.6 KiB
Python
"""
|
|
pyexcel.parser
|
|
~~~~~~~~~~~~~~~~~~~
|
|
|
|
Extract tabular data from external file, stream or content
|
|
|
|
:copyright: (c) 2015-2025 by Onni Software Ltd.
|
|
:license: New BSD License
|
|
"""
|
|
|
|
from pyexcel.internal import garbagecollector as gc
|
|
|
|
|
|
class AbstractParser:
|
|
"""
|
|
Parsing data from tabular data such as excel file
|
|
"""
|
|
|
|
def __init__(self, file_type):
|
|
self._file_type = file_type
|
|
|
|
def parse_file(self, file_name, **keywords):
|
|
"""
|
|
Parse data from a physical file
|
|
"""
|
|
raise NotImplementedError("parse_file is not implemented")
|
|
|
|
def parse_file_stream(self, file_stream, **keywords):
|
|
"""
|
|
Parse data from a file stream
|
|
"""
|
|
raise NotImplementedError("parse_file_stream is not implemented")
|
|
|
|
def parse_file_content(self, file_content, **keywords):
|
|
"""
|
|
Parse data from a given file content
|
|
"""
|
|
raise NotImplementedError("parse_file_content is not implemented")
|
|
|
|
def _free_me_up_later(self, reader):
|
|
gc.append(reader)
|
|
|
|
|
|
class DbParser(AbstractParser):
|
|
"""
|
|
Change interface for db parser
|
|
"""
|
|
|
|
def parse_file(self, file_name, **keywords):
|
|
raise Exception("parse_file is not supported")
|
|
|
|
def parse_file_stream(self, file_stream, **keywords):
|
|
return self.parse_db(file_stream, **keywords)
|
|
|
|
def parse_file_content(self, file_content, **keywords):
|
|
raise Exception("parse_file_content is not supported")
|
|
|
|
def parse_db(self, argument, **keywords):
|
|
"""
|
|
Parse data from database
|
|
"""
|
|
raise NotImplementedError("parse_db is not implemented")
|