diff options
| author | jvoisin | 2018-03-20 01:20:11 +0100 |
|---|---|---|
| committer | jvoisin | 2018-03-20 01:20:11 +0100 |
| commit | d48dfc8e218c3e762a385f14d0c788115c2a72fa (patch) | |
| tree | aff82bc511fd7b7cf2d1f9ecf71665454558ab37 /src/parser_factory.py | |
| parent | 47c5d8b4862a70ca0f4acd0f9bfd408545277a82 (diff) | |
PNG support and automatic import!
Diffstat (limited to '')
| -rw-r--r-- | src/parser_factory.py | 11 |
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 @@ | |||
| 1 | import mimetypes | 1 | import mimetypes |
| 2 | import importlib | ||
| 3 | import pkgutil | ||
| 2 | 4 | ||
| 3 | from .parsers import abstract | 5 | from .parsers import abstract |
| 4 | from .parsers import * | 6 | |
| 7 | for 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 | ||
| 6 | def get_parser(filename: str): | 14 | def 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') | ||
