diff --git a/tools/lib/formats/default/__init__.py b/tools/lib/formats/default/__init__.py index f6b0a8fa..cf34cfaf 100644 --- a/tools/lib/formats/default/__init__.py +++ b/tools/lib/formats/default/__init__.py @@ -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 \ No newline at end of file +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 \ No newline at end of file