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 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!"""
......
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