10
0
mirror of https://github.com/LCPQ/QUESTDB_website.git synced 2024-12-25 22:03:49 +01:00

Dynamically import format handlers

This commit is contained in:
Mickaël Véril 2022-02-04 13:52:08 +01:00
parent 1bfc45de52
commit d08fb1da6e

View File

@ -1,8 +1,24 @@
from .lineHandler import lineHandler from inspect import isclass
from .columnHandler import columnHandler from pkgutil import iter_modules
from .doubleColumnHandler import doubleColumnHandler from pathlib import Path
from .TBEHandler import TBEHandler from importlib import import_module
from .doubleTBEHandler import doubleTBEHandler from ..formatHandlerBase import formatHandlerBase
from .exoticColumnHandler import exoticColumnHandler
from .fromXLSToLaTeXHandler import fromXLSToLaTeXHandler # iterate through the modules in the current package
from .CTHandlers import CT1Handler, CT2Handler package_dir = Path(__file__).resolve().parent
for (_, module_name, _) in iter_modules([package_dir]):
# import the module and iterate through its attributes
module = import_module(f"{__name__}.{module_name}")
# iterate through the modules in the current package
package_dir = Path(__file__).resolve().parent
for (_, module_name, _) in iter_modules([package_dir]):
# import the module and iterate through its attributes
module = import_module(f"{__name__}.{module_name}")
for attribute_name in dir(module):
attribute = getattr(module, attribute_name)
# if it's a format handler import it
if isclass(attribute) and issubclass(attribute, formatHandlerBase) and hasattr(attribute, '__formatName__'):
globals()[attribute_name] = attribute