summaryrefslogtreecommitdiff
path: root/src/parser_factory.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser_factory.py')
-rw-r--r--src/parser_factory.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/parser_factory.py b/src/parser_factory.py
index a93595a..f4cf07b 100644
--- a/src/parser_factory.py
+++ b/src/parser_factory.py
@@ -1,10 +1,19 @@
1import mimetypes 1import mimetypes
2import importlib
3import pkgutil
2 4
3from .parsers import abstract 5from .parsers import abstract
4from .parsers import * 6
7for module_loader, name, ispkg in pkgutil.walk_packages('.src.parsers'):
8 if not name.startswith('src.parsers.'):
9 continue
10 elif name == 'src.parsers.abstract':
11 continue
12 importlib.import_module(name)
5 13
6def get_parser(filename: str): 14def get_parser(filename: str):
7 mtype, _ = mimetypes.guess_type(filename) 15 mtype, _ = mimetypes.guess_type(filename)
8 for c in abstract.AbstractParser.__subclasses__(): 16 for c in abstract.AbstractParser.__subclasses__():
9 if mtype in c.mimetypes: 17 if mtype in c.mimetypes:
10 return c(filename) 18 return c(filename)
19 print('Nope')