Source code for pytablereader.sqlite.core

"""
.. codeauthor:: Tsuyoshi Hombashi <tsuyoshi.hombashi@gmail.com>
"""

from .._constant import TableNameTemplate as tnt
from .._validator import FileValidator
from ..interface import AbstractTableReader
from .formatter import SqliteTableFormatter


[docs]class SqliteFileLoader(AbstractTableReader): """ A file loader class to extract tabular data from SQLite database files. :param str file_path: Path to the loading SQLite database file. .. py:attribute:: table_name Table name string. Defaults to ``%(filename)s_%(key)s``. :Dependency Packages: - `SimpleSQLite <https://github.com/thombashi/SimpleSQLite>`__ """ @property def format_name(self): return "sqlite" def __init__(self, file_path=None, quoting_flags=None, type_hints=None, type_hint_rules=None): super().__init__(file_path, quoting_flags, type_hints, type_hint_rules) self._validator = FileValidator(file_path)
[docs] def load(self): """ Extract tabular data as |TableData| instances from a SQLite database file. |load_source_desc_file| :return: Loaded table data iterator. |load_table_name_desc| =================== ============================================== Format specifier Value after the replacement =================== ============================================== ``%(filename)s`` |filename_desc| ``%(key)s`` ``%(format_name)s%(format_id)s`` ``%(format_name)s`` ``"sqlite"`` ``%(format_id)s`` |format_id_desc| ``%(global_id)s`` |global_id| =================== ============================================== :rtype: |TableData| iterator :raises pytablereader.DataError: If the SQLite database file data is invalid or empty. """ self._validate() formatter = SqliteTableFormatter(self.source) formatter.accept(self) return formatter.to_table_data()
def _get_default_table_name_template(self): return f"{tnt.FORMAT_NAME:s}{tnt.FORMAT_ID:s}"