diff --git a/libmat2/parser_factory.py b/libmat2/parser_factory.py index 65f94ee70d6edcf0ef914e260bcf1d1a6b6071b2..2f6acc1e46b0ec756abc7f834481aba44c7aa784 100644 --- a/libmat2/parser_factory.py +++ b/libmat2/parser_factory.py @@ -1,22 +1,24 @@ +import glob import os import mimetypes import importlib -import pkgutil from typing import TypeVar, List from . import abstract, unsupported_extensions - T = TypeVar('T', bound='abstract.AbstractParser') -# This loads every parser in a dynamic way -for module_loader, name, ispkg in pkgutil.walk_packages('.libmat2'): - if not name.startswith('libmat2.'): - continue - elif name == 'libmat2.abstract': - continue - importlib.import_module(name) - +def __load_all_parsers(): + """ Loads every parser in a dynamic way """ + current_dir = os.path.dirname(__file__) + for name in glob.glob(os.path.join(current_dir, '*.py')): + if name in ('abstract.py', '__init__.py'): + continue + basename = os.path.basename(name) + name, _ = os.path.splitext(basename) + importlib.import_module('.' + name, package='libmat2') + +__load_all_parsers() def _get_parsers() -> List[T]: """ Get all our parsers!"""