10
0
mirror of https://github.com/LCPQ/QUESTDB_website.git synced 2024-07-22 18:57:38 +02: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 .columnHandler import columnHandler
from .doubleColumnHandler import doubleColumnHandler
from .TBEHandler import TBEHandler
from .doubleTBEHandler import doubleTBEHandler
from .exoticColumnHandler import exoticColumnHandler
from .fromXLSToLaTeXHandler import fromXLSToLaTeXHandler
from .CTHandlers import CT1Handler, CT2Handler
from inspect import isclass
from pkgutil import iter_modules
from pathlib import Path
from importlib import import_module
from ..formatHandlerBase import formatHandlerBase
# 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}")
# 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