Skip to content
Snippets Groups Projects
Commit effe68f0 authored by Julien (jvoisin) Voisin's avatar Julien (jvoisin) Voisin
Browse files

The CLI shouldn't display unsupported file extensions

parent 7afff93e
No related branches found
No related tags found
No related merge requests found
...@@ -8,7 +8,7 @@ import mimetypes ...@@ -8,7 +8,7 @@ import mimetypes
import argparse import argparse
import multiprocessing import multiprocessing
from src import parser_factory from src import parser_factory, unsupported_extensions
__version__ = '0.1.0' __version__ = '0.1.0'
...@@ -74,8 +74,15 @@ def show_parsers(): ...@@ -74,8 +74,15 @@ def show_parsers():
print('[+] Supported formats:') print('[+] Supported formats:')
for parser in parser_factory._get_parsers(): for parser in parser_factory._get_parsers():
for mtype in parser.mimetypes: for mtype in parser.mimetypes:
extensions = ', '.join(mimetypes.guess_all_extensions(mtype)) extensions = set()
print(' - %s (%s)' % (mtype, extensions)) for extension in mimetypes.guess_all_extensions(mtype):
if extension[1:] not in unsupported_extensions: # skip the dot
extensions.add(extension)
if not extensions:
# we're not supporting a single extension in the current
# mimetype, so there is not point in showing the mimetype at all
continue
print(' - %s (%s)' % (mtype, ', '.join(extensions)))
def __get_files_recursively(files): def __get_files_recursively(files):
......
#!/bin/env python3 #!/bin/env python3
\ No newline at end of file
# A set of extension that aren't supported, despite matching a supported mimetype
unsupported_extensions = set(['bat', 'c', 'h', 'ksh', 'pl', 'txt', 'asc',
'text', 'pot', 'brf', 'srt', 'rdf', 'wsdl', 'xpdl', 'xsl', 'xsd'])
...@@ -3,7 +3,7 @@ import mimetypes ...@@ -3,7 +3,7 @@ import mimetypes
import importlib import importlib
import pkgutil import pkgutil
from . import abstract from . import abstract, unsupported_extensions
from typing import TypeVar from typing import TypeVar
...@@ -27,13 +27,10 @@ def _get_parsers() -> list: ...@@ -27,13 +27,10 @@ def _get_parsers() -> list:
def get_parser(filename: str) -> (T, str): def get_parser(filename: str) -> (T, str):
# A set of extension that aren't supported, despite matching a known mimetype
unknown_extensions = set(['bat', 'c', 'h', 'ksh', 'pl', 'txt', 'asc',
'text', 'pot', 'brf', 'srt', 'rdf', 'wsdl', 'xpdl', 'xsl', 'xsd'])
mtype, _ = mimetypes.guess_type(filename) mtype, _ = mimetypes.guess_type(filename)
_, extension = os.path.splitext(filename) _, extension = os.path.splitext(filename)
if extension in unknown_extensions: if extension in unsupported_extensions:
return None, mtype return None, mtype
for c in _get_parsers(): for c in _get_parsers():
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment