summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xmain.py13
-rw-r--r--src/__init__.py6
-rw-r--r--src/parser_factory.py7
3 files changed, 17 insertions, 9 deletions
diff --git a/main.py b/main.py
index 0cda955..ab07641 100755
--- a/main.py
+++ b/main.py
@@ -8,7 +8,7 @@ import mimetypes
8import argparse 8import argparse
9import multiprocessing 9import multiprocessing
10 10
11from src import parser_factory 11from src import parser_factory, unsupported_extensions
12 12
13__version__ = '0.1.0' 13__version__ = '0.1.0'
14 14
@@ -74,8 +74,15 @@ def show_parsers():
74 print('[+] Supported formats:') 74 print('[+] Supported formats:')
75 for parser in parser_factory._get_parsers(): 75 for parser in parser_factory._get_parsers():
76 for mtype in parser.mimetypes: 76 for mtype in parser.mimetypes:
77 extensions = ', '.join(mimetypes.guess_all_extensions(mtype)) 77 extensions = set()
78 print(' - %s (%s)' % (mtype, extensions)) 78 for extension in mimetypes.guess_all_extensions(mtype):
79 if extension[1:] not in unsupported_extensions: # skip the dot
80 extensions.add(extension)
81 if not extensions:
82 # we're not supporting a single extension in the current
83 # mimetype, so there is not point in showing the mimetype at all
84 continue
85 print(' - %s (%s)' % (mtype, ', '.join(extensions)))
79 86
80 87
81def __get_files_recursively(files): 88def __get_files_recursively(files):
diff --git a/src/__init__.py b/src/__init__.py
index 7557381..3f5c478 100644
--- a/src/__init__.py
+++ b/src/__init__.py
@@ -1 +1,5 @@
1#!/bin/env python3 \ No newline at end of file 1#!/bin/env python3
2
3# A set of extension that aren't supported, despite matching a supported mimetype
4unsupported_extensions = set(['bat', 'c', 'h', 'ksh', 'pl', 'txt', 'asc',
5 'text', 'pot', 'brf', 'srt', 'rdf', 'wsdl', 'xpdl', 'xsl', 'xsd'])
diff --git a/src/parser_factory.py b/src/parser_factory.py
index a2ff384..2c30659 100644
--- a/src/parser_factory.py
+++ b/src/parser_factory.py
@@ -3,7 +3,7 @@ import mimetypes
3import importlib 3import importlib
4import pkgutil 4import pkgutil
5 5
6from . import abstract 6from . import abstract, unsupported_extensions
7 7
8from typing import TypeVar 8from typing import TypeVar
9 9
@@ -27,13 +27,10 @@ def _get_parsers() -> list:
27 27
28 28
29def get_parser(filename: str) -> (T, str): 29def get_parser(filename: str) -> (T, str):
30 # A set of extension that aren't supported, despite matching a known mimetype
31 unknown_extensions = set(['bat', 'c', 'h', 'ksh', 'pl', 'txt', 'asc',
32 'text', 'pot', 'brf', 'srt', 'rdf', 'wsdl', 'xpdl', 'xsl', 'xsd'])
33 mtype, _ = mimetypes.guess_type(filename) 30 mtype, _ = mimetypes.guess_type(filename)
34 31
35 _, extension = os.path.splitext(filename) 32 _, extension = os.path.splitext(filename)
36 if extension in unknown_extensions: 33 if extension in unsupported_extensions:
37 return None, mtype 34 return None, mtype
38 35
39 for c in _get_parsers(): 36 for c in _get_parsers():