From afeb3753a80bfd43ae1419b77b15d318c709708d Mon Sep 17 00:00:00 2001 From: jvoisin Date: Tue, 3 Apr 2018 23:57:13 +0200 Subject: Improve the cli - Implement the `-l` option - The help is now more awesome --- src/parser_factory.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'src/parser_factory.py') diff --git a/src/parser_factory.py b/src/parser_factory.py index 770f17c..7ce4246 100644 --- a/src/parser_factory.py +++ b/src/parser_factory.py @@ -16,12 +16,17 @@ for module_loader, name, ispkg in pkgutil.walk_packages('.src'): continue importlib.import_module(name) +def _get_parsers() -> list: + """ Get all our parsers!""" + def __get_parsers(cls): + return cls.__subclasses__() + \ + [g for s in cls.__subclasses__() for g in __get_parsers(s)] + return __get_parsers(abstract.AbstractParser) + def get_parser(filename: str) -> (T, str): mtype, _ = mimetypes.guess_type(filename) - def get_subclasses(cls): - return cls.__subclasses__() + \ - [g for s in cls.__subclasses__() for g in get_subclasses(s)] - for c in get_subclasses(abstract.AbstractParser): + + for c in _get_parsers(): if mtype in c.mimetypes: return c(filename), mtype return None, mtype -- cgit v1.3