# Path: pytablereader/factory/_text.py
# class TableTextLoaderFactory(BaseTableLoaderFactory):
#     def create_from_path(self):
#         raise NotImplementedError()
# 
#     def create_from_format_name(self, format_name):
#         """
#         Create a file loader from a format name.
#         Supported file formats are as follows:
# 
#             ==========================  ======================================
#             Format name                 Loader
#             ==========================  ======================================
#             ``"csv"``                   :py:class:`~.CsvTableTextLoader`
#             ``"html"``                  :py:class:`~.HtmlTableTextLoader`
#             ``"json"``                  :py:class:`~.JsonTableTextLoader`
#             ``"json_lines"``            :py:class:`~.JsonLinesTableTextLoader`
#             ``"jsonl"``                 :py:class:`~.JsonLinesTableTextLoader`
#             ``"ldjson"``                :py:class:`~.JsonLinesTableTextLoader`
#             ``"ltsv"``                  :py:class:`~.LtsvTableTextLoader`
#             ``"markdown"``              :py:class:`~.MarkdownTableTextLoader`
#             ``"mediawiki"``             :py:class:`~.MediaWikiTableTextLoader`
#             ``"ndjson"``                :py:class:`~.JsonLinesTableTextLoader`
#             ``"ssv"``                   :py:class:`~.CsvTableTextLoader`
#             ``"tsv"``                   :py:class:`~.TsvTableTextLoader`
#             ==========================  ======================================
# 
#         :param str format_name: Format name string (case insensitive).
#         :return: Loader that coincide with the ``format_name``:
#         :raises pytablereader.LoaderNotFoundError:
#             |LoaderNotFoundError_desc| the format.
#         :raises TypeError: If ``format_name`` is not a string.
#         """
# 
#         loader = self._create_from_format_name(format_name)
# 
#         logger.debug(f"TableTextLoaderFactory: name={format_name}, loader={loader.format_name}")
# 
#         return loader
# 
#     def _get_common_loader_mapping(self):
#         return {
#             "csv": CsvTableTextLoader,
#             "html": HtmlTableTextLoader,
#             "json": JsonTableTextLoader,
#             "jsonl": JsonLinesTableTextLoader,
#             "ldjson": JsonLinesTableTextLoader,
#             "ltsv": LtsvTableTextLoader,
#             "ndjson": JsonLinesTableTextLoader,
#             "tsv": TsvTableTextLoader,
#         }
# 
#     def _get_extension_loader_mapping(self):
#         """
#         :return: Mappings of format-extension and loader class.
#         :rtype: dict
#         """
# 
#         loader_table = self._get_common_loader_mapping()
#         loader_table.update({"htm": HtmlTableTextLoader, "md": MarkdownTableTextLoader})
# 
#         return loader_table
# 
#     def _get_format_name_loader_mapping(self):
#         """
#         :return: Mappings of format-name and loader class.
#         :rtype: dict
#         """
# 
#         loader_table = self._get_common_loader_mapping()
#         loader_table.update(
#             {
#                 "json_lines": JsonLinesTableTextLoader,
#                 "markdown": MarkdownTableTextLoader,
#                 "mediawiki": MediaWikiTableTextLoader,
#                 "ssv": CsvTableTextLoader,
#             }
#         )
# 
#         return loader_table
# 
# Path: pytablereader/loadermanager/_base.py
# class TableLoaderManager(TableLoaderInterface):
#     def __init__(self, loader):
#         self.__loader = loader
# 
#     @property
#     def loader(self):
#         return self.__loader
# 
#     @property
#     def format_name(self):
#         return self.__loader.format_name
# 
#     @property
#     def source_type(self):
#         return self.__loader.source_type
# 
#     @property
#     def table_name(self):
#         return self.__loader.table_name
# 
#     @table_name.setter
#     def table_name(self, value):
#         self.__loader.table_name = value
# 
#     @property
#     def encoding(self):
#         try:
#             return self.__loader.encoding
#         except AttributeError:
#             return None
# 
#     @encoding.setter
#     def encoding(self, codec_name):
#         self.__loader.encoding = codec_name
# 
#     @property
#     def type_hints(self):
#         return self.__loader.type_hints
# 
#     @type_hints.setter
#     def type_hints(self, value):
#         self.__loader.type_hints = value
# 
#     def load(self):
#         return self.__loader.load()
# 
#     def inc_table_count(self):
#         self.__loader.inc_table_count()


from typing import Optional, Sequence
from ..factory import TableTextLoaderFactory
from ._base import TableLoaderManager
import typepy
    def get_format_names(cls) -> Sequence[str]:
        """
        :return:
            Available format names. These names can use by
            :py:class:`.TableTextLoader` class constructor.
        :rtype: list

        :Example:
            .. code:: python

                >>> from pytablereader import TableTextLoader
                >>> for format_name in TableTextLoader.get_format_names():
                ...     print(format_name)
                ...
                csv
                excel
                html
                json
                json_lines
                jsonl
                ldjson
                ltsv
                markdown
                mediawiki
                ndjson
                sqlite
                ssv
                tsv
        """


# Path: pytablereader/factory/_text.py
# class TableTextLoaderFactory(BaseTableLoaderFactory):
#     def create_from_path(self):
#         raise NotImplementedError()
# 
#     def create_from_format_name(self, format_name):
#         """
#         Create a file loader from a format name.
#         Supported file formats are as follows:
# 
#             ==========================  ======================================
#             Format name                 Loader
#             ==========================  ======================================
#             ``"csv"``                   :py:class:`~.CsvTableTextLoader`
#             ``"html"``                  :py:class:`~.HtmlTableTextLoader`
#             ``"json"``                  :py:class:`~.JsonTableTextLoader`
#             ``"json_lines"``            :py:class:`~.JsonLinesTableTextLoader`
#             ``"jsonl"``                 :py:class:`~.JsonLinesTableTextLoader`
#             ``"ldjson"``                :py:class:`~.JsonLinesTableTextLoader`
#             ``"ltsv"``                  :py:class:`~.LtsvTableTextLoader`
#             ``"markdown"``              :py:class:`~.MarkdownTableTextLoader`
#             ``"mediawiki"``             :py:class:`~.MediaWikiTableTextLoader`
#             ``"ndjson"``                :py:class:`~.JsonLinesTableTextLoader`
#             ``"ssv"``                   :py:class:`~.CsvTableTextLoader`
#             ``"tsv"``                   :py:class:`~.TsvTableTextLoader`
#             ==========================  ======================================
# 
#         :param str format_name: Format name string (case insensitive).
#         :return: Loader that coincide with the ``format_name``:
#         :raises pytablereader.LoaderNotFoundError:
#             |LoaderNotFoundError_desc| the format.
#         :raises TypeError: If ``format_name`` is not a string.
#         """
# 
#         loader = self._create_from_format_name(format_name)
# 
#         logger.debug(f"TableTextLoaderFactory: name={format_name}, loader={loader.format_name}")
# 
#         return loader
# 
#     def _get_common_loader_mapping(self):
#         return {
#             "csv": CsvTableTextLoader,
#             "html": HtmlTableTextLoader,
#             "json": JsonTableTextLoader,
#             "jsonl": JsonLinesTableTextLoader,
#             "ldjson": JsonLinesTableTextLoader,
#             "ltsv": LtsvTableTextLoader,
#             "ndjson": JsonLinesTableTextLoader,
#             "tsv": TsvTableTextLoader,
#         }
# 
#     def _get_extension_loader_mapping(self):
#         """
#         :return: Mappings of format-extension and loader class.
#         :rtype: dict
#         """
# 
#         loader_table = self._get_common_loader_mapping()
#         loader_table.update({"htm": HtmlTableTextLoader, "md": MarkdownTableTextLoader})
# 
#         return loader_table
# 
#     def _get_format_name_loader_mapping(self):
#         """
#         :return: Mappings of format-name and loader class.
#         :rtype: dict
#         """
# 
#         loader_table = self._get_common_loader_mapping()
#         loader_table.update(
#             {
#                 "json_lines": JsonLinesTableTextLoader,
#                 "markdown": MarkdownTableTextLoader,
#                 "mediawiki": MediaWikiTableTextLoader,
#                 "ssv": CsvTableTextLoader,
#             }
#         )
# 
#         return loader_table
# 
# Path: pytablereader/loadermanager/_base.py
# class TableLoaderManager(TableLoaderInterface):
#     def __init__(self, loader):
#         self.__loader = loader
# 
#     @property
#     def loader(self):
#         return self.__loader
# 
#     @property
#     def format_name(self):
#         return self.__loader.format_name
# 
#     @property
#     def source_type(self):
#         return self.__loader.source_type
# 
#     @property
#     def table_name(self):
#         return self.__loader.table_name
# 
#     @table_name.setter
#     def table_name(self, value):
#         self.__loader.table_name = value
# 
#     @property
#     def encoding(self):
#         try:
#             return self.__loader.encoding
#         except AttributeError:
#             return None
# 
#     @encoding.setter
#     def encoding(self, codec_name):
#         self.__loader.encoding = codec_name
# 
#     @property
#     def type_hints(self):
#         return self.__loader.type_hints
# 
#     @type_hints.setter
#     def type_hints(self, value):
#         self.__loader.type_hints = value
# 
#     def load(self):
#         return self.__loader.load()
# 
#     def inc_table_count(self):
#         self.__loader.inc_table_count()


# Path: pytablereader/loadermanager/_text.py
from typing import Optional, Sequence
from ..factory import TableTextLoaderFactory
from ._base import TableLoaderManager
import typepy

    def get_format_names(cls) -> Sequence[str]:
        """
        :return:
            Available format names. These names can use by
            :py:class:`.TableTextLoader` class constructor.
        :rtype: list

        :Example:
            .. code:: python

                >>> from pytablereader import TableTextLoader
                >>> for format_name in TableTextLoader.get_format_names():
                ...     print(format_name)
                ...
                csv
                excel
                html
                json
                json_lines
                jsonl
                ldjson
                ltsv
                markdown
                mediawiki
                ndjson
                sqlite
                ssv
                tsv
        """


        return TableTextLoaderFactory("dummy").get_format_names()