summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoic Dachary2018-04-03 00:05:03 +0200
committerjvoisin2018-04-03 21:27:38 +0200
commit76f25212d1eef99c360b0a50cd5b88c117acf278 (patch)
tree2ed8cfed3cdff42b22095dce814d86e0b264d53b
parent04a0032e9fef6453b293cbba1464125662eba776 (diff)
get_parse needs to explore subclasses recusively
-rw-r--r--src/parser_factory.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/parser_factory.py b/src/parser_factory.py
index 7fd42d7..770f17c 100644
--- a/src/parser_factory.py
+++ b/src/parser_factory.py
@@ -18,7 +18,10 @@ for module_loader, name, ispkg in pkgutil.walk_packages('.src'):
18 18
19def get_parser(filename: str) -> (T, str): 19def get_parser(filename: str) -> (T, str):
20 mtype, _ = mimetypes.guess_type(filename) 20 mtype, _ = mimetypes.guess_type(filename)
21 for c in abstract.AbstractParser.__subclasses__(): 21 def get_subclasses(cls):
22 return cls.__subclasses__() + \
23 [g for s in cls.__subclasses__() for g in get_subclasses(s)]
24 for c in get_subclasses(abstract.AbstractParser):
22 if mtype in c.mimetypes: 25 if mtype in c.mimetypes:
23 return c(filename), mtype 26 return c(filename), mtype
24 return None, mtype 27 return None, mtype