Skip to content
Snippets Groups Projects
Commit 4ebf9754 authored by Julien (jvoisin) Voisin's avatar Julien (jvoisin) Voisin
Browse files

Import the dynamic import system

The dynamic import should now work when MAT2 is
installed system-wide, either via the distribution's
packaging system, or via pip.
parent e71eff48
No related branches found
No related tags found
No related merge requests found
import glob
import os import os
import mimetypes import mimetypes
import importlib import importlib
import pkgutil
from typing import TypeVar, List from typing import TypeVar, List
from . import abstract, unsupported_extensions from . import abstract, unsupported_extensions
T = TypeVar('T', bound='abstract.AbstractParser') T = TypeVar('T', bound='abstract.AbstractParser')
# This loads every parser in a dynamic way def __load_all_parsers():
for module_loader, name, ispkg in pkgutil.walk_packages('.libmat2'): """ Loads every parser in a dynamic way """
if not name.startswith('libmat2.'): current_dir = os.path.dirname(__file__)
continue for name in glob.glob(os.path.join(current_dir, '*.py')):
elif name == 'libmat2.abstract': if name in ('abstract.py', '__init__.py'):
continue continue
importlib.import_module(name) basename = os.path.basename(name)
name, _ = os.path.splitext(basename)
importlib.import_module('.' + name, package='libmat2')
__load_all_parsers()
def _get_parsers() -> List[T]: def _get_parsers() -> List[T]:
""" Get all our parsers!""" """ Get all our parsers!"""
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment