The CLI shouldn't display unsupported file extensions
This commit is contained in:
parent
7afff93e9c
commit
effe68f08f
13
main.py
13
main.py
@ -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():
|
|||||||
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):
|
||||||
|
@ -1 +1,5 @@
|
|||||||
#!/bin/env python3
|
#!/bin/env python3
|
||||||
|
|
||||||
|
# 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
|
|||||||
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:
|
|||||||
|
|
||||||
|
|
||||||
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():
|
||||||
|
Loading…
Reference in New Issue
Block a user